<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic SPI read is not working with default driver. in CodeWarrior for MCU</title>
    <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/SPI-read-is-not-working-with-default-driver/m-p/501082#M12754</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have created the project for kl46z. I have used processor expert in codewarrior. &lt;/P&gt;&lt;P&gt;There i have enabled SPI component with interrupt method&lt;/P&gt;&lt;P&gt;So the library created with the name called SM1.c, now the interrupt function (ISR) default &lt;/P&gt;&lt;P&gt;created like this :&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;PE_ISR(SM1_Interrupt)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* {FreeRTOS RTOS Adapter} ISR parameter is passed through the global variable */&lt;/P&gt;&lt;P&gt;&amp;nbsp; SM1_TDeviceDataPtr DeviceDataPrv = INT_SPI0__BAREBOARD_RTOS_ISRPARAM;&lt;/P&gt;&lt;P&gt;&amp;nbsp; uint8_t StatReg = SPI_PDD_ReadStatusReg(SPI0_BASE_PTR); /* Read status register */&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; (void)DeviceDataPrv;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Supress unused variable warning if needed */&lt;/P&gt;&lt;P&gt;&amp;nbsp; if ((StatReg &amp;amp; SPI_PDD_RX_BUFFER_FULL) != 0U) { /* Is any char in HW Rx buffer? */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (DeviceDataPrv-&amp;gt;InpDataNumReq != 0x00U) { /* Is the receive block operation pending? */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(DeviceDataPrv-&amp;gt;InpDataPtr++) = SPI_PDD_ReadData8bit(SPI0_BASE_PTR); /* Put a character to the receive buffer and increment pointer to receive buffer */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DeviceDataPrv-&amp;gt;InpRecvDataNum++; /* Increment received char. counter */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (DeviceDataPrv-&amp;gt;InpRecvDataNum == DeviceDataPrv-&amp;gt;InpDataNumReq) { /* Is the requested number of characters received? */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI_PDD_DisableInterruptMask(SPI0_BASE_PTR, SPI_PDD_RX_BUFFER_FULL_OR_FAULT); /* Disable Rx buffer full interrupt */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DeviceDataPrv-&amp;gt;InpDataNumReq = 0x00U; /* If yes then clear number of requested characters to be received. */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SM1_OnBlockReceived(DeviceDataPrv-&amp;gt;UserData);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; if ((StatReg &amp;amp; SPI_PDD_TX_BUFFER_EMPTYG) != 0U) { /* Is HW Tx buffer empty? */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (DeviceDataPrv-&amp;gt;OutSentDataNum &amp;lt; DeviceDataPrv-&amp;gt;OutDataNumReq) { /* Is number of sent characters less than the number of requested incoming characters? */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI_PDD_WriteData8Bit(SPI0_BASE_PTR, (*((uint8_t *)DeviceDataPrv-&amp;gt;OutDataPtr++))); /* Put a character with command to the transmit register and increment pointer to the transmitt buffer */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DeviceDataPrv-&amp;gt;OutSentDataNum++; /* Increment the counter of sent characters. */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (DeviceDataPrv-&amp;gt;OutSentDataNum == DeviceDataPrv-&amp;gt;OutDataNumReq) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DeviceDataPrv-&amp;gt;OutDataNumReq = 0x00U; /* Clear the counter of characters to be send by SendBlock() */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SM1_OnBlockSent(DeviceDataPrv-&amp;gt;UserData);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI_PDD_DisableInterruptMask(SPI0_BASE_PTR, SPI_PDD_TX_BUFFER_EMPTY); /* Disable TX interrupt */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But with this code SPI read function is not working. But i made it working with including two lines &lt;/P&gt;&lt;P&gt;in PE_ISR(SM1_Interrupt). i copied here my changes&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;included two lines are highlighted with BOLD letter down: &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;PE_ISR(SM1_Interrupt)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* {FreeRTOS RTOS Adapter} ISR parameter is passed through the global variable */&lt;/P&gt;&lt;P&gt;&amp;nbsp; SM1_TDeviceDataPtr DeviceDataPrv = INT_SPI0__BAREBOARD_RTOS_ISRPARAM;&lt;/P&gt;&lt;P&gt;&amp;nbsp; uint8_t StatReg = SPI_PDD_ReadStatusReg(SPI0_BASE_PTR); /* Read status register */&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; (void)DeviceDataPrv;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Supress unused variable warning if needed */&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;STRONG style="color: #606060;"&gt;if (DeviceDataPrv-&amp;gt;OutDataNumReq == 0x00U)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if ((StatReg &amp;amp; SPI_PDD_RX_BUFFER_FULL) != 0U) { /* Is any char in HW Rx buffer? */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (DeviceDataPrv-&amp;gt;InpDataNumReq != 0x00U) { /* Is the receive block operation pending? */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(DeviceDataPrv-&amp;gt;InpDataPtr++) = SPI_PDD_ReadData8bit(SPI0_BASE_PTR); /* Put a character to the receive buffer and increment pointer to receive buffer */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt; SPI_PDD_WriteData8Bit(SPI0_BASE_PTR, 0);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DeviceDataPrv-&amp;gt;InpRecvDataNum++; /* Increment received char. counter */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (DeviceDataPrv-&amp;gt;InpRecvDataNum == DeviceDataPrv-&amp;gt;InpDataNumReq) { /* Is the requested number of characters received? */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI_PDD_DisableInterruptMask(SPI0_BASE_PTR, SPI_PDD_RX_BUFFER_FULL_OR_FAULT); /* Disable Rx buffer full interrupt */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DeviceDataPrv-&amp;gt;InpDataNumReq = 0x00U; /* If yes then clear number of requested characters to be received. */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SM1_OnBlockReceived(DeviceDataPrv-&amp;gt;UserData);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; if ((StatReg &amp;amp; SPI_PDD_TX_BUFFER_EMPTYG) != 0U) { /* Is HW Tx buffer empty? */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (DeviceDataPrv-&amp;gt;OutSentDataNum &amp;lt; DeviceDataPrv-&amp;gt;OutDataNumReq) { /* Is number of sent characters less than the number of requested incoming characters? */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI_PDD_WriteData8Bit(SPI0_BASE_PTR, (*((uint8_t *)DeviceDataPrv-&amp;gt;OutDataPtr++))); /* Put a character with command to the transmit register and increment pointer to the transmitt buffer */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DeviceDataPrv-&amp;gt;OutSentDataNum++; /* Increment the counter of sent characters. */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (DeviceDataPrv-&amp;gt;OutSentDataNum == DeviceDataPrv-&amp;gt;OutDataNumReq) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DeviceDataPrv-&amp;gt;OutDataNumReq = 0x00U; /* Clear the counter of characters to be send by SendBlock() */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SM1_OnBlockSent(DeviceDataPrv-&amp;gt;UserData);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI_PDD_DisableInterruptMask(SPI0_BASE_PTR, SPI_PDD_TX_BUFFER_EMPTY); /* Disable TX interrupt */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now all working fine. But whenever i do clear and build for my project, all generated files created with &lt;/P&gt;&lt;P&gt;default code. so my changes also got erased. I want that two line to be there always even if &lt;/P&gt;&lt;P&gt;do clear and build. Basically default SPI driver function PE_ISR(SM1_Interrupt) is not working&lt;/P&gt;&lt;P&gt;for me. so i changed that function so that i am able to communicate over the SPI. how to &lt;/P&gt;&lt;P&gt;stop regenerating SM1.c when i do clear and build?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 23 Mar 2016 13:29:00 GMT</pubDate>
    <dc:creator>kishoresamy</dc:creator>
    <dc:date>2016-03-23T13:29:00Z</dc:date>
    <item>
      <title>SPI read is not working with default driver.</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/SPI-read-is-not-working-with-default-driver/m-p/501082#M12754</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have created the project for kl46z. I have used processor expert in codewarrior. &lt;/P&gt;&lt;P&gt;There i have enabled SPI component with interrupt method&lt;/P&gt;&lt;P&gt;So the library created with the name called SM1.c, now the interrupt function (ISR) default &lt;/P&gt;&lt;P&gt;created like this :&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;PE_ISR(SM1_Interrupt)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* {FreeRTOS RTOS Adapter} ISR parameter is passed through the global variable */&lt;/P&gt;&lt;P&gt;&amp;nbsp; SM1_TDeviceDataPtr DeviceDataPrv = INT_SPI0__BAREBOARD_RTOS_ISRPARAM;&lt;/P&gt;&lt;P&gt;&amp;nbsp; uint8_t StatReg = SPI_PDD_ReadStatusReg(SPI0_BASE_PTR); /* Read status register */&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; (void)DeviceDataPrv;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Supress unused variable warning if needed */&lt;/P&gt;&lt;P&gt;&amp;nbsp; if ((StatReg &amp;amp; SPI_PDD_RX_BUFFER_FULL) != 0U) { /* Is any char in HW Rx buffer? */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (DeviceDataPrv-&amp;gt;InpDataNumReq != 0x00U) { /* Is the receive block operation pending? */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(DeviceDataPrv-&amp;gt;InpDataPtr++) = SPI_PDD_ReadData8bit(SPI0_BASE_PTR); /* Put a character to the receive buffer and increment pointer to receive buffer */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DeviceDataPrv-&amp;gt;InpRecvDataNum++; /* Increment received char. counter */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (DeviceDataPrv-&amp;gt;InpRecvDataNum == DeviceDataPrv-&amp;gt;InpDataNumReq) { /* Is the requested number of characters received? */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI_PDD_DisableInterruptMask(SPI0_BASE_PTR, SPI_PDD_RX_BUFFER_FULL_OR_FAULT); /* Disable Rx buffer full interrupt */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DeviceDataPrv-&amp;gt;InpDataNumReq = 0x00U; /* If yes then clear number of requested characters to be received. */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SM1_OnBlockReceived(DeviceDataPrv-&amp;gt;UserData);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; if ((StatReg &amp;amp; SPI_PDD_TX_BUFFER_EMPTYG) != 0U) { /* Is HW Tx buffer empty? */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (DeviceDataPrv-&amp;gt;OutSentDataNum &amp;lt; DeviceDataPrv-&amp;gt;OutDataNumReq) { /* Is number of sent characters less than the number of requested incoming characters? */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI_PDD_WriteData8Bit(SPI0_BASE_PTR, (*((uint8_t *)DeviceDataPrv-&amp;gt;OutDataPtr++))); /* Put a character with command to the transmit register and increment pointer to the transmitt buffer */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DeviceDataPrv-&amp;gt;OutSentDataNum++; /* Increment the counter of sent characters. */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (DeviceDataPrv-&amp;gt;OutSentDataNum == DeviceDataPrv-&amp;gt;OutDataNumReq) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DeviceDataPrv-&amp;gt;OutDataNumReq = 0x00U; /* Clear the counter of characters to be send by SendBlock() */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SM1_OnBlockSent(DeviceDataPrv-&amp;gt;UserData);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI_PDD_DisableInterruptMask(SPI0_BASE_PTR, SPI_PDD_TX_BUFFER_EMPTY); /* Disable TX interrupt */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But with this code SPI read function is not working. But i made it working with including two lines &lt;/P&gt;&lt;P&gt;in PE_ISR(SM1_Interrupt). i copied here my changes&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;included two lines are highlighted with BOLD letter down: &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;PE_ISR(SM1_Interrupt)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* {FreeRTOS RTOS Adapter} ISR parameter is passed through the global variable */&lt;/P&gt;&lt;P&gt;&amp;nbsp; SM1_TDeviceDataPtr DeviceDataPrv = INT_SPI0__BAREBOARD_RTOS_ISRPARAM;&lt;/P&gt;&lt;P&gt;&amp;nbsp; uint8_t StatReg = SPI_PDD_ReadStatusReg(SPI0_BASE_PTR); /* Read status register */&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; (void)DeviceDataPrv;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Supress unused variable warning if needed */&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;STRONG style="color: #606060;"&gt;if (DeviceDataPrv-&amp;gt;OutDataNumReq == 0x00U)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if ((StatReg &amp;amp; SPI_PDD_RX_BUFFER_FULL) != 0U) { /* Is any char in HW Rx buffer? */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (DeviceDataPrv-&amp;gt;InpDataNumReq != 0x00U) { /* Is the receive block operation pending? */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(DeviceDataPrv-&amp;gt;InpDataPtr++) = SPI_PDD_ReadData8bit(SPI0_BASE_PTR); /* Put a character to the receive buffer and increment pointer to receive buffer */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt; SPI_PDD_WriteData8Bit(SPI0_BASE_PTR, 0);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DeviceDataPrv-&amp;gt;InpRecvDataNum++; /* Increment received char. counter */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (DeviceDataPrv-&amp;gt;InpRecvDataNum == DeviceDataPrv-&amp;gt;InpDataNumReq) { /* Is the requested number of characters received? */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI_PDD_DisableInterruptMask(SPI0_BASE_PTR, SPI_PDD_RX_BUFFER_FULL_OR_FAULT); /* Disable Rx buffer full interrupt */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DeviceDataPrv-&amp;gt;InpDataNumReq = 0x00U; /* If yes then clear number of requested characters to be received. */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SM1_OnBlockReceived(DeviceDataPrv-&amp;gt;UserData);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; if ((StatReg &amp;amp; SPI_PDD_TX_BUFFER_EMPTYG) != 0U) { /* Is HW Tx buffer empty? */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (DeviceDataPrv-&amp;gt;OutSentDataNum &amp;lt; DeviceDataPrv-&amp;gt;OutDataNumReq) { /* Is number of sent characters less than the number of requested incoming characters? */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI_PDD_WriteData8Bit(SPI0_BASE_PTR, (*((uint8_t *)DeviceDataPrv-&amp;gt;OutDataPtr++))); /* Put a character with command to the transmit register and increment pointer to the transmitt buffer */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DeviceDataPrv-&amp;gt;OutSentDataNum++; /* Increment the counter of sent characters. */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (DeviceDataPrv-&amp;gt;OutSentDataNum == DeviceDataPrv-&amp;gt;OutDataNumReq) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DeviceDataPrv-&amp;gt;OutDataNumReq = 0x00U; /* Clear the counter of characters to be send by SendBlock() */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SM1_OnBlockSent(DeviceDataPrv-&amp;gt;UserData);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI_PDD_DisableInterruptMask(SPI0_BASE_PTR, SPI_PDD_TX_BUFFER_EMPTY); /* Disable TX interrupt */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now all working fine. But whenever i do clear and build for my project, all generated files created with &lt;/P&gt;&lt;P&gt;default code. so my changes also got erased. I want that two line to be there always even if &lt;/P&gt;&lt;P&gt;do clear and build. Basically default SPI driver function PE_ISR(SM1_Interrupt) is not working&lt;/P&gt;&lt;P&gt;for me. so i changed that function so that i am able to communicate over the SPI. how to &lt;/P&gt;&lt;P&gt;stop regenerating SM1.c when i do clear and build?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 23 Mar 2016 13:29:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/SPI-read-is-not-working-with-default-driver/m-p/501082#M12754</guid>
      <dc:creator>kishoresamy</dc:creator>
      <dc:date>2016-03-23T13:29:00Z</dc:date>
    </item>
    <item>
      <title>Re: SPI read is not working with default driver.</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/SPI-read-is-not-working-with-default-driver/m-p/501083#M12755</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello kishore,&lt;/P&gt;&lt;P&gt;After you finish changing the code , please select the "Don't writhe generated component modules":&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_0.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/24455iDD722868642F9DA5/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_0.png" alt="pastedImage_0.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;then when you build the code, it will not&amp;nbsp; changed , and also when you re change the configuration&lt;/P&gt;&lt;P&gt;of the SPI component , please select the "Always write.." option , or it also can not change the code .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope it helps&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Alice Yang&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 24 Mar 2016 02:18:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/SPI-read-is-not-working-with-default-driver/m-p/501083#M12755</guid>
      <dc:creator>Alice_Yang</dc:creator>
      <dc:date>2016-03-24T02:18:16Z</dc:date>
    </item>
    <item>
      <title>Re: SPI read is not working with default driver.</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/SPI-read-is-not-working-with-default-driver/m-p/501084#M12756</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Alice,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                Thank you so much. my issue solved after following your instruction.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks &amp;amp; Rgds,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kishore R.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 24 Mar 2016 06:31:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/SPI-read-is-not-working-with-default-driver/m-p/501084#M12756</guid>
      <dc:creator>kishoresamy</dc:creator>
      <dc:date>2016-03-24T06:31:36Z</dc:date>
    </item>
    <item>
      <title>Re: SPI read is not working with default driver.</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/SPI-read-is-not-working-with-default-driver/m-p/501085#M12757</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Kishore,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; Welcome !&lt;/P&gt;&lt;P&gt;If the answer is right , It will be very nice you click the "Mark Correct" , then are people can refer to .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BR&lt;/P&gt;&lt;P&gt;Alice&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 24 Mar 2016 09:46:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/SPI-read-is-not-working-with-default-driver/m-p/501085#M12757</guid>
      <dc:creator>Alice_Yang</dc:creator>
      <dc:date>2016-03-24T09:46:27Z</dc:date>
    </item>
  </channel>
</rss>

