I can’t find in the documentation how to configure the board assembly files to use SPI FLASH RAM MX25Lx. I tried by analogy with configuring eeprom in crazyflie, but something does not work. Maybe someone set up something like this and can tell you how to do it?
I add mtd.cpp
static const px4_mft_device_t spi2 = { .bus_type = px4_mft_device_t::SPI, .devid = SPIDEV_FLASH(0) }; static const px4_mtd_entry_t mx25_fram = { .device = &spi2, .npart = 2, .partd = { { .type = MTD_MFT, .path = "/fs/mtd_mft", .nblocks = 32 }, { .type = MTD_PARAMETERS, .path = "/fs/mtd_params", .nblocks = 32 } }, }; static const px4_mtd_manifest_t board_mtd_config = { .nconfigs = 1, .entries = { &mx25_fram } }; static const px4_mft_entry_s mtd_mft = { .type = MTD, .pmft = (void *) &board_mtd_config, }; static const px4_mft_s mft = { .nmft = 1, .mfts = &mtd_mft }; const px4_mft_s *board_get_manifest(void) { return &mft; }
in defconfig
ONFIG_MTD=y
CONFIG_MTD_MX25LX=y
CONFIG_MTD_BYTE_WRITE=y
CONFIG_MTD_PARTITION=y
in spi.cpp
> initSPIBus(SPI::Bus::SPI2, {
> initSPIDevice(SPIDEV_FLASH(0), SPI::CS{GPIO::PortB, GPIO::Pin12})
> }),