S32K312 SPI+DMA AsyncTransmit

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

S32K312 SPI+DMA AsyncTransmit

Jump to solution
1,796 Views
ben_chin
Contributor I

Hello,

使用SPI读取外部Flash数据,由于数据量比较大,采用了SPI+DMA异步传输方式,创建了2个channel,第一个channel为flash的commander,一个4个字节,第二个channel为25600个字节,用于回读Flash的数据。DMA用了4个通道,ch0/ch1用于UART, ch2/ch3用于本配置的SPI,未使用本配置的SPI时,UART是可以正常发送的,配置了SPI后,UART和SPI均无法正常工作。

Platform模块配置如下:

ben_chin_10-1755146984231.png

 

 

Mcl模块DMA配置如下:

ben_chin_0-1755143805958.png

ben_chin_1-1755143849674.png

Rm模块配置如下:

ben_chin_2-1755143934882.png

 

Spi模块配置如下:

channel部分

ben_chin_3-1755146506318.pngben_chin_4-1755146530193.png

ExternalDevice部分

ben_chin_5-1755146568667.png

Job部分

ben_chin_6-1755146631080.png

 

Sequency部分

ben_chin_7-1755146685150.png

general和PhyUnit

ben_chin_9-1755146836334.png

代码如下:

 

#define SPI_START_SEC_VAR_INIT_UNSPECIFIED
#include "Spi_MemMap.h"
__attribute__(( aligned(32) )) uint8_t      nvmTxMsg[4] = {0};
__attribute__(( aligned(32) )) uint8_t      nvmRxMsg[NVM_DEV_NUM] = {0};
#define SPI_STOP_SEC_VAR_INIT_UNSPECIFIED
#include "Spi_MemMap.h"





void Nvm_hal_Init(void)
{
    /* Initialize the hardware abstraction layer for the device */
    //Spi_SetHWUnitAsyncMode(2,SPI_INTERRUPT_MODE);
    Spi_SetupEB(NVMCMD_SPI_CHANNEL, nvmTxMsg, NULL, 4);
    Spi_SetupEB(NVMDATA_SPI_CHANNEL, NULL, nvmRxMsg, NVM_DEV_NUM);
}

void Nvm_SpiTransfer(void)
{
    /* Perform SPI synchronous transmission */
    nvmTxMsg[0] = 0x03u;
    nvmTxMsg[1] = 0x00u;
    nvmTxMsg[2] = 0x00u;
    nvmTxMsg[3] = 0x00u;
    //Dio_WriteChannel(DioConf_DioChannel_SideMarkerEnableOut,0);
    Spi_AsyncTransmit(NVM_SPI_SEQUENCE);  

}
uint32_t nvm;
void NvmSpi_Callback(void)
{
nvm++;
//Dio_WriteChannel(DioConf_DioChannel_SideMarkerEnableOut,1);
}

 

0 Kudos
Reply
1 Solution
1,759 Views
Senlent
NXP TechSupport
NXP TechSupport

Hi@ben_chin

附件是我之前做的一些demo,分别是SPI+DMA以及Uart+DMA,两个demo的RTD版本分别是RTD 5.0.0和RTD 4.0.0,请你参考这两个demo进行对比修改。

 

View solution in original post

0 Kudos
Reply
2 Replies
1,760 Views
Senlent
NXP TechSupport
NXP TechSupport

Hi@ben_chin

附件是我之前做的一些demo,分别是SPI+DMA以及Uart+DMA,两个demo的RTD版本分别是RTD 5.0.0和RTD 4.0.0,请你参考这两个demo进行对比修改。

 

0 Kudos
Reply
1,746 Views
ben_chin
Contributor I

已解决,谢谢!

Tags (1)
0 Kudos
Reply
%3CLINGO-SUB%20id%3D%22lingo-sub-2152040%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%3ES32K312%20SPI%2BDMA%20AsyncTransmit%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2152040%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%3E%3CP%3EHello.%3C%2FP%3E%3CP%3EUse%20SPI%20to%20read%20external%20Flash%20data%2C%20due%20to%20the%20large%20amount%20of%20data%2C%20using%20SPI%20%2B%20DMA%20asynchronous%20transmission%2C%20created%202%20channels%2C%20the%20first%20channel%20for%20the%20flash%20commander%2C%20a%204%20bytes%2C%20the%20second%20channel%20for%2025600%20bytes%2C%20used%20to%20read%20back%20the%20Flash%20data.DMA%20used%204%20The%20DMA%20uses%204%20channels%2C%20ch0%2Fch1%20for%20UART%2C%20ch2%2Fch3%20for%20SPI%20of%20this%20configuration.%20When%20SPI%20of%20this%20configuration%20is%20not%20used%2C%20UART%20can%20be%20sent%20normally%2C%20but%20after%20SPI%20is%20configured%2C%20both%20UART%20and%20SPI%20can%20not%20work%20normally.%3C%2FP%3E%3CP%3EThe%20Platform%20module%20is%20configured%20as%20follows%3A%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ben_chin_10-1755146984231.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22ben_chin_10-1755146984231.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F352354i81D5EA23135CDC9F%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ben_chin_10-1755146984231.png%22%20alt%3D%22ben_chin_10-1755146984231.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CP%3EThe%20Mcl%20module%20DMA%20is%20configured%20as%20follows%3A%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ben_chin_0-1755143805958.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22ben_chin_0-1755143805958.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F352338i9E859832FA88025F%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ben_chin_0-1755143805958.png%22%20alt%3D%22ben_chin_0-1755143805958.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ben_chin_1-1755143849674.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22ben_chin_1-1755143849674.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F352340iC570C7C2280A49AA%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ben_chin_1-1755143849674.png%22%20alt%3D%22ben_chin_1-1755143849674.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3EThe%20Rm%20module%20is%20configured%20as%20follows%3A%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ben_chin_2-1755143934882.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22ben_chin_2-1755143934882.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F352341iAB1E78A0C93D3716%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ben_chin_2-1755143934882.png%22%20alt%3D%22ben_chin_2-1755143934882.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EThe%20Spi%20module%20is%20configured%20as%20follows%3A%3C%2FP%3E%3CP%3Echannel%20part%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ben_chin_3-1755146506318.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22ben_chin_3-1755146506318.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F352347i3B0F5DE1D5914A84%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ben_chin_3-1755146506318.png%22%20alt%3D%22ben_chin_3-1755146506318.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ben_chin_4-1755146530193.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22ben_chin_4-1755146530193.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F352348i05BB28F0DB0437C0%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ben_chin_4-1755146530193.png%22%20alt%3D%22ben_chin_4-1755146530193.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3EExternalDevice%20section%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ben_chin_5-1755146568667.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22ben_chin_5-1755146568667.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F352349i54CC81E0225F5B54%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ben_chin_5-1755146568667.png%22%20alt%3D%22ben_chin_5-1755146568667.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3EJob%20section%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ben_chin_6-1755146631080.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22ben_chin_6-1755146631080.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F352350i77DDB646CB60B9AD%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ben_chin_6-1755146631080.png%22%20alt%3D%22ben_chin_6-1755146631080.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3ESequency%20section%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ben_chin_7-1755146685150.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22ben_chin_7-1755146685150.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F352351i5F44957434B63374%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ben_chin_7-1755146685150.png%22%20alt%3D%22ben_chin_7-1755146685150.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3EGeneral%20and%20PhyUnit%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ben_chin_9-1755146836334.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22ben_chin_9-1755146836334.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F352353i2D01751BF4FD637A%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ben_chin_9-1755146836334.png%22%20alt%3D%22ben_chin_9-1755146836334.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3EThe%20code%20is%20as%20follows%3A%3C%2FP%3E%3CBR%20%2F%3E%3CDIV%3E%3CDIV%3E%3CSPAN%3E%23define%3C%2FSPAN%3E%20%3CSPAN%3E%20SPI_START_SEC_VAR_INIT_UNSPECIFIED%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%23include%3C%2FSPAN%3E%20%3CSPAN%3E%22Spi_MemMap.h%20%22%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E__attribute__%3C%2FSPAN%3E%3CSPAN%3E((%20%3C%2FSPAN%3E%3CSPAN%3E%20aligned%3C%2FSPAN%3E%3CSPAN%3E%20(%3C%2FSPAN%3E%3CSPAN%3E%2032%3C%2FSPAN%3E%3CSPAN%3E%20)%20))%20%3C%2FSPAN%3E%3CSPAN%3E%20uint8_t%3C%2FSPAN%3E%3CSPAN%3E%20%20%20%20%20%20%3C%2FSPAN%3E%3CSPAN%3E%20nvmTxMsg%3C%2FSPAN%3E%3CSPAN%3E%20%5B%3C%2FSPAN%3E%3CSPAN%3E%204%3C%2FSPAN%3E%3CSPAN%3E%20%5D%20%3C%2FSPAN%3E%3CSPAN%3E%20%3D%3C%2FSPAN%3E%3CSPAN%3E%20%7B%3C%2FSPAN%3E%3CSPAN%3E%200%3C%2FSPAN%3E%3CSPAN%3E%20%7D%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E__attribute__%3C%2FSPAN%3E%3CSPAN%3E((%20%3C%2FSPAN%3E%3CSPAN%3E%20aligned%3C%2FSPAN%3E%3CSPAN%3E%20(%3C%2FSPAN%3E%3CSPAN%3E%2032%3C%2FSPAN%3E%3CSPAN%3E%20)%20))%20%3C%2FSPAN%3E%3CSPAN%3E%20uint8_t%3C%2FSPAN%3E%3CSPAN%3E%20%20%20%20%20%20%3C%2FSPAN%3E%3CSPAN%3E%20nvmRxMsg%3C%2FSPAN%3E%3CSPAN%3E%20%5B%3C%2FSPAN%3E%3CSPAN%3E%20NVM_DEV_NUM%3C%2FSPAN%3E%3CSPAN%3E%20nvmRxMsg%20%5B%20NVM_DEV_NUM%20%5D%20%3C%2FSPAN%3E%3CSPAN%3E%20%3D%3C%2FSPAN%3E%3CSPAN%3E%20%7B%3C%2FSPAN%3E%3CSPAN%3E%200%3C%2FSPAN%3E%3CSPAN%3E%20%7D%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%23define%3C%2FSPAN%3E%20%3CSPAN%3E%20SPI_STOP_SEC_VAR_INIT_UNSPECIFIED%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%23include%3C%2FSPAN%3E%20%3CSPAN%3E%22Spi_MemMap.h%20%22%3C%2FSPAN%3E%3C%2FDIV%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CDIV%3E%3CSPAN%3Evoid%3C%2FSPAN%3E%20%3CSPAN%3E%20Nvm_hal_Init%3C%2FSPAN%3E%3CSPAN%3E%20(%3C%2FSPAN%3E%3CSPAN%3E%20void%3C%2FSPAN%3E%3CSPAN%3E%20)%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%20%20%20%20%2F*%20Initialize%20the%20hardware%20abstraction%20layer%20for%20the%20device%20*%2F%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%20%20%20%20%3C%2FSPAN%3E%3CSPAN%3E%2F%2FSpi_SetHWUnitAsyncMode(2%2CSPI_INTERRUPT_MODE).%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%20%20%20%20%3C%2FSPAN%3E%3CSPAN%3ESpi_SetupEB%3C%2FSPAN%3E%3CSPAN%3E%20(%3C%2FSPAN%3E%3CSPAN%3E%20NVMCMD_SPI_CHANNEL%3C%2FSPAN%3E%3CSPAN%3E%20%2C%20nvmTxMsg%2C%20%3C%2FSPAN%3E%3CSPAN%3E%20nvmTxMsg%2C%20nvmTxMsg%2C%20nvmTxMsg%3C%2FSPAN%3E%3CSPAN%3E%20NVMCMD_SPI_CHANNEL%20%2C%20nvmTxMsg%20%3C%2FSPAN%3E%3CSPAN%3E%204%3C%2FSPAN%3E%3CSPAN%3E%20)%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%20%20%20%20%3C%2FSPAN%3E%3CSPAN%3ESpi_SetupEB%3C%2FSPAN%3E%3CSPAN%3E%20(%3C%2FSPAN%3E%3CSPAN%3E%20NVMDATA_SPI_CHANNEL%3C%2FSPAN%3E%3CSPAN%3E%20NVMDATA_SPI_CHANNEL%20%3C%2FSPAN%3E%3CSPAN%3E%20NULL%3C%2FSPAN%3E%3CSPAN%3E%20%2C%20nvmRxMsg%2C%20%3C%2FSPAN%3E%3CSPAN%3E%20NVM_DEV_NUM%3C%2FSPAN%3E%3CSPAN%3E%20).%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FDIV%3E%3CBR%20%2F%3E%3CDIV%3E%3CSPAN%3Evoid%3C%2FSPAN%3E%20%3CSPAN%3E%20Nvm_SpiTransfer%3C%2FSPAN%3E%3CSPAN%3E%20(%3C%2FSPAN%3E%3CSPAN%3E%20void%3C%2FSPAN%3E%3CSPAN%3E%20)%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%20%20%20%20%2F*%20Perform%20SPI%20synchronous%20transmission%20*%2F%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%20%20%20%20%3C%2FSPAN%3E%3CSPAN%3EnvmTxMsg%3C%2FSPAN%3E%3CSPAN%3E%20%5B%3C%2FSPAN%3E%3CSPAN%3E%200%3C%2FSPAN%3E%3CSPAN%3E%20nvmTxMsg%20%5B%200%5D%20%3C%2FSPAN%3E%3CSPAN%3E%20%3D%3C%2FSPAN%3E%20%3CSPAN%3E%200x03u%3C%2FSPAN%3E%3CSPAN%3E%20%3CLI-EMOJI%20id%3D%22lia_winking-face%22%20title%3D%22%3Awinking_face%3A%22%3E%3C%2FLI-EMOJI%3E%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%20%20%20%20%3C%2FSPAN%3E%3CSPAN%3EnvmTxMsg%3C%2FSPAN%3E%3CSPAN%3E%20%5B%3C%2FSPAN%3E%3CSPAN%3E%201%3C%2FSPAN%3E%3CSPAN%3E%20nvmTxMsg%20%5B%201%5D%20%3C%2FSPAN%3E%3CSPAN%3E%20%3D%3C%2FSPAN%3E%20%3CSPAN%3E%200x00u%3C%2FSPAN%3E%3CSPAN%3E%20%3CLI-EMOJI%20id%3D%22lia_winking-face%22%20title%3D%22%3Awinking_face%3A%22%3E%3C%2FLI-EMOJI%3E%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%20%20%20%20%3C%2FSPAN%3E%3CSPAN%3EnvmTxMsg%3C%2FSPAN%3E%3CSPAN%3E%20%5B%3C%2FSPAN%3E%3CSPAN%3E%202%3C%2FSPAN%3E%3CSPAN%3E%20nvmTxMsg%20%5B%202%5D%20%3C%2FSPAN%3E%3CSPAN%3E%20%3D%3C%2FSPAN%3E%20%3CSPAN%3E%200x00u%3C%2FSPAN%3E%3CSPAN%3E%20%3CLI-EMOJI%20id%3D%22lia_winking-face%22%20title%3D%22%3Awinking_face%3A%22%3E%3C%2FLI-EMOJI%3E%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%20%20%20%20%3C%2FSPAN%3E%3CSPAN%3EnvmTxMsg%3C%2FSPAN%3E%3CSPAN%3E%20%5B%3C%2FSPAN%3E%3CSPAN%3E%203%3C%2FSPAN%3E%3CSPAN%3E%20nvmTxMsg%20%5B%203%5D%20%3C%2FSPAN%3E%3CSPAN%3E%20%3D%3C%2FSPAN%3E%20%3CSPAN%3E%200x00u%3C%2FSPAN%3E%3CSPAN%3E%20%3CLI-EMOJI%20id%3D%22lia_winking-face%22%20title%3D%22%3Awinking_face%3A%22%3E%3C%2FLI-EMOJI%3E%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%20%20%20%20%3C%2FSPAN%3E%3CSPAN%3E%2F%2FDio_WriteChannel(DioConf_DioChannel_SideMarkerEnableOut%2C0)%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%20%20%20%20%3C%2FSPAN%3E%3CSPAN%3ESpi_AsyncTransmit%3C%2FSPAN%3E%3CSPAN%3E%20(%3C%2FSPAN%3E%3CSPAN%3E%20NVM_SPI_SEQUENCE%3C%2FSPAN%3E%3CSPAN%3E%20)%3B%20%20%3C%2FSPAN%3E%3C%2FDIV%3E%3CBR%20%2F%3E%3CDIV%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%3C%2FSPAN%3E%20%3CSPAN%3E%20nvm%3C%2FSPAN%3E%3CSPAN%3E%20nvm%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Evoid%3C%2FSPAN%3E%20%3CSPAN%3E%20NvmSpi_Callback%3C%2FSPAN%3E%3CSPAN%3E%20(%3C%2FSPAN%3E%3CSPAN%3E%20void%3C%2FSPAN%3E%3CSPAN%3E%20)%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Envm%3C%2FSPAN%3E%3CSPAN%3E%20%2B%2B%3C%2FSPAN%3E%3CSPAN%3E%20nvm%20%2B%2B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%2F%2FDio_WriteChannel(DioConf_DioChannel_SideMarkerEnableOut%2C1)%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FDIV%3E%3C%2FDIV%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2152681%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20S32K312%20SPI%2BDMA%20AsyncTransmit%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2152681%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%3E%3CP%3EResolved%2C%20thank%20you!%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2152630%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20S32K312%20SPI%2BDMA%20AsyncTransmit%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2152630%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%3E%3CP%3E%3CA%20href%3D%22mailto%3AHi%40ben_chin%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3EHi%40ben_chin%3C%2FA%3E%3C%2FP%3E%0A%3CP%3EAttached%20are%20some%20demos%20I%20made%20before%2C%20they%20are%20SPI%2BDMA%20and%20Uart%2BDMA%2C%20the%20RTD%20versions%20of%20the%20two%20demos%20are%20RTD%205.0.0%20and%20RTD%20respectively.%204.0.0%2C%20please%20refer%20to%20these%20two%20demos%20to%20compare%20the%20changes.%3C%2FP%3E%0A%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E