drv_spiflash.c 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. /*
  2. * Copyright (c) 2006-2018, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2017-11-08 ZYH the first version
  9. */
  10. #include <rtthread.h>
  11. #if defined(RT_USING_W25QXX) || defined(RT_USING_SFUD)
  12. #include <drv_spi.h>
  13. #ifdef RT_USING_W25QXX
  14. #include "spi_flash_w25qxx.h"
  15. #elif defined(RT_USING_SFUD)
  16. #include "string.h"
  17. #include "spi_flash.h"
  18. #include "spi_flash_sfud.h"
  19. sfud_flash sfud_norflash0;
  20. rt_spi_flash_device_t spi_device;
  21. #endif
  22. int rt_nor_flash_init(void)
  23. {
  24. stm32_spi_bus_attach_device(RT_FLASH_CS_PIN, RT_FLASH_SPI_BUS_NAME, "norspi");
  25. #ifdef RT_USING_W25QXX
  26. return w25qxx_init("flash0", "norspi");
  27. #elif defined(RT_USING_SFUD)
  28. spi_device = rt_sfud_flash_probe("flash0", "norspi");
  29. if (spi_device == RT_NULL)
  30. {
  31. return -RT_ERROR;
  32. }
  33. memcpy(&sfud_norflash0, spi_device->user_data, sizeof(sfud_flash));
  34. return 0;
  35. #endif
  36. }
  37. INIT_DEVICE_EXPORT(rt_nor_flash_init);
  38. #endif