From 8227fba4e8ae69c821625a81ebd398f31ab5e7c5 Mon Sep 17 00:00:00 2001 From: Ciprian Regus Date: Tue, 22 Aug 2023 10:10:44 +0300 Subject: [PATCH] wip --- drivers/platform/maxim/max32650/maxim_spi.c | 49 ++++--------------- .../src/examples/iio_example/iio_example.c | 2 +- tools/scripts/maxim.mk | 2 +- 3 files changed, 12 insertions(+), 41 deletions(-) diff --git a/drivers/platform/maxim/max32650/maxim_spi.c b/drivers/platform/maxim/max32650/maxim_spi.c index d6aa0176a3d..d71b8df7b11 100644 --- a/drivers/platform/maxim/max32650/maxim_spi.c +++ b/drivers/platform/maxim/max32650/maxim_spi.c @@ -67,22 +67,6 @@ /************************ Functions Definitions *******************************/ /******************************************************************************/ -volatile uint32_t dma_done = 0; - -void DMA0_IRQHandler(void) -{ - MXC_DMA_ChannelClearFlags(0, 0xFF); - // MXC_DMA_Handler(); - dma_done = 1; -} - -void DMA1_IRQHandler(void) -{ - MXC_DMA_ChannelClearFlags(1, 0xFF); - // MXC_DMA_Handler(); - dma_done = 1; -} - /** * @brief Configure the VDDIO level for a SPI interface * @param desc - the SPI descriptor @@ -312,9 +296,6 @@ static int _max_spi_config(struct no_os_spi_desc *desc) goto err_init; } - // NVIC_EnableIRQ(DMA0_IRQn); - // NVIC_EnableIRQ(DMA1_IRQn); - return 0; err_init: MXC_SPI_Shutdown(MXC_SPI_GET_SPI(desc->device_id)); @@ -420,14 +401,14 @@ int32_t max_spi_transfer(struct no_os_spi_desc *desc, spi = MXC_SPI_GET_SPI(desc->device_id); - // slave_id = desc->chip_select; - // if (slave_id != last_slave_id[desc->device_id]) { - // ret = _max_spi_config(desc); - // if (ret) - // return ret; + slave_id = desc->chip_select; + if (slave_id != last_slave_id[desc->device_id]) { + ret = _max_spi_config(desc); + if (ret) + return ret; - // last_slave_id[desc->device_id] = slave_id; - // } + last_slave_id[desc->device_id] = slave_id; + } req.spi = MXC_SPI_GET_SPI(desc->device_id); req.ssIdx = desc->chip_select; @@ -441,25 +422,15 @@ int32_t max_spi_transfer(struct no_os_spi_desc *desc, req.rxLen = req.rxData ? msgs[i].bytes_number : 0; req.completeCB = NULL; - //_max_delay_config(desc, &msgs[i]); - if (msgs[i].use_dma && msgs[i].bytes_number >= 16) { - MXC_DMA_ReleaseChannel(0); - MXC_DMA_ReleaseChannel(1); - ret = MXC_SPI_MasterTransactionDMA(&req); - - while (!dma_done); - dma_done = 0; - } - else { - ret = MXC_SPI_MasterTransaction(&req); - } + _max_delay_config(desc, &msgs[i]); + ret = MXC_SPI_MasterTransaction(&req); if (ret == E_BAD_PARAM) return -EINVAL; if (ret == E_BAD_STATE) return -EBUSY; - //no_os_udelay(msgs[i].cs_change_delay); + no_os_udelay(msgs[i].cs_change_delay); } return 0; diff --git a/projects/swiot/src/examples/iio_example/iio_example.c b/projects/swiot/src/examples/iio_example/iio_example.c index e7e32711de2..83c09c1f845 100644 --- a/projects/swiot/src/examples/iio_example/iio_example.c +++ b/projects/swiot/src/examples/iio_example/iio_example.c @@ -478,7 +478,7 @@ int iio_example_main() // ret = Ext_Flash_Read(0x0, flash_readback, 3, Ext_Flash_DataLine_Single); // ret = Ext_Flash_Read(0x0, flash_readback, 3, Ext_Flash_DataLine_Single); - func_ram1 = (void(*)(void))((uint32_t)&__load_start_xip | 1); + func_ram1 = (void(*)(void))((uint32_t)&__load_start_xip); func_ram1(); // ret = Ext_Flash_Program_Page(0xF, flash_val, 3, Ext_Flash_DataLine_Quad); diff --git a/tools/scripts/maxim.mk b/tools/scripts/maxim.mk index 8370e02a879..2ad173385d8 100644 --- a/tools/scripts/maxim.mk +++ b/tools/scripts/maxim.mk @@ -71,7 +71,7 @@ LDFLAGS = -mcpu=cortex-m4 \ CFLAGS += -mthumb \ -mcpu=cortex-m4 \ - -O0 \ + -O2 \ -mfloat-abi=hard \ -mfpu=fpv4-sp-d16 \ -Wa,-mimplicit-it=thumb \