platform.c 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #include "platform.h"
  2. #include <stdint.h>
  3. #include "./../../stm32f429xx.h"
  4. #include "./../stm32_api/gpio_api.h"
  5. //#include "./../../driver/GPIO/gpio.h"
  6. #include "bmc_main.h"
  7. #include <stdio.h>
  8. void platform_init(void)
  9. {
  10. gpio_data_t gpin_data;
  11. uint8_t slotID = 0;
  12. printf("---> init platform!\n");
  13. //init debug led, GPIO_D12
  14. gpin_data.port = GPIOD;
  15. gpin_data.pin = GPIO_PIN_12;
  16. set_gpio_push_pull_output(&gpin_data);
  17. //get slot ID
  18. //GA0
  19. gpin_data.port = GPIOA;
  20. gpin_data.pin = GPIO_PIN_9;
  21. set_gpio_input(&gpin_data);
  22. set_gpio_pull_up(&gpin_data);
  23. get_gpio_value(&gpin_data);
  24. slotID |= (gpin_data.data&0x01);
  25. //GA1
  26. gpin_data.port = GPIOC;
  27. gpin_data.pin = GPIO_PIN_6;
  28. set_gpio_input(&gpin_data);
  29. set_gpio_pull_up(&gpin_data);
  30. get_gpio_value(&gpin_data);
  31. slotID |= ((gpin_data.data&0x01)<<1);
  32. //GA2
  33. gpin_data.port = GPIOA;
  34. gpin_data.pin = GPIO_PIN_10;
  35. set_gpio_input(&gpin_data);
  36. set_gpio_pull_up(&gpin_data);
  37. get_gpio_value(&gpin_data);
  38. slotID |= ((gpin_data.data&0x01)<<2);
  39. //GA3
  40. gpin_data.port = GPIOG;
  41. gpin_data.pin = GPIO_PIN_6;
  42. set_gpio_input(&gpin_data);
  43. set_gpio_pull_up(&gpin_data);
  44. get_gpio_value(&gpin_data);
  45. slotID |= ((gpin_data.data&0x01)<<3);
  46. //GA4
  47. gpin_data.port = GPIOA;
  48. gpin_data.pin = GPIO_PIN_12;
  49. set_gpio_input(&gpin_data);
  50. set_gpio_pull_up(&gpin_data);
  51. get_gpio_value(&gpin_data);
  52. slotID |= ((gpin_data.data&0x01)<<4);
  53. g_BMCInfo.slotID = slotID;
  54. printf("---> slot ID:%#x\n",g_BMCInfo.slotID);
  55. //
  56. }