summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryandld <[email protected]>2024-04-15 17:18:00 +0800
committerRbb666 <[email protected]>2024-04-16 18:48:37 +0800
commit47d9c03937aead6a82a9013f008e58c498efd0e5 (patch)
tree83f3f94aa2713e1dbb2d51339b2336ec5e523f87
parenta225d26a8ad6355b5c102be925e58d81e7347e25 (diff)
update spi flash mount
-rw-r--r--bsp/nxp/mcx/mcxn/frdm-mcxn947/applications/main.c2
-rw-r--r--bsp/nxp/mcx/mcxn/frdm-mcxn947/board/SConscript4
-rw-r--r--bsp/nxp/mcx/mcxn/frdm-mcxn947/board/ports/drv_filesystem.c47
-rw-r--r--bsp/nxp/mcx/mcxn/frdm-mcxn947/board/ports/drv_filesystem_spi_flash.c74
4 files changed, 79 insertions, 48 deletions
diff --git a/bsp/nxp/mcx/mcxn/frdm-mcxn947/applications/main.c b/bsp/nxp/mcx/mcxn/frdm-mcxn947/applications/main.c
index 2609527439..2929981607 100644
--- a/bsp/nxp/mcx/mcxn/frdm-mcxn947/applications/main.c
+++ b/bsp/nxp/mcx/mcxn/frdm-mcxn947/applications/main.c
@@ -16,7 +16,7 @@
#include <rtthread.h>
#include "drv_pin.h"
-#define LEDB_PIN ((0*32)+10)
+#define LEDB_PIN ((1*32)+2)
#define BUTTON_PIN ((0*32)+23)
static void sw_pin_cb(void *args);
diff --git a/bsp/nxp/mcx/mcxn/frdm-mcxn947/board/SConscript b/bsp/nxp/mcx/mcxn/frdm-mcxn947/board/SConscript
index b59a799e7c..2365014557 100644
--- a/bsp/nxp/mcx/mcxn/frdm-mcxn947/board/SConscript
+++ b/bsp/nxp/mcx/mcxn/frdm-mcxn947/board/SConscript
@@ -15,6 +15,10 @@ if GetDepend(['BSP_USING_SPI6_SAMPLE']):
if GetDepend(['BSP_USING_RW007']):
src += Glob('ports/drv_spi_sample_rw007.c')
+if GetDepend(['RT_USING_SFUD']):
+ src += Glob('ports/drv_filesystem_spi_flash.c')
+
+
CPPPATH = [cwd, cwd + '/MCUX_Config/board']
CPPDEFINES = ['DEBUG', 'CPU_MCXN947VDF_cm33_core0']
diff --git a/bsp/nxp/mcx/mcxn/frdm-mcxn947/board/ports/drv_filesystem.c b/bsp/nxp/mcx/mcxn/frdm-mcxn947/board/ports/drv_filesystem.c
deleted file mode 100644
index df9a5ba356..0000000000
--- a/bsp/nxp/mcx/mcxn/frdm-mcxn947/board/ports/drv_filesystem.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2006-2024, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2018-12-14 balanceTWK add sdcard port file
- * 2021-02-26 Meco Man fix a bug that cannot use fatfs in the main thread at starting up
- */
-
-#include <rtthread.h>
-#include <dfs_elm.h>
-#include <dfs_fs.h>
-#include <dfs_file.h>
-#include <dfs_romfs.h>
-
-#if DFS_FILESYSTEMS_MAX < 4
-#error "Please define DFS_FILESYSTEMS_MAX more than 4"
-#endif
-#if DFS_FILESYSTEM_TYPES_MAX < 4
-#error "Please define DFS_FILESYSTEM_TYPES_MAX more than 4"
-#endif
-
-#define DBG_TAG "app.filesystem"
-#define DBG_LVL DBG_INFO
-#include <rtdbg.h>
-
-
-
-static int filesystem_mount(void)
-{
-#ifdef RT_USING_SDIO
- rt_thread_mdelay(2000);
- if (dfs_mount("sd", "/", "elm", 0, NULL) == 0)
- {
- rt_kprintf("sd mounted to /\n");
- }
- else
- {
- rt_kprintf("sd mount to / failed\n");
- }
-#endif
-
- return RT_EOK;
-}
-INIT_APP_EXPORT(filesystem_mount);
diff --git a/bsp/nxp/mcx/mcxn/frdm-mcxn947/board/ports/drv_filesystem_spi_flash.c b/bsp/nxp/mcx/mcxn/frdm-mcxn947/board/ports/drv_filesystem_spi_flash.c
new file mode 100644
index 0000000000..18d8918fa1
--- /dev/null
+++ b/bsp/nxp/mcx/mcxn/frdm-mcxn947/board/ports/drv_filesystem_spi_flash.c
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2006-2024, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2018-12-14 balanceTWK add sdcard port file
+ * 2021-02-26 Meco Man fix a bug that cannot use fatfs in the main thread at starting up
+ */
+
+#include <rtthread.h>
+#include <dfs_elm.h>
+#include "spi_flash_sfud.h"
+#include "dfs_fs.h"
+#include "dfs.h"
+#include "dfs_elm.h"
+#include "dfs_file.h"
+
+#if DFS_FILESYSTEMS_MAX < 4
+#error "Please define DFS_FILESYSTEMS_MAX more than 4"
+#endif
+#if DFS_FILESYSTEM_TYPES_MAX < 4
+#error "Please define DFS_FILESYSTEM_TYPES_MAX more than 4"
+#endif
+
+#define DBG_TAG "app.filesystem_spi_flash"
+#define DBG_LVL DBG_INFO
+#include <rtdbg.h>
+
+
+#define W25Q64_SPI_DEVICE_NAME "spi70"
+#define W25Q64_SPI_BUS_NAME "spi7"
+#define W25Q64_SPI_FLASH_NAME "w25qxx"
+
+rt_err_t rt_hw_spi_device_attach(const char *bus_name, const char *device_name, rt_uint32_t pin);
+
+static int filesystem_mount(void)
+{
+ struct rt_spi_device *spi70 = (struct rt_spi_device *)rt_malloc(sizeof(struct rt_spi_device));
+
+ if(!spi70)
+ {
+ rt_kprintf("spi sample run failed! can't find %s device!\n","spi7");
+ return -RT_ERROR;
+ }
+
+ struct rt_spi_configuration cfg;
+ cfg.data_width = 8;
+ cfg.mode = RT_SPI_MASTER | RT_SPI_MODE_3 | RT_SPI_MSB;
+ cfg.max_hz = 50 * 1000 *1000;
+ rt_spi_configure(spi70, &cfg);
+
+ /* legcy issue */
+
+ //rt_spi_bus_attach_device_cspin(spi70, W25Q64_SPI_DEVICE_NAME, W25Q64_SPI_BUS_NAME, 96, RT_NULL);
+ rt_hw_spi_device_attach(W25Q64_SPI_BUS_NAME, W25Q64_SPI_DEVICE_NAME, 96);
+
+ if(RT_NULL == rt_sfud_flash_probe(W25Q64_SPI_FLASH_NAME, W25Q64_SPI_DEVICE_NAME))
+ {
+ rt_kprintf("Flash sfud Failed!\n");
+ return -RT_ERROR;
+ };
+
+ if(dfs_mount(W25Q64_SPI_FLASH_NAME, "/", "elm", 0, 0))
+ {
+ rt_kprintf("dfs mount dev:%s failed!\n", W25Q64_SPI_FLASH_NAME);
+ return -RT_ERROR;
+ }
+
+ return RT_EOK;
+
+}
+INIT_APP_EXPORT(filesystem_mount);