<?xml-stylesheet type="text/xsl" href="https://community.element14.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Renesas Solution Starter Kit for RX23E-A - break out the SPI signals</title><link>/technologies/embedded/b/blog/posts/renesas-solution-starter-kit-for-rx23e-a---break-out-the-spi-signals</link><description>I&amp;#39;m about to design some analogue measurement devices based on the Renesas RX23E-A controller. With SPI as communication channel between that IC and a more generic communication/processing board.
The full design of the future project is still se...</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: Renesas Solution Starter Kit for RX23E-A - break out the SPI signals</title><link>https://community.element14.com/technologies/embedded/b/blog/posts/renesas-solution-starter-kit-for-rx23e-a---break-out-the-spi-signals</link><pubDate>Sun, 14 Apr 2024 10:55:54 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:247ae4c7-dd0b-4632-9a85-d6285941320d</guid><dc:creator>Jan Cumps</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Progress: I have a PI Pico running as SPI master, and the Renesas RX23E-A as SPI slave. 1 Mbps. Both sides with DMA support.&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " height="273" src="/resized-image/__size/998x546/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-247ae4c7-dd0b-4632-9a85-d6285941320d/20240414_5F00_124200.jpg" width="499" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " height="169" src="/resized-image/__size/996x338/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-247ae4c7-dd0b-4632-9a85-d6285941320d/pastedimage1713093366419v1.png" width="498" /&gt;&lt;/p&gt;
&lt;p&gt;RX23E-A source&lt;/p&gt;
&lt;p&gt;[embed:dc8ab71f-3b98-42d9-b0f6-e21e02a0f8e2:5759f8ee-7c4e-420e-91e4-df2ddff38fb1:type=c_cpp&amp;text=%2F%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%0A%2A%20This%20software%20is%20supplied%20by%20Renesas%20Electronics%20Corporation%20and%20is%20only%20intended%20for%20use%20with%20Renesas%20products.%20No%0A%2A%20other%20uses%20are%20authorized.%20This%20software%20is%20owned%20by%20Renesas%20Electronics%20Corporation%20and%20is%20protected%20under%20all%0A%2A%20applicable%20laws%2C%20including%20copyright%20laws.%0A%2A%20THIS%20SOFTWARE%20IS%20PROVIDED%20%22AS%20IS%22%20AND%20RENESAS%20MAKES%20NO%20WARRANTIES%20REGARDING%0A%2A%20THIS%20SOFTWARE%2C%20WHETHER%20EXPRESS%2C%20IMPLIED%20OR%20STATUTORY%2C%20INCLUDING%20BUT%20NOT%20LIMITED%20TO%20WARRANTIES%20OF%20MERCHANTABILITY%2C%0A%2A%20FITNESS%20FOR%20A%20PARTICULAR%20PURPOSE%20AND%20NON-INFRINGEMENT.%20ALL%20SUCH%20WARRANTIES%20ARE%20EXPRESSLY%20DISCLAIMED.%20TO%20THE%20MAXIMUM%0A%2A%20EXTENT%20PERMITTED%20NOT%20PROHIBITED%20BY%20LAW%2C%20NEITHER%20RENESAS%20ELECTRONICS%20CORPORATION%20NOR%20ANY%20OF%20ITS%20AFFILIATED%20COMPANIES%0A%2A%20SHALL%20BE%20LIABLE%20FOR%20ANY%20DIRECT%2C%20INDIRECT%2C%20SPECIAL%2C%20INCIDENTAL%20OR%20CONSEQUENTIAL%20DAMAGES%20FOR%20ANY%20REASON%20RELATED%20TO%20THIS%0A%2A%20SOFTWARE%2C%20EVEN%20IF%20RENESAS%20OR%20ITS%20AFFILIATES%20HAVE%20BEEN%20ADVISED%20OF%20THE%20POSSIBILITY%20OF%20SUCH%20DAMAGES.%0A%2A%20Renesas%20reserves%20the%20right%2C%20without%20notice%2C%20to%20make%20changes%20to%20this%20software%20and%20to%20discontinue%20the%20availability%20of%0A%2A%20this%20software.%20By%20using%20this%20software%2C%20you%20agree%20to%20the%20additional%20terms%20and%20conditions%20found%20by%20accessing%20the%0A%2A%20following%20link%3A%0A%2A%20http%3A%2F%2Fwww.renesas.com%2Fdisclaimer%0A%2A%0A%2A%20Copyright%20%28C%29%202020%20Renesas%20Electronics%20Corporation.%20All%20rights%20reserved.%0A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2F%0A%2F%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%0A%2A%20File%20Name%20%20%20%20%3A%20rx231_rsk_rspi_slave_sample.c%0A%2A%20Device%28s%29%20%20%20%20%3A%20RX%20Family%0A%2A%20Tool-Chain%20%20%20%3A%20Renesas%20RX%20Standard%20Toolchain%0A%2A%20OS%20%20%20%20%20%20%20%20%20%20%20%3A%20None%0A%2A%20H%2FW%20Platform%20%3A%20RSKRX231%20for%20demo%0A%2A%20Description%20%20%3A%20Simple%20demonstration%20for%20using%20the%20RSPI%20API.%0A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%0A%2A%20History%20%3A%20DD.MM.YYYY%20Version%20Description%0A%2A%20%20%20%20%20%20%20%20%20%20%2010.09.2020%201.00%20%20%20%20Initial%20Release%0A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2F%0A%0A%2F%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%0AIncludes%20%20%20%3CSystem%20Includes%3E%20%2C%20%22Project%20Includes%22%0A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2F%0A%23include%20%3Cstdio.h%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2A%20For%20sprintf%20%2A%2F%0A%23include%20%22platform.h%22%20%20%20%20%20%20%20%20%20%20%20%2F%2A%20Located%20in%20the%20FIT%20BSP%20module%20%2A%2F%0A%23include%20%22r_rspi_rx_pinset.h%22%0A%23include%20%22r_rspi_rx_if.h%22%20%20%20%20%20%20%20%2F%2A%20The%20RSPI%20module%20API%20interface%20file.%20%2A%2F%0A%0A%23define%20RSPI_DMAC_TEST%20%280%29%0A%23define%20RSPI_DTC_TEST%20%20%280%29%0A%0A%23if%20RSPI_DTC_TEST%20%3D%3D%20%281%29%0A%23include%20%22r_dtc_rx_if.h%22%0A%23endif%0A%0A%23if%20RSPI_DMAC_TEST%20%3D%3D%20%281%29%0A%23include%20%22r_dmaca_rx_if.h%22%0A%23endif%0A%0A%23if%20RSPI_CFG_LONGQ_ENABLE%20%3D%3D%201%0A%23include%20%22r_longq_if.h%22%0A%23endif%0A%2F%2A%20RSPI_CFG_LONGQ_ENABLE%20%2A%2F%0A%0A%0A%2F%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%0AMacro%20definitions%0A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2F%0A%23define%20DEMO_DATA_SIZE%20%20%2832%29%0A%23define%20RSPI_CFG_USE_GPIO_SSL%20%280%29%20%2F%2A%20Use%20RSPI%20to%20control%20the%20slave%20select.%20%2A%2F%0A%23define%20RSPI_CHANNEL%20%20%20%20%20%20%20%20%280%29%0A%23define%20LOOP_COUNT%20%20%20%20%20%285%29%0A%0A%23if%20RSPI_CFG_USE_GPIO_SSL%20%3D%3D%20%281%29%0A%23define%20RSPI_CFG_SS_GPIO_PIDR%20%20%20PORTA.PIDR.BIT.B4%0A%23define%20PORT_LOW%20%20%20%20%280%29%0A%23define%20PORT_HIGH%20%20%20%281%29%0A%23endif%0A%0A%23if%20RSPI_CFG_LONGQ_ENABLE%20%3D%3D%201%0A%23define%20RSPI_USER_LONGQ_IGN_OVERFLOW%20%20%20%20%281%29%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2A%20Ignore_overflow%20of%20error%20log%20buffer.%20%2A%2F%0A%23define%20USER_DRIVER_ID%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%281%29%0A%23define%20USER_LOG_MAX%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2863%29%0A%23define%20USER_LOG_ADR_MAX%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%280x00001fff%29%0A%23endif%20%2F%2A%20RSPI_CFG_LONGQ_ENABLE%20%2A%2F%0A%0A%23define%20SPI_DATA_TYPE%20uint8_t%0A%23define%20SPI_DATA_SIZE%20RSPI_SPCMD_BIT_LENGTH_8%0A%0A%0A%0A%2F%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%0APrivate%20global%20variables%20and%20functions%0A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2F%0A%23if%20RSPI_CFG_LONGQ_ENABLE%20%3D%3D%201%0Astatic%20longq_hdl_t%20%20%20%20%20p_rspi_user_long_que%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2A%20LongQ%20handler%20%20%20%20%20%20%20%20%2A%2F%0Aextern%20uint32_t%20R_COM_MTL_Get_BufferAddress%28void%29%3B%0A%23endif%20%2F%2A%20RSPI_CFG_LONGQ_ENABLE%20%2A%2F%0A%0Astatic%20void%20my_rspi_callback%28void%20%2Ap_data%29%3B%0Astatic%20bool%20verify_data%28SPI_DATA_TYPE%20%2A%20p_data_source%2C%20SPI_DATA_TYPE%20%2A%20p_data_dest%2C%20uint16_t%20length%29%3B%0Astatic%20void%20rspi_rx231_init_ports%28void%29%3B%0Astatic%20void%20init_demo_data%28void%29%3B%0Astatic%20void%20tst_trap%28void%29%3B%0A%23if%20RSPI_CFG_USE_GPIO_SSL%20%3D%3D%20%281%29%0Avoid%20poll_port%28uint8_t%20level%29%3B%0A%23endif%0Astatic%20volatile%20bool%20%20transfer_busy%20%3D%20false%3B%0A%0Astatic%20SPI_DATA_TYPE%20%20demo_data_source%5BDEMO_DATA_SIZE%5D%20%3D%20%7B0%7D%3B%0Astatic%20SPI_DATA_TYPE%20%20demo_data_dest%5BDEMO_DATA_SIZE%5D%20%3D%20%7B0%7D%3B%0A%2F%2A%20Define%20for%20RSPI%20Information%20structure%20type%20%2A%2F%0Atypedef%20struct%0A%7B%0A%20%20%20%20uint32_t%20%20data_cnt%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Number%20of%20data%20%28byte%20unit%29%0A%20%20%20%20uint8_t%20%2A%20p_tx_data%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Pointer%20to%20transmit%20data%20buffer%0A%20%20%20%20uint8_t%20%2A%20p_rx_data%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Pointer%20to%20receive%20data%20buffer%0A%7D%20rspi_info_t%3B%0Arspi_info_t%20demo_data_test%3B%0Astatic%20rspi_evt_t%20demo_callback_event%3B%20%2F%2F%20Storage%20for%20callback%20result%20data.%0A%0A%2F%2A%20Initialize%20demo%20command%20word%20settings.%0A%20%2A%20This%20can%20be%20constant%20if%20you%20don%27t%20need%20to%20change%20the%20settings.%20%2A%2F%0Astatic%20rspi_command_word_t%20my_rspi_command%3B%0A%0Astatic%20rspi_err_t%20%20%20%20%20%20%20%20%20%20%20my_rspi_err%3B%0Astatic%20rspi_handle_t%20%20%20%20%20%20%20%20my_rspi_handle%3B%0Astatic%20rspi_chnl_settings_t%20my_rspi_setting%3B%0Astatic%20uint32_t%20%20%20%20%20%20%20%20%20%20%20%20%20my_version%3B%0Astatic%20uint8_t%20%20%20%20%20%20%20%20%20%20%20%20%20%20version_str%5B12%5D%20%3D%20%7B0%7D%3B%20%2F%2F%20Enough%20space%20to%20hold%20the%20formatted%20version%20string.%0Astatic%20uint32_t%20%20%20%20%20%20%20%20%20%20%20%20%20loop_count%20%3D%200%3B%0A%0A%23if%20RSPI_DTC_TEST%20%3D%3D%20%281%29%0Astatic%20volatile%20uint32_t%20%20%20%20%20%20%20transfer_data%5B4%5D%3B%0Astatic%20volatile%20uint32_t%20%20%20%20%20%20%20receive_data%5B4%5D%3B%0A%23endif%0A%0A%2F%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%0A%2A%20Function%20Name%3A%20tst_trap%0A%2A%20Description%20%20%3A%20It%27s%20a%20trap%20function%0A%2A%20Arguments%20%20%20%20%3A%20None%0A%2A%20Return%20Value%20%3A%20None%0A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2F%0Astatic%20void%20tst_trap%28void%29%0A%7B%0A%23if%20RSPI_CFG_LONGQ_ENABLE%20%3D%3D%201%0A%20%20%20%20longq_err_t%20%20%20%20%20%20%20%20%20err%3B%0A%0A%20%20%20%20%2F%2A%20Set%20last%20error%20log%20to%20buffer.%20%2A%2F%0A%20%20%20%20R_RSPI_Log%28USER_DRIVER_ID%2C%20USER_LOG_MAX%2C%20USER_LOG_ADR_MAX%29%3B%0A%0A%20%20%20%20%2F%2A%20Close%20LONGQ%20module.%20%2A%2F%0A%20%20%20%20err%20%3D%20R_LONGQ_Close%28p_rspi_user_long_que%29%3B%0A%20%20%20%20if%20%28LONGQ_SUCCESS%20%21%3D%20err%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%281%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2A%20Infinite%20Loop%20%2A%2F%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%23endif%0A%20%20%20%20%2F%2A%20RSPI_CFG_LONGQ_ENABLE%20%2A%2F%0A%20%20%20%20while%281%29%7B%2F%2ADo%20nothing%2A%2F%7D%0A%7D%0A%2F%2A%20End%20of%20function%20tst_trap.%20%2A%2F%0A%0A%23if%20RSPI_DMAC_TEST%20%3D%3D%20%281%29%0A%2F%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%0A%2A%20Outline%20%20%20%20%20%20%3A%20DMAC%20callback%20function%0A%2A%20Function%20Name%3A%20DMA_CallBack_W%0A%2A%20Description%20%20%3A%20It%27s%20the%20RSPI%20transmit%20end%20callback%20function%20via%20DMAC.%0A%2A%20Arguments%20%20%20%20%3A%20none%0A%2A%20Return%20Value%20%3A%20none%0A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2F%0Avoid%20DMA_CallBack_W%28void%29%0A%7B%0A%20%20%20%20volatile%20dmaca_return_t%20%20%20%20ret_dmaca%3B%0A%20%20%20%20dmaca_stat_t%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20p_stat_dmaca%3B%0A%0A%20%20%20%20my_rspi_handle-%3Echannel%20%3D%20RSPI_CHANNEL%3B%0A%0A%20%20%20%20%2F%2A%20check%20DMA%20end%20%2A%2F%0A%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Control%28DMACA_CH0%2C%20DMACA_CMD_STATUS_GET%2C%20%28dmaca_stat_t%2A%29%26p_stat_dmaca%29%3B%0A%20%20%20%20if%20%28DMACA_SUCCESS%20%21%3D%20ret_dmaca%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20if%20%28false%20%21%3D%20%28p_stat_dmaca.dtif_stat%29%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Control%28DMACA_CH0%2C%20DMACA_CMD_DTIF_STATUS_CLR%2C%20%28dmaca_stat_t%2A%29%26p_stat_dmaca%29%3B%0A%20%20%20%20%20%20%20%20R_RSPI_DisableSpti%28my_rspi_handle%29%3B%0A%20%20%20%20%20%20%20%20R_RSPI_IntSptiIerClear%28my_rspi_handle%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20if%20%28false%20%21%3D%20%28p_stat_dmaca.esif_stat%29%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Control%28DMACA_CH0%2C%20DMACA_CMD_ESIF_STATUS_CLR%2C%20%28dmaca_stat_t%2A%29%26p_stat_dmaca%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%3B%0A%7D%0A%2F%2A%20End%20of%20function%20DMA_CallBack_W.%20%2A%2F%0A%0A%2F%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%0A%2A%20Outline%20%20%20%20%20%20%3A%20DMAC%20callback%20function%0A%2A%20Function%20Name%3A%20DMA_CallBack_R%0A%2A%20Description%20%20%3A%20It%27s%20the%20RSPI%20receive%20end%20callback%20function%20via%20DMAC.%0A%2A%20Arguments%20%20%20%20%3A%20none%0A%2A%20Return%20Value%20%3A%20none%0A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2F%0Avoid%20DMA_CallBack_R%28void%29%0A%7B%0A%20%20%20%20volatile%20dmaca_return_t%20%20%20%20ret_dmaca%3B%0A%20%20%20%20dmaca_stat_t%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20p_stat_dmaca%3B%0A%0A%20%20%20%20my_rspi_handle-%3Echannel%20%3D%20RSPI_CHANNEL%3B%0A%0A%20%20%20%20%2F%2A%20check%20DMA%20end%20%2A%2F%0A%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Control%28DMACA_CH1%2C%20DMACA_CMD_STATUS_GET%2C%20%28dmaca_stat_t%2A%29%26p_stat_dmaca%29%3B%0A%20%20%20%20if%20%28DMACA_SUCCESS%20%21%3D%20ret_dmaca%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20if%20%28false%20%21%3D%20%28p_stat_dmaca.dtif_stat%29%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Control%28DMACA_CH1%2C%20DMACA_CMD_DTIF_STATUS_CLR%2C%20%28dmaca_stat_t%2A%29%26p_stat_dmaca%29%3B%0A%20%20%20%20%20%20%20%20R_RSPI_IntSpriIerClear%28my_rspi_handle%29%3B%0A%20%20%20%20%20%20%20%20R_RSPI_DisableRSPI%28my_rspi_handle%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20if%20%28false%20%21%3D%20%28p_stat_dmaca.esif_stat%29%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Control%28DMACA_CH1%2C%20DMACA_CMD_ESIF_STATUS_CLR%2C%20%28dmaca_stat_t%2A%29%26p_stat_dmaca%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20transfer_busy%20%3D%20false%3B%0A%20%20%20%20return%3B%0A%7D%0A%2F%2A%20End%20of%20function%20DMA_CallBack_R.%20%2A%2F%0A%0A%2F%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%0A%2A%20Outline%20%20%20%20%20%20%3A%20Enable%20DMAC%20for%20RSPI%20transmission%0A%2A%20Function%20Name%3A%20r_dmaca_set_send%0A%2A%20Description%20%20%3A%20Enables%20DMAC%20for%20RSPI%20transmission.%0A%2A%20Arguments%20%20%20%20%3A%20dmaca_transfer_data_cfg_t%20%20%2A%20p_data_cfg%20%20%20%20%20%20%20%20%3B%20Contains%20the%20settings%20for%20Transfer%20data%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20void%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2A%20source_data%20%20%20%20%20%20%20%3B%20Source%20data%20address%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20uint32_t%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20data_len%20%20%20%20%20%20%20%20%20%20%20%20%3B%20Data%20length%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20uint32_t%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20reg_buff%20%20%20%20%20%20%20%20%20%20%20%20%3B%20Pointer%20of%20transmit%20data%20buffer%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20dmaca_activation_source_t%20%20act_source%20%20%20%20%20%20%20%20%20%20%3B%20DMAC%20activation%20source%0A%2A%20Return%20Value%20%3A%20none%0A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2F%0Astatic%20void%20r_dmaca_set_send%28dmaca_transfer_data_cfg_t%20%2Ap_data_cfg%2C%20void%20%2Asource_data%2C%20uint32_t%20data_len%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20uint32_t%20reg_buff%2C%20dmaca_activation_source_t%20act_source%29%0A%7B%0A%20%20%20%20p_data_cfg-%3Etransfer_mode%20%20%20%20%20%20%20%20%20%3D%20DMACA_TRANSFER_MODE_NORMAL%3B%0A%20%20%20%20p_data_cfg-%3Erepeat_block_side%20%20%20%20%20%3D%20DMACA_REPEAT_BLOCK_DESTINATION%3B%0A%20%20%20%20p_data_cfg-%3Edata_size%20%20%20%20%20%20%20%20%20%20%20%20%20%3D%20DMACA_DATA_SIZE_LWORD%3B%0A%0A%20%20%20%20p_data_cfg-%3Eact_source%20%20%20%20%20%20%20%20%20%20%20%20%3D%20act_source%3B%0A%20%20%20%20p_data_cfg-%3Erequest_source%20%20%20%20%20%20%20%20%3D%20DMACA_TRANSFER_REQUEST_PERIPHERAL%3B%0A%20%20%20%20p_data_cfg-%3Edtie_request%20%20%20%20%20%20%20%20%20%20%3D%20DMACA_TRANSFER_END_INTERRUPT_ENABLE%3B%0A%20%20%20%20p_data_cfg-%3Eesie_request%20%20%20%20%20%20%20%20%20%20%3D%20DMACA_TRANSFER_ESCAPE_END_INTERRUPT_DISABLE%3B%0A%20%20%20%20p_data_cfg-%3Erptie_request%20%20%20%20%20%20%20%20%20%3D%20DMACA_REPEAT_SIZE_END_INTERRUPT_DISABLE%3B%0A%20%20%20%20p_data_cfg-%3Esarie_request%20%20%20%20%20%20%20%20%20%3D%20DMACA_SRC_ADDR_EXT_REP_AREA_OVER_INTERRUPT_DISABLE%3B%0A%20%20%20%20p_data_cfg-%3Edarie_request%20%20%20%20%20%20%20%20%20%3D%20DMACA_DES_ADDR_EXT_REP_AREA_OVER_INTERRUPT_DISABLE%3B%0A%0A%20%20%20%20p_data_cfg-%3Esrc_addr_mode%20%20%20%20%20%20%20%20%20%3D%20DMACA_SRC_ADDR_INCR%3B%0A%20%20%20%20p_data_cfg-%3Edes_addr_mode%20%20%20%20%20%20%20%20%20%3D%20DMACA_DES_ADDR_FIXED%3B%0A%0A%20%20%20%20p_data_cfg-%3Esrc_addr_repeat_area%20%20%3D%20DMACA_SRC_ADDR_EXT_REP_AREA_NONE%3B%0A%20%20%20%20p_data_cfg-%3Edes_addr_repeat_area%20%20%3D%20DMACA_DES_ADDR_EXT_REP_AREA_NONE%3B%0A%20%20%20%20p_data_cfg-%3Einterrupt_sel%20%20%20%20%20%20%20%20%20%3D%20DMACA_CLEAR_INTERRUPT_FLAG_BEGINNING_TRANSFER%3B%0A%0A%20%20%20%20%2F%2A%20The%20side%20being%20repeat%20or%20block%20in%20repeat%20%2F%20block%20transfer%20mode%20%2A%2F%0A%20%20%20%20p_data_cfg-%3Ep_src_addr%20%20%20%20%20%20%20%20%20%20%20%20%3D%20source_data%3B%0A%20%20%20%20p_data_cfg-%3Ep_des_addr%20%20%20%20%20%20%20%20%20%20%20%20%3D%20%28void%20%2A%29reg_buff%3B%0A%20%20%20%20p_data_cfg-%3Etransfer_count%20%20%20%20%20%20%20%20%3D%20data_len%3B%0A%7D%0A%2F%2A%20End%20of%20function%20r_dmaca_set_send.%20%2A%2F%0A%0A%2F%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%0A%2A%20Outline%20%20%20%20%20%20%3A%20Enable%20DMAC%20for%20RSPI%20reception%0A%2A%20Function%20Name%3A%20r_dmaca_set_recv%0A%2A%20Description%20%20%3A%20Enables%20DMAC%20for%20RSPI%20reception.%0A%2A%20Arguments%20%20%20%20%3A%20dmaca_transfer_data_cfg_t%20%20%2A%20p_data_cfg%20%20%20%20%20%20%20%20%3B%20Contains%20the%20settings%20for%20Transfer%20data%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20void%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2A%20dest_data%20%20%20%20%20%20%20%20%20%3B%20Destination%20data%20address%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20uint32_t%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20data_len%20%20%20%20%20%20%20%20%20%20%20%20%3B%20Destination%20data%20length%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20uint32_t%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20reg_buff%20%20%20%20%20%20%20%20%20%20%20%20%3B%20Pointer%20of%20receive%20data%20buffer%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20dmaca_activation_source_t%20%20act_source%20%20%20%20%20%20%20%20%20%20%3B%20DMAC%20activation%20source%0A%2A%20Return%20Value%20%3A%20none%0A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2F%0Astatic%20void%20r_dmaca_set_recv%28dmaca_transfer_data_cfg_t%20%2Ap_data_cfg%2C%20void%20%2Adest_data%2C%20uint32_t%20data_len%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20uint32_t%20reg_buff%2C%20dmaca_activation_source_t%20act_source%29%0A%7B%0A%20%20%20%20p_data_cfg-%3Etransfer_mode%20%20%20%20%20%20%20%20%20%3D%20DMACA_TRANSFER_MODE_NORMAL%3B%0A%20%20%20%20p_data_cfg-%3Erepeat_block_side%20%20%20%20%20%3D%20DMACA_REPEAT_BLOCK_DESTINATION%3B%0A%20%20%20%20p_data_cfg-%3Edata_size%20%20%20%20%20%20%20%20%20%20%20%20%20%3D%20DMACA_DATA_SIZE_LWORD%3B%0A%0A%20%20%20%20p_data_cfg-%3Eact_source%20%20%20%20%20%20%20%20%20%20%20%20%3D%20act_source%3B%0A%20%20%20%20p_data_cfg-%3Erequest_source%20%20%20%20%20%20%20%20%3D%20DMACA_TRANSFER_REQUEST_PERIPHERAL%3B%0A%20%20%20%20p_data_cfg-%3Edtie_request%20%20%20%20%20%20%20%20%20%20%3D%20DMACA_TRANSFER_END_INTERRUPT_ENABLE%3B%0A%20%20%20%20p_data_cfg-%3Eesie_request%20%20%20%20%20%20%20%20%20%20%3D%20DMACA_TRANSFER_ESCAPE_END_INTERRUPT_DISABLE%3B%0A%20%20%20%20p_data_cfg-%3Erptie_request%20%20%20%20%20%20%20%20%20%3D%20DMACA_REPEAT_SIZE_END_INTERRUPT_DISABLE%3B%0A%20%20%20%20p_data_cfg-%3Esarie_request%20%20%20%20%20%20%20%20%20%3D%20DMACA_SRC_ADDR_EXT_REP_AREA_OVER_INTERRUPT_DISABLE%3B%0A%20%20%20%20p_data_cfg-%3Edarie_request%20%20%20%20%20%20%20%20%20%3D%20DMACA_DES_ADDR_EXT_REP_AREA_OVER_INTERRUPT_DISABLE%3B%0A%0A%20%20%20%20p_data_cfg-%3Esrc_addr_mode%20%20%20%20%20%20%20%20%20%3D%20DMACA_SRC_ADDR_FIXED%3B%0A%20%20%20%20p_data_cfg-%3Edes_addr_mode%20%20%20%20%20%20%20%20%20%3D%20DMACA_DES_ADDR_INCR%3B%0A%0A%20%20%20%20p_data_cfg-%3Esrc_addr_repeat_area%20%20%3D%20DMACA_SRC_ADDR_EXT_REP_AREA_NONE%3B%0A%20%20%20%20p_data_cfg-%3Edes_addr_repeat_area%20%20%3D%20DMACA_DES_ADDR_EXT_REP_AREA_NONE%3B%0A%20%20%20%20p_data_cfg-%3Einterrupt_sel%20%20%20%20%20%20%20%20%20%3D%20DMACA_CLEAR_INTERRUPT_FLAG_BEGINNING_TRANSFER%3B%0A%0A%20%20%20%20%2F%2A%20The%20side%20being%20repeat%20or%20block%20in%20repeat%20%2F%20block%20transfer%20mode%20%2A%2F%0A%20%20%20%20p_data_cfg-%3Ep_src_addr%20%20%20%20%20%20%20%20%20%20%20%20%3D%20%28void%20%2A%29reg_buff%3B%0A%20%20%20%20p_data_cfg-%3Ep_des_addr%20%20%20%20%20%20%20%20%20%20%20%20%3D%20dest_data%3B%0A%20%20%20%20p_data_cfg-%3Etransfer_count%20%20%20%20%20%20%20%20%3D%20data_len%3B%0A%7D%0A%2F%2A%20End%20of%20function%20r_dmaca_set_recv.%20%2A%2F%0A%23endif%0A%0A%23if%20RSPI_DTC_TEST%20%3D%3D%20%281%29%0A%2F%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%0A%2A%20Outline%20%20%20%20%20%20%3A%20Enable%20DTC%20for%20RSPI%20reception%0A%2A%20Function%20Name%3A%20r_dtc_set_recv%0A%2A%20Description%20%20%3A%20Enables%20DTC%20for%20RSPI%20reception.%0A%2A%20Arguments%20%20%20%20%3A%20dtc_transfer_data_cfg_t%20%20%20%20%2A%20p_data_cfg%20%20%20%20%20%20%20%20%3B%20Contains%20the%20settings%20for%20Transfer%20data%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20void%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2A%20dest_data%20%20%20%20%20%20%20%20%20%3B%20Destination%20data%20address%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20uint32_t%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20data_len%20%20%20%20%20%20%20%20%20%20%20%20%3B%20Destination%20data%20length%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20uint32_t%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2A%20p_reg_buff%20%20%20%20%20%20%20%20%3B%20Pointer%20of%20receive%20data%20buffer%0A%2A%20Return%20Value%20%3A%20none%0A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2F%0Astatic%20void%20r_dtc_set_recv%28dtc_transfer_data_cfg_t%20%20%2Ap_data_cfg%2C%20void%20%2Adest_data%2C%20uint32_t%20data_len%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20uint32_t%20%2Ap_reg_buff%29%0A%7B%0A%20%20%20%20p_data_cfg-%3Etransfer_mode%20%20%20%20%20%20%20%20%20%20%3D%20DTC_TRANSFER_MODE_NORMAL%3B%20%20%20%20%20%20%20%20%20%20%2F%2F%20DTC%20transfer%20mode%0A%20%20%20%20p_data_cfg-%3Edata_size%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3D%20DTC_DATA_SIZE_LWORD%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20The%20size%20of%20data%0A%20%20%20%20p_data_cfg-%3Esrc_addr_mode%20%20%20%20%20%20%20%20%20%20%3D%20DTC_SRC_ADDR_FIXED%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Address%20mode%20of%20source%0A%20%20%20%20p_data_cfg-%3Echain_transfer_enable%20%20%3D%20DTC_CHAIN_TRANSFER_DISABLE%3B%20%20%20%20%20%20%20%20%2F%2F%20Chain%20transfer%20is%20enabled%20or%20not%0A%20%20%20%20p_data_cfg-%3Echain_transfer_mode%20%20%20%20%3D%20DTC_CHAIN_TRANSFER_CONTINUOUSLY%3B%20%20%20%2F%2F%20How%20chain%20transfer%20is%20performed%0A%20%20%20%20p_data_cfg-%3Eresponse_interrupt%20%20%20%20%20%3D%20DTC_INTERRUPT_AFTER_ALL_COMPLETE%3B%20%20%2F%2F%20How%20response%20interrupt%20is%20raised%0A%20%20%20%20%2F%2A%20The%20side%20being%20repeat%20or%20block%20in%20repeat%20%2F%20block%20transfer%20mode%20%2A%2F%0A%20%20%20%20p_data_cfg-%3Erepeat_block_side%20%20%20%20%20%20%3D%20DTC_REPEAT_BLOCK_DESTINATION%3B%0A%20%20%20%20p_data_cfg-%3Edest_addr_mode%20%20%20%20%20%20%20%20%20%3D%20DTC_DES_ADDR_INCR%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Address%20mode%20of%20destination%0A%20%20%20%20p_data_cfg-%3Esource_addr%20%20%20%20%20%20%20%20%20%20%20%20%3D%20%28uint32_t%29%28%2Ap_reg_buff%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Start%20address%20of%20source%0A%20%20%20%20p_data_cfg-%3Edest_addr%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3D%20%28uint32_t%29dest_data%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Start%20address%20of%20destination%0A%20%20%20%20p_data_cfg-%3Etransfer_count%20%20%20%20%20%20%20%20%20%3D%20data_len%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Transfer%20count%0A%7D%0A%2F%2A%20End%20of%20function%20r_dtc_set_recv.%20%2A%2F%0A%0A%2F%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%0A%2A%20Outline%20%20%20%20%20%20%3A%20Enable%20DTC%20for%20RSPI%20transmission%0A%2A%20Function%20Name%3A%20r_dtc_set_send%0A%2A%20Description%20%20%3A%20Enables%20DTC%20for%20RSPI%20transmission.%0A%2A%20Arguments%20%20%20%20%3A%20dtc_transfer_data_cfg_t%20%20%20%20%2A%20p_data_cfg%20%20%20%20%20%20%20%20%3B%20Contains%20the%20settings%20for%20Transfer%20data%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20void%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2A%20source_data%20%20%20%20%20%20%20%3B%20Source%20data%20address%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20uint32_t%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20data_len%20%20%20%20%20%20%20%20%20%20%20%20%3B%20Source%20data%20length%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20uint32_t%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2A%20p_reg_buff%20%20%20%20%20%20%20%20%3B%20Pointer%20of%20transmit%20data%20buffer%0A%2A%20Return%20Value%20%3A%20none%0A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2F%0Astatic%20void%20r_dtc_set_send%28dtc_transfer_data_cfg_t%20%20%2Ap_data_cfg%2C%20void%20%2Asource_data%2C%20uint32_t%20data_len%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20uint32_t%20%2Ap_reg_buff%29%0A%7B%0A%20%20%20%20p_data_cfg-%3Etransfer_mode%20%20%20%20%20%20%20%20%20%3D%20DTC_TRANSFER_MODE_NORMAL%3B%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20DTC%20transfer%20mode%0A%20%20%20%20p_data_cfg-%3Edata_size%20%20%20%20%20%20%20%20%20%20%20%20%20%3D%20DTC_DATA_SIZE_LWORD%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20The%20size%20of%20data%0A%20%20%20%20p_data_cfg-%3Esrc_addr_mode%20%20%20%20%20%20%20%20%20%3D%20DTC_SRC_ADDR_INCR%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Address%20mode%20of%20source%0A%20%20%20%20p_data_cfg-%3Echain_transfer_enable%20%3D%20DTC_CHAIN_TRANSFER_DISABLE%3B%20%20%20%20%20%20%20%20%20%2F%2F%20Chain%20transfer%20is%20enabled%20or%20not%0A%20%20%20%20p_data_cfg-%3Echain_transfer_mode%20%20%20%3D%20DTC_CHAIN_TRANSFER_CONTINUOUSLY%3B%20%20%20%20%2F%2F%20How%20chain%20transfer%20is%20performed%0A%20%20%20%20p_data_cfg-%3Eresponse_interrupt%20%20%20%20%3D%20DTC_INTERRUPT_AFTER_ALL_COMPLETE%3B%20%20%20%2F%2F%20How%20response%20interrupt%20is%20raised%0A%20%20%20%20%2F%2A%20The%20side%20being%20repeat%20or%20block%20in%20repeat%20%2F%20block%20transfer%20mode%20%2A%2F%0A%20%20%20%20p_data_cfg-%3Erepeat_block_side%20%20%20%20%20%3D%20DTC_REPEAT_BLOCK_DESTINATION%3B%0A%20%20%20%20p_data_cfg-%3Edest_addr_mode%20%20%20%20%20%20%20%20%3D%20DTC_DES_ADDR_FIXED%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Address%20mode%20of%20destination%0A%20%20%20%20p_data_cfg-%3Esource_addr%20%20%20%20%20%20%20%20%20%20%20%3D%20%28uint32_t%29source_data%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Start%20address%20of%20source%0A%20%20%20%20p_data_cfg-%3Edest_addr%20%20%20%20%20%20%20%20%20%20%20%20%20%3D%20%28uint32_t%29%28%2Ap_reg_buff%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Start%20address%20of%20destination%0A%20%20%20%20p_data_cfg-%3Etransfer_count%20%20%20%20%20%20%20%20%3D%20data_len%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Transfer%20count%0A%7D%0A%2F%2A%20End%20of%20function%20r_dtc_set_send.%20%2A%2F%0A%23endif%0A%0A%0A%2F%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%0A%2A%20Function%20Name%3A%20main%0A%2A%20Description%20%20%3A%20Main%20loop%20for%20slave%20sample%20application.%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20This%20sample%20application%20and%20the%20Master%20sample%20application%20implement%20Master-Slave%20communication%20together.%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20The%20sample%20application%20simulates%20Slave%20receiving%20and%20sending%20data%20in%20Master-Slave%20communication%2C%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20and%20finally%20compares%20whether%20the%20received%20data%20is%20consistent%20with%20expectations.%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20The%20RSPI%20module%20version%20number%20is%20retrieved%20and%20can%20be%20displayed%20on%20the%20Renesas%20Virtual%20Debug%20Console%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20window%20if%20desired.%0A%2A%0A%2A%20Operation%20%20%20%20%3A%201%29%20RSPCKA%2C%20MOSIA%2C%20MISOA%2C%20SSLA0%20of%20the%20Master%20are%20connected%20with%20RSPCKA%2C%20MOSIA%2C%20MISOA%2C%20SSLA0%20of%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20the%20Slave%20respectively.%20RSKRX65N%20is%20the%20Master%20and%20RSKRX231%20is%20the%20Slave%20as%20an%20example%3A%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20RSKRX65N%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20RSKRX231%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20RSPCKA%20%20%20%20%20%20%20%20%20JA3-Pin6%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20J3-Pin15%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20MOSIA%20%20%20%20%20%20%20%20%20%20JA3-Pin7%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20J3-Pin14%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20MISOA%20%20%20%20%20%20%20%20%20%20JA3-Pin8%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20J3-Pin13%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20SSLA0%20%20%20%20%20%20%20%20%20%20JA3-Pin5%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20J3-Pin16%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%202%29%20Build%20and%20download%20this%20sample%20application%20to%20the%20RSK%20board%20using%20the%20e2studio%20debugger.%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%203%29%20Select%20the%20Renesas%20Virtual%20Debug%20Console%20view%20in%20e2studio%20to%20view%20printf%20information.%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%204%29%20Run%20this%20application%20in%20this%20debugger%2C%20and%20then%20run%20the%20Master%20application%20in%20the%20Master%20debugger.%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%205%29%20Observe%20the%20version%20number%20print%20in%20the%20debug%20console%20window.%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%206%29%20Perform%20multiple%20times%20Slave%20Read%20then%20Slave%20Write%20processing.%20First%20output%20how%20many%20times%20this%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20processing%20is%20%28counting%20from%200%29.%20If%20the%20data%20read%20every%20time%20is%20consistent%20with%20expectations%2C%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20it%20will%20output%20%22Success%21%22.%20otherwise%2C%20it%20will%20output%20%22Failed.%22%0A%2A%0A%2A%20Arguments%20%20%20%20%3A%20None%0A%2A%20Return%20Value%20%3A%20None%0A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2F%0Avoid%20main%28void%29%0A%7B%0A%20%20%20%20my_rspi_command.cpha%20%20%20%20%20%20%20%20%20%20%3D%20RSPI_SPCMD_CPHA_SAMPLE_EVEN%3B%0A%20%20%20%20my_rspi_command.cpol%20%20%20%20%20%20%20%20%20%20%3D%20RSPI_SPCMD_CPOL_IDLE_LO%3B%0A%20%20%20%20my_rspi_command.br_div%20%20%20%20%20%20%20%20%3D%20RSPI_SPCMD_BR_DIV_1%3B%0A%20%20%20%20my_rspi_command.ssl_assert%20%20%20%20%3D%20RSPI_SPCMD_ASSERT_SSL0%3B%0A%20%20%20%20my_rspi_command.ssl_negate%20%20%20%20%3D%20RSPI_SPCMD_SSL_KEEP%3B%0A%2F%2F%20%20%20%20my_rspi_command.bit_length%20%20%20%20%3D%20RSPI_SPCMD_BIT_LENGTH_32%3B%0A%20%20%20%20my_rspi_command.bit_length%20%20%20%20%3D%20SPI_DATA_SIZE%3B%0A%20%20%20%20my_rspi_command.bit_order%20%20%20%20%20%3D%20RSPI_SPCMD_ORDER_MSB_FIRST%3B%0A%20%20%20%20my_rspi_command.next_delay%20%20%20%20%3D%20RSPI_SPCMD_NEXT_DLY_SSLND%3B%0A%20%20%20%20my_rspi_command.ssl_neg_delay%20%3D%20RSPI_SPCMD_SSL_NEG_DLY_SSLND%3B%0A%20%20%20%20my_rspi_command.clock_delay%20%20%20%3D%20RSPI_SPCMD_CLK_DLY_SPCKD%3B%0A%20%20%20%20my_rspi_command.dummy%20%20%20%20%20%20%20%20%20%3D%20RSPI_SPCMD_DUMMY%3B%0A%0A%23if%20RSPI_DMAC_TEST%20%3D%3D%20%281%29%0A%20%20%20%20dmaca_transfer_data_cfg_t%20%20%20p_data_cfg_dmac%3B%0A%20%20%20%20dmaca_transfer_data_cfg_t%20%20%20p_data_cfg_dmac_r%3B%0A%20%20%20%20dmaca_return_t%20%20%20%20%20%20%20%20%20%20%20%20%20%20ret_dmaca%3B%0A%20%20%20%20dmaca_stat_t%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20p_stat_dmaca%3B%0A%20%20%20%20dmaca_stat_t%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20p_stat_dmaca_r%3B%0A%20%20%20%20uint32_t%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20reg_buff%3B%0A%20%20%20%20rspi_err_t%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Ret%3B%0A%20%20%20%20my_rspi_handle-%3Echannel%20%3D%20RSPI_CHANNEL%3B%0A%23endif%0A%0A%23if%20RSPI_DTC_TEST%20%3D%3D%20%281%29%0A%20%20%20%20uint32_t%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20chain_transfer_nr%3B%0A%20%20%20%20dtc_activation_source_t%20%20%20%20%20act_source_w%3B%0A%20%20%20%20dtc_transfer_data_cfg_t%20%20%20%20%20p_data_cfg_w%3B%0A%20%20%20%20dtc_cmd_arg_t%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20p_args_w%3B%0A%20%20%20%20dtc_activation_source_t%20%20%20%20%20act_source_r%3B%0A%20%20%20%20dtc_transfer_data_cfg_t%20%20%20%20%20p_data_cfg_r%3B%0A%20%20%20%20dtc_cmd_arg_t%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20p_args_r%3B%0A%20%20%20%20dtc_err_t%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20ret_dtc%3B%0A%20%20%20%20uint32_t%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20reg_buff%3B%0A%20%20%20%20rspi_err_t%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Ret%3B%0A%20%20%20%20my_rspi_handle-%3Echannel%20%3D%20RSPI_CHANNEL%3B%0A%23endif%0A%0A%20%20%20%20%2F%2A%20Get%20module%20software%20version%20using%20the%20API%20function%20provided.%20%2A%2F%0A%20%20%20%20my_version%20%3D%20R_RSPI_GetVersion%28%29%3B%0A%0A%20%20%20%20%2F%2A%20Demonstrate%20parsing%20and%20formatting%20of%20version%20number.%20%2A%2F%0A%20%20%20%20sprintf%28%28char%20%2A%29version_str%2C%20%22RSPI%20v%251.0hu.%252.2hu%5Cr%5Cn%22%2C%20%28%28my_version%20%3E%3E%2016%29%260xf%29%2C%20%28my_version%20%26%200xff%29%29%3B%0A%20%20%20%20printf%28%28char%20%2A%29version_str%29%3B%20%2F%2F%20View%20stdout%20in%20the%20Renesas%20Virtual%20Debug%20Console%20window.%0A%0A%20%20%20%20init_demo_data%28%29%3B%20%2F%2F%20Prepare%20demo%20data%20buffers.%0A%20%20%20%20%2F%2A%20Initialize%20I%2FO%20port%20pins%20for%20use%20with%20the%20RSPI%20peripheral.%0A%20%20%20%20%20%2A%20This%20is%20specific%20to%20the%20MCU%20and%20ports%20chosen.%20%2A%2F%0A%20%20%20%20rspi_rx231_init_ports%28%29%3B%0A%23if%20RSPI_CFG_USE_GPIO_SSL%20%3D%3D%20%281%29%0A%20%20%20%20poll_port%28PORT_HIGH%29%3B%0A%23endif%0A%23if%20RSPI_CFG_USE_GPIO_SSL%20%3D%3D%20%281%29%0A%20%20%20%20poll_port%28PORT_LOW%29%3B%0A%23endif%0A%20%20%20%20%2F%2A%20Configure%20the%20RSPI%20settings%20structure%20%20%2A%2F%0A%20%20%20%20my_rspi_setting.bps_target%20%3D%201000000%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Ask%20for%201Mbps%20bit-rate.%0A%2F%2F%20%20%20%20my_rspi_setting.bps_target%20%3D%20250000%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Ask%20for%201Mbps%20bit-rate.%0A%20%20%20%20my_rspi_setting.master_slave_mode%20%3D%20RSPI_MS_MODE_SLAVE%3B%20%20%2F%2F%20Configure%20the%20RSPI%20as%20SPI%20Master.%0A%23if%20RSPI_CFG_USE_GPIO_SSL%20%3D%3D%20%280%29%0A%20%20%20%20my_rspi_setting.gpio_ssl%20%3D%20RSPI_IF_MODE_4WIRE%3B%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Set%20interface%20mode%20to%204-wire.%0A%23else%0A%20%20%20%20my_rspi_setting.gpio_ssl%20%3D%20RSPI_IF_MODE_3WIRE%3B%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Set%20interface%20mode%20to%203-wire.%0A%23endif%20%2F%2A%20RSPI_CFG_USE_GPIO_SSL%20%3D%3D%20%280%29%20%2A%2F%0A%23if%20RSPI_DMAC_TEST%20%3D%3D%20%281%29%0A%20%20%20%20my_rspi_setting.tran_mode%20%3D%20RSPI_TRANS_MODE_DMAC%3B%0A%23endif%0A%23if%20RSPI_DTC_TEST%20%3D%3D%20%281%29%0A%20%20%20%20my_rspi_setting.tran_mode%20%3D%20RSPI_TRANS_MODE_DTC%3B%0A%23endif%0A%20%20%20%20%2F%2A%20Open%20the%20RSPI%20channel%20using%20the%20API%20function%20%2A%2F%0A%20%20%20%20my_rspi_err%20%3D%20R_RSPI_Open%20%280%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20RSPI%20channel%20number%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26my_rspi_setting%2C%20%20%20%20%2F%2F%20Address%20of%20the%20RSPI%20settings%20structure.%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20my_rspi_command%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26my_rspi_callback%2C%20%20%20%2F%2F%20Address%20of%20user-defined%20callback%20function.%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26my_rspi_handle%29%3B%20%20%20%20%2F%2F%20Address%20of%20where%20the%20handle%20is%20to%20be%20stored%0A%0A%20%20%20%20%2F%2A%20If%20there%20were%20an%20error%20this%20would%20demonstrate%20error%20detection%20of%20API%20calls.%20%2A%2F%0A%20%20%20%20if%20%28RSPI_SUCCESS%20%21%3D%20my_rspi_err%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20tst_trap%28%29%3B%20%2F%2F%20Your%20error%20handling%20code%20would%20go%20here.%0A%20%20%20%20%7D%0A%0A%20%20%20%20%2F%2A%20Demonstrate%20Slave%20read%20then%20Slave%20write%20processing.%20%2A%2F%0A%20%20%20%20while%20%28loop_count%20%3C%20LOOP_COUNT%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20transfer_busy%20%3D%20true%3B%20%20%2F%2F%20Prepare%20a%20flag%20for%20polling%20of%20the%20transfer%20status.%0A%0A%23if%20RSPI_DMAC_TEST%20%3D%3D%20%281%29%0A%20%20%20%20%20%20%20%20%2F%2A%20%3D%3D%3D%20DMAC%20Enable%20%20%3D%3D%3D%20%2A%2F%0A%20%20%20%20%20%20%20%20Ret%20%3D%20R_RSPI_GetBuffRegAddress%28my_rspi_handle%2C%20%26reg_buff%29%3B%0A%20%20%20%20%20%20%20%20if%20%28RSPI_SUCCESS%20%3E%20Ret%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20R_DMACA_Init%28%29%3B%0A%0A%20%20%20%20%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Open%28DMACA_CH0%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DMACA_SUCCESS%20%21%3D%20ret_dmaca%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Open%28DMACA_CH1%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DMACA_SUCCESS%20%21%3D%20ret_dmaca%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Int_Callback%28DMACA_CH0%2C%20DMA_CallBack_W%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DMACA_SUCCESS%20%21%3D%20ret_dmaca%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Int_Callback%28DMACA_CH1%2C%20DMA_CallBack_R%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DMACA_SUCCESS%20%21%3D%20ret_dmaca%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Int_Enable%28DMACA_CH0%2C%2010%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DMACA_SUCCESS%20%21%3D%20ret_dmaca%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Int_Enable%28DMACA_CH1%2C%2010%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DMACA_SUCCESS%20%21%3D%20ret_dmaca%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20r_dmaca_set_send%28%26p_data_cfg_dmac%2C%20%26demo_data_source%2C%20DEMO_DATA_SIZE%2C%20reg_buff%2C%20IR_RSPI0_SPTI0%29%3B%0A%20%20%20%20%20%20%20%20r_dmaca_set_recv%28%26p_data_cfg_dmac_r%2C%20%26demo_data_dest%2C%20DEMO_DATA_SIZE%2C%20reg_buff%2C%20IR_RSPI0_SPRI0%29%3B%0A%0A%20%20%20%20%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Create%28DMACA_CH0%2C%20%28dmaca_transfer_data_cfg_t%20%2A%29%26p_data_cfg_dmac%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DMACA_SUCCESS%20%21%3D%20ret_dmaca%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Create%28DMACA_CH1%2C%20%28dmaca_transfer_data_cfg_t%20%2A%29%26p_data_cfg_dmac_r%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DMACA_SUCCESS%20%21%3D%20ret_dmaca%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Control%28DMACA_CH0%2C%20DMACA_CMD_ENABLE%2C%20%28dmaca_stat_t%2A%29%26p_stat_dmaca%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DMACA_SUCCESS%20%21%3D%20ret_dmaca%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Control%28DMACA_CH1%2C%20DMACA_CMD_ENABLE%2C%20%28dmaca_stat_t%2A%29%26p_stat_dmaca_r%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DMACA_SUCCESS%20%21%3D%20ret_dmaca%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%23endif%0A%0A%23if%20RSPI_DTC_TEST%20%3D%3D%20%281%29%0A%20%20%20%20%20%20%20%20%2F%2A%20%3D%3D%3D%20DTC%20Enable%20%3D%3D%3D%20%2A%2F%0A%20%20%20%20%20%20%20%20Ret%20%3D%20R_RSPI_GetBuffRegAddress%28my_rspi_handle%2C%20%26reg_buff%29%3B%0A%20%20%20%20%20%20%20%20if%20%28RSPI_SUCCESS%20%3E%20Ret%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20ret_dtc%20%3D%20R_DTC_Open%28%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DTC_SUCCESS%20%21%3D%20ret_dtc%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20act_source_w%20%20%20%20%20%20%20%20%20%3D%20DTCE_RSPI0_SPTI0%3B%0A%20%20%20%20%20%20%20%20act_source_r%20%20%20%20%20%20%20%20%20%3D%20DTCE_RSPI0_SPRI0%3B%0A%20%20%20%20%20%20%20%20r_dtc_set_send%28%26p_data_cfg_w%2C%20demo_data_source%2C%20DEMO_DATA_SIZE%2C%20%26reg_buff%29%3B%0A%20%20%20%20%20%20%20%20r_dtc_set_recv%28%26p_data_cfg_r%2C%20demo_data_dest%2CDEMO_DATA_SIZE%2C%20%26reg_buff%29%3B%0A%20%20%20%20%20%20%20%20chain_transfer_nr%20%20%20%3D%200%3B%0A%0A%20%20%20%20%20%20%20%20ret_dtc%20%3D%20R_DTC_Create%28act_source_w%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%28dtc_transfer_data_t%20%2A%29%26transfer_data%5B0%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%28dtc_transfer_data_cfg_t%20%2A%29%26p_data_cfg_w%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20chain_transfer_nr%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DTC_SUCCESS%20%21%3D%20ret_dtc%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20ret_dtc%20%3D%20R_DTC_Create%28act_source_r%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%28dtc_transfer_data_t%20%2A%29%26receive_data%5B0%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%28dtc_transfer_data_cfg_t%20%2A%29%26p_data_cfg_r%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20chain_transfer_nr%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DTC_SUCCESS%20%21%3D%20ret_dtc%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20p_args_w.chain_transfer_nr%20%3D%200%3B%0A%20%20%20%20%20%20%20%20p_args_r.chain_transfer_nr%20%3D%200%3B%0A%20%20%20%20%20%20%20%20p_args_w.act_src%20%20%20%20%20%20%20%20%20%20%20%3D%20DTCE_RSPI0_SPTI0%3B%0A%20%20%20%20%20%20%20%20p_args_r.act_src%20%20%20%20%20%20%20%20%20%20%20%3D%20DTCE_RSPI0_SPRI0%3B%0A%0A%20%20%20%20%20%20%20%20ret_dtc%20%3D%20R_DTC_Control%28DTC_CMD_ACT_SRC_ENABLE%2C%20NULL%2C%20%28void%20%2A%29%26p_args_w%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DTC_SUCCESS%20%21%3D%20ret_dtc%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20ret_dtc%20%3D%20R_DTC_Control%28DTC_CMD_ACT_SRC_ENABLE%2C%20NULL%2C%20%28void%20%2A%29%26p_args_r%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DTC_SUCCESS%20%21%3D%20ret_dtc%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20ret_dtc%20%3D%20R_DTC_Control%28DTC_CMD_DTC_START%2C%20NULL%2C%20NULL%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DTC_SUCCESS%20%21%3D%20ret_dtc%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%23endif%0A%0A%20%20%20%20%20%20%20%20%2F%2A%20Start%20Slave%20receive%20using%20the%20API%20function.%20%2A%2F%0A%20%20%20%20%20%20%20%20my_rspi_err%20%3D%20R_RSPI_Read%28my_rspi_handle%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20my_rspi_command%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20demo_data_dest%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%28DEMO_DATA_SIZE%29%29%3B%0A%0A%20%20%20%20%20%20%20%20if%20%28RSPI_SUCCESS%20%21%3D%20my_rspi_err%29%20%2F%2F%20Check%20for%20successful%20function%20return.%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%20%2F%2F%20Your%20error%20handling%20code%20would%20go%20here.%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2A%20The%20R_RSPI_Read%28%29%20function%20starts%20the%20transfer%20and%20returns%20immediately.%0A%20%20%20%20%20%20%20%20%20%2A%20Your%20callback%20function%20will%20be%20caled%20when%20the%20transfer%20is%20complete.%20We%20are%20using%0A%20%20%20%20%20%20%20%20%20%2A%20the%20callback%20function%20here%20to%20update%20the%20transfer%20status%20flag.%20%2A%2F%0A%20%20%20%20%20%20%20%20while%20%28transfer_busy%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20R_BSP_NOP%28%29%3B%20%2F%2F%20Application%20could%20do%20something%20useful%20here%20while%20waiting%20for%20transfer%20to%20complete.%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2A%20The%20callback%20retrieved%20the%20operation%20event%20result%20code.%20%2A%2F%0A%20%20%20%20%20%20%20%20if%20%28RSPI_EVT_TRANSFER_COMPLETE%20%21%3D%20demo_callback_event%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%20%2F%2F%20Something%20unexpected%20happened.%0A%20%20%20%20%20%20%20%20%7D%0A%0A%23if%20RSPI_DMAC_TEST%20%3D%3D%20%281%29%0A%20%20%20%20%20%20%20%20%2F%2A%20%3D%3D%3D%20DMAC%20Disable%20%3D%3D%3D%20%2A%2F%0A%0A%20%20%20%20%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Control%28DMACA_CH0%2C%20DMACA_CMD_DISABLE%2C%20%28void%20%2A%29%26p_stat_dmaca%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DMACA_SUCCESS%20%21%3D%20ret_dmaca%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Control%28DMACA_CH1%2C%20DMACA_CMD_DISABLE%2C%20%28void%20%2A%29%26p_stat_dmaca_r%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DMACA_SUCCESS%20%21%3D%20ret_dmaca%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Close%28DMACA_CH0%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DMACA_SUCCESS%20%3C%20ret_dmaca%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Close%28DMACA_CH1%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DMACA_SUCCESS%20%3C%20ret_dmaca%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%23endif%0A%0A%23if%20RSPI_DTC_TEST%20%3D%3D%20%281%29%0A%20%20%20%20%20%20%20%20%2F%2A%20%3D%3D%3D%20DTC%20Disable%20%3D%3D%3D%20%2A%2F%0A%20%20%20%20%20%20%20%20p_args_w.act_src%20%20%20%20%20%20%20%20%20%20%20%3D%20DTCE_RSPI0_SPTI0%3B%0A%20%20%20%20%20%20%20%20p_args_r.act_src%20%20%20%20%20%20%20%20%20%20%20%3D%20DTCE_RSPI0_SPRI0%3B%0A%0A%20%20%20%20%20%20%20%20p_args_w.chain_transfer_nr%20%3D%200%3B%0A%20%20%20%20%20%20%20%20ret_dtc%20%3D%20R_DTC_Control%28DTC_CMD_DTC_STOP%2C%20NULL%2C%20NULL%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DTC_SUCCESS%20%21%3D%20ret_dtc%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20ret_dtc%20%3D%20R_DTC_Control%28DTC_CMD_ACT_SRC_DISABLE%2C%20NULL%2C%20%28void%20%2A%29%26p_args_w%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DTC_SUCCESS%20%21%3D%20ret_dtc%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20ret_dtc%20%3D%20R_DTC_Control%28DTC_CMD_ACT_SRC_DISABLE%2C%20NULL%2C%20%28void%20%2A%29%26p_args_r%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DTC_SUCCESS%20%21%3D%20ret_dtc%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20ret_dtc%20%3D%20R_DTC_Close%28%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DTC_SUCCESS%20%21%3D%20ret_dtc%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%23endif%0A%0A%20%20%20%20%20%20%20%20transfer_busy%20%3D%20true%3B%20%20%2F%2F%20Prepare%20a%20flag%20for%20polling%20of%20the%20transfer%20status.%0A%0A%23if%20RSPI_DMAC_TEST%20%3D%3D%20%281%29%0A%20%20%20%20%20%20%20%20%2F%2A%20%3D%3D%3D%20DMAC%20Enable%20%20%3D%3D%3D%20%2A%2F%0A%20%20%20%20%20%20%20%20Ret%20%3D%20R_RSPI_GetBuffRegAddress%28my_rspi_handle%2C%20%26reg_buff%29%3B%0A%20%20%20%20%20%20%20%20if%20%28RSPI_SUCCESS%20%3E%20Ret%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20R_DMACA_Init%28%29%3B%0A%0A%20%20%20%20%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Open%28DMACA_CH0%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DMACA_SUCCESS%20%21%3D%20ret_dmaca%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Open%28DMACA_CH1%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DMACA_SUCCESS%20%21%3D%20ret_dmaca%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Int_Callback%28DMACA_CH0%2C%20DMA_CallBack_W%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DMACA_SUCCESS%20%21%3D%20ret_dmaca%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Int_Callback%28DMACA_CH1%2C%20DMA_CallBack_R%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DMACA_SUCCESS%20%21%3D%20ret_dmaca%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Int_Enable%28DMACA_CH0%2C%2010%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DMACA_SUCCESS%20%21%3D%20ret_dmaca%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Int_Enable%28DMACA_CH1%2C%2010%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DMACA_SUCCESS%20%21%3D%20ret_dmaca%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20r_dmaca_set_send%28%26p_data_cfg_dmac%2C%20%26demo_data_source%2C%20DEMO_DATA_SIZE%2C%20reg_buff%2C%20IR_RSPI0_SPTI0%29%3B%0A%20%20%20%20%20%20%20%20r_dmaca_set_recv%28%26p_data_cfg_dmac_r%2C%20%26demo_data_dest%2C%20DEMO_DATA_SIZE%2C%20reg_buff%2C%20IR_RSPI0_SPRI0%29%3B%0A%0A%20%20%20%20%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Create%28DMACA_CH0%2C%20%28dmaca_transfer_data_cfg_t%20%2A%29%26p_data_cfg_dmac%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DMACA_SUCCESS%20%21%3D%20ret_dmaca%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Create%28DMACA_CH1%2C%20%28dmaca_transfer_data_cfg_t%20%2A%29%26p_data_cfg_dmac_r%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DMACA_SUCCESS%20%21%3D%20ret_dmaca%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Control%28DMACA_CH0%2C%20DMACA_CMD_ENABLE%2C%20%28dmaca_stat_t%2A%29%26p_stat_dmaca%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DMACA_SUCCESS%20%21%3D%20ret_dmaca%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Control%28DMACA_CH1%2C%20DMACA_CMD_ENABLE%2C%20%28dmaca_stat_t%2A%29%26p_stat_dmaca_r%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DMACA_SUCCESS%20%21%3D%20ret_dmaca%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%23endif%0A%0A%23if%20RSPI_DTC_TEST%20%3D%3D%20%281%29%0A%20%20%20%20%20%20%20%20%2F%2A%20%3D%3D%3D%20DTC%20Enable%20%3D%3D%3D%20%2A%2F%0A%20%20%20%20%20%20%20%20Ret%20%3D%20R_RSPI_GetBuffRegAddress%28my_rspi_handle%2C%20%26reg_buff%29%3B%0A%20%20%20%20%20%20%20%20if%20%28RSPI_SUCCESS%20%3E%20Ret%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20ret_dtc%20%3D%20R_DTC_Open%28%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DTC_SUCCESS%20%21%3D%20ret_dtc%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20act_source_w%20%20%20%20%20%20%20%20%20%3D%20DTCE_RSPI0_SPTI0%3B%0A%20%20%20%20%20%20%20%20act_source_r%20%20%20%20%20%20%20%20%20%3D%20DTCE_RSPI0_SPRI0%3B%0A%20%20%20%20%20%20%20%20r_dtc_set_send%28%26p_data_cfg_w%2C%20demo_data_source%2C%20DEMO_DATA_SIZE%2C%20%26reg_buff%29%3B%0A%20%20%20%20%20%20%20%20r_dtc_set_recv%28%26p_data_cfg_r%2C%20demo_data_dest%2CDEMO_DATA_SIZE%2C%20%26reg_buff%29%3B%0A%20%20%20%20%20%20%20%20chain_transfer_nr%20%20%20%3D%200%3B%0A%0A%20%20%20%20%20%20%20%20ret_dtc%20%3D%20R_DTC_Create%28act_source_w%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%28dtc_transfer_data_t%20%2A%29%26transfer_data%5B0%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%28dtc_transfer_data_cfg_t%20%2A%29%26p_data_cfg_w%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20chain_transfer_nr%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DTC_SUCCESS%20%21%3D%20ret_dtc%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20ret_dtc%20%3D%20R_DTC_Create%28act_source_r%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%28dtc_transfer_data_t%20%2A%29%26receive_data%5B0%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%28dtc_transfer_data_cfg_t%20%2A%29%26p_data_cfg_r%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20chain_transfer_nr%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DTC_SUCCESS%20%21%3D%20ret_dtc%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20p_args_w.chain_transfer_nr%20%3D%200%3B%0A%20%20%20%20%20%20%20%20p_args_r.chain_transfer_nr%20%3D%200%3B%0A%20%20%20%20%20%20%20%20p_args_w.act_src%20%20%20%20%20%20%20%20%20%20%20%3D%20DTCE_RSPI0_SPTI0%3B%0A%20%20%20%20%20%20%20%20p_args_r.act_src%20%20%20%20%20%20%20%20%20%20%20%3D%20DTCE_RSPI0_SPRI0%3B%0A%0A%20%20%20%20%20%20%20%20ret_dtc%20%3D%20R_DTC_Control%28DTC_CMD_ACT_SRC_ENABLE%2C%20NULL%2C%20%28void%20%2A%29%26p_args_w%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DTC_SUCCESS%20%21%3D%20ret_dtc%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20ret_dtc%20%3D%20R_DTC_Control%28DTC_CMD_ACT_SRC_ENABLE%2C%20NULL%2C%20%28void%20%2A%29%26p_args_r%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DTC_SUCCESS%20%21%3D%20ret_dtc%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20ret_dtc%20%3D%20R_DTC_Control%28DTC_CMD_DTC_START%2C%20NULL%2C%20NULL%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DTC_SUCCESS%20%21%3D%20ret_dtc%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%23endif%0A%0A%20%20%20%20%20%20%20%20%2F%2A%20Start%20Slave%20transmit%20using%20the%20API%20function.%20%2A%2F%0A%20%20%20%20%20%20%20%20my_rspi_err%20%3D%20R_RSPI_Write%28my_rspi_handle%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20my_rspi_command%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20demo_data_dest%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%28DEMO_DATA_SIZE%29%29%3B%0A%0A%20%20%20%20%20%20%20%20if%20%28RSPI_SUCCESS%20%21%3D%20my_rspi_err%29%20%2F%2F%20Check%20for%20successful%20function%20return.%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%20%2F%2F%20Your%20error%20handling%20code%20would%20go%20here.%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2A%20The%20R_RSPI_Write%28%29%20function%20starts%20the%20transfer%20and%20returns%20immediately.%0A%20%20%20%20%20%20%20%20%20%2A%20Your%20callback%20function%20will%20be%20caled%20when%20the%20transfer%20is%20complete.%20We%20are%20using%0A%20%20%20%20%20%20%20%20%20%2A%20the%20callback%20function%20here%20to%20update%20the%20transfer%20status%20flag.%20%2A%2F%0A%20%20%20%20%20%20%20%20while%20%28transfer_busy%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20R_BSP_NOP%28%29%3B%20%2F%2F%20Application%20could%20do%20something%20useful%20here%20while%20waiting%20for%20transfer%20to%20complete.%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2A%20The%20callback%20retrieved%20the%20operation%20event%20result%20code.%20%2A%2F%0A%20%20%20%20%20%20%20%20if%20%28RSPI_EVT_TRANSFER_COMPLETE%20%21%3D%20demo_callback_event%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%20%2F%2F%20Something%20unexpected%20happened.%0A%20%20%20%20%20%20%20%20%7D%0A%0A%23if%20RSPI_DMAC_TEST%20%3D%3D%20%281%29%0A%20%20%20%20%20%20%20%20%2F%2A%20%3D%3D%3D%20DMAC%20Disable%20%3D%3D%3D%20%2A%2F%0A%20%20%20%20%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Control%28DMACA_CH0%2C%20DMACA_CMD_DISABLE%2C%20%28void%20%2A%29%26p_stat_dmaca%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DMACA_SUCCESS%20%21%3D%20ret_dmaca%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Control%28DMACA_CH1%2C%20DMACA_CMD_DISABLE%2C%20%28void%20%2A%29%26p_stat_dmaca_r%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DMACA_SUCCESS%20%21%3D%20ret_dmaca%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Close%28DMACA_CH0%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DMACA_SUCCESS%20%3C%20ret_dmaca%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20ret_dmaca%20%3D%20R_DMACA_Close%28DMACA_CH1%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DMACA_SUCCESS%20%3C%20ret_dmaca%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%23endif%0A%0A%23if%20RSPI_DTC_TEST%20%3D%3D%20%281%29%0A%20%20%20%20%20%20%20%20%2F%2A%20%3D%3D%3D%20DTC%20Disable%20%3D%3D%3D%20%2A%2F%0A%20%20%20%20%20%20%20%20p_args_w.act_src%20%20%20%20%20%20%20%20%20%20%20%3D%20DTCE_RSPI0_SPTI0%3B%0A%20%20%20%20%20%20%20%20p_args_r.act_src%20%20%20%20%20%20%20%20%20%20%20%3D%20DTCE_RSPI0_SPRI0%3B%0A%0A%20%20%20%20%20%20%20%20p_args_w.chain_transfer_nr%20%3D%200%3B%0A%20%20%20%20%20%20%20%20ret_dtc%20%3D%20R_DTC_Control%28DTC_CMD_DTC_STOP%2C%20NULL%2C%20NULL%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DTC_SUCCESS%20%21%3D%20ret_dtc%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20ret_dtc%20%3D%20R_DTC_Control%28DTC_CMD_ACT_SRC_DISABLE%2C%20NULL%2C%20%28void%20%2A%29%26p_args_w%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DTC_SUCCESS%20%21%3D%20ret_dtc%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20ret_dtc%20%3D%20R_DTC_Control%28DTC_CMD_ACT_SRC_DISABLE%2C%20NULL%2C%20%28void%20%2A%29%26p_args_r%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DTC_SUCCESS%20%21%3D%20ret_dtc%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20ret_dtc%20%3D%20R_DTC_Close%28%29%3B%0A%20%20%20%20%20%20%20%20if%20%28DTC_SUCCESS%20%21%3D%20ret_dtc%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20tst_trap%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%23endif%0A%0A%20%20%20%20%20%20%20%20printf%28%22loop_count%20%3D%20%25d%3A%20%22%2C%20loop_count%29%3B%0A%20%20%20%20%20%20%20%20%2F%2A%20Check%20that%20contents%20of%20read%20destination%20buffer%20match%20the%20transmit%20buffer.%20%2A%2F%0A%20%20%20%20%20%20%20%20if%20%28false%20%21%3D%20verify_data%28demo_data_source%2C%20demo_data_dest%2C%20DEMO_DATA_SIZE%29%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20printf%28%22Success%21%5Cn%22%29%3B%20%2F%2F%20View%20stdout%20in%20the%20Renesas%20Virtual%20Debug%20Console%20window.%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20printf%28%22Failed.%5Cn%22%29%3B%20%2F%2F%20View%20stdout%20in%20the%20Renesas%20Virtual%20Debug%20Console%20window.%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20loop_count%2B%2B%3B%0A%20%20%20%20%20%20%20%20init_demo_data%28%29%3B%20%2F%2F%20Initialize%20demo%20data%20buffers.%0A%20%20%20%20%7D%0A%20%20%20%20%2F%2A%20Done%20using%20the%20RSPI.%20We%20can%20shut%20it%20down%20now%20if%20desired%20to%20save%20power.%20%2A%2F%0A%20%20%20%20R_RSPI_Close%28my_rspi_handle%29%3B%0A%0A%23if%20RSPI_CFG_USE_GPIO_SSL%20%3D%3D%20%281%29%0A%20%20%20%20poll_port%28PORT_HIGH%29%3B%0A%23endif%0A%20%20%20%20%2F%2A%20Demo%20complete.%20Stay%20here.%20%2A%2F%0A%20%20%20%20while%281%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2A%20Do%20Nothing%2A%2F%0A%20%20%20%20%7D%0A%0A%7D%0A%2F%2A%20End%20of%20function%20main.%20%2A%2F%0A%0A%2F%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%0A%2A%20Function%20Name%3A%20rspi_rx231_init_ports%0A%2A%20Description%20%20%3A%20This%20function%20initializes%20the%20port%20pins%20associated%20with%20RSPI%20channel%200%20for%20the%20RSKRX231%20using%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20the%20macros%20defined%20in%20iodefine.h.%0A%2A%20Arguments%20%20%20%20%3A%20None%0A%2A%20Return%20Value%20%3A%20None%0A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2F%0Astatic%20void%20rspi_rx231_init_ports%28void%29%0A%7B%0A%20%20%20%20%2F%2A%20Make%20the%20RSPI%20peripheral%20signal%20assignment%20selections%20in%20the%20MPC%20registers.%20%2A%2F%0A%20%20%20%20%2F%2A%20Set%20RSPI%20signal%20ports%20to%20peripheral%20mode.%20%2A%2F%0A%20%20%20%20R_RSPI_PinSet_RSPI0%28%29%3B%0A%0A%23if%20RSPI_CFG_USE_GPIO_SSL%20%3D%3D%20%281%29%20%2F%2F%20SPI%203-wire%20mode.%0A%20%20%20%20%2F%2A%20Using%20GPIO%20to%20control%20the%20slave%20select%20signal%20%28Synchronous%203-wire%20mode%29.%20%2A%2F%0A%20%20%20%20PORTA.PDR.BIT.B4%20%20%3D%200%3B%20%2F%2F%20Set%20as%20output.%0A%20%20%20%20PORTA.PMR.BIT.B4%20%20%3D%200%3B%20%2F%2F%20Set%20as%20GPIO.%0A%23endif%0A%0A%20%20%20%20return%3B%0A%7D%0A%2F%2A%20End%20of%20function%20rspi_rx231_init_ports.%20%2A%2F%0A%0A%0A%2F%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%0A%2A%20Function%20Name%20%3A%20verify_data%0A%2A%20Description%20%20%20%3A%20Compares%20contents%20of%20destination%20buffer%20against%20source%20buffer.%0A%2A%20Arguments%20%20%20%20%20%3A%20p_data_source%20-%20pointer%20to%20transmitted%20data%20buffer.%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20p_data_dest%20%20%20-%20pointer%20to%20received%20data%20buffer.%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20length%20%20%20%20%20%20%20%20-%20Number%20of%20bytes%20to%20check.%0A%2A%20Return%20value%20%20%3A%20true%20%20-%20data%20is%20verified%0A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20false%20-%20data%20mismatch.%0A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2F%0Astatic%20bool%20verify_data%28SPI_DATA_TYPE%20%2A%20p_data_source%2C%20SPI_DATA_TYPE%20%2A%20p_data_dest%2C%20uint16_t%20length%29%0A%7B%0A%20%20%20%20uint16_t%20i%3B%0A%0A%20%20%20%20for%20%28i%20%3D%200%3B%20i%20%3C%20length%3B%20i%2B%2B%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%28p_data_source%5Bi%5D%20%21%3D%20p_data_dest%5Bi%5D%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20true%3B%0A%7D%0A%2F%2A%20End%20of%20function%20verify_data.%20%2A%2F%0A%0A%2F%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%0A%2A%20Function%20Name%20%3A%20init_demo_data%0A%2A%20Description%20%20%20%3A%20Put%20some%20varying%20data%20in%20source%20buffer%20to%20be%20transmitted%20and%20clear%20the%20destination%20buffer.%0A%2A%20Arguments%20%20%20%20%20%3A%20None%0A%2A%20Return%20value%20%20%3A%20None%0A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2F%0Astatic%20void%20init_demo_data%28void%29%0A%7B%0A%09SPI_DATA_TYPE%20i%3B%0A%20%20%20%20for%20%28i%20%3D%200%3B%20i%20%3C%20DEMO_DATA_SIZE%3B%20i%2B%2B%29%0A%20%20%20%20%7B%0A%20%20%20%20%09%2F%2F%20todo%20jc%3A%20test%20woth%200xaa%20with%20the%20buspirate%20%5B0xaa%3A256%5D%0A%20%20%20%20%20%20%20%20demo_data_source%5Bi%5D%20%3D%20%28SPI_DATA_TYPE%29%28i%29%3B%20%20%2F%2F%20Provide%20some%20sample%20data%20for%20transmission.%0A%2F%2F%20%20%20%20%20%20%20%20demo_data_source%5Bi%5D%20%3D%20%28uint8_t%29%280xaa%29%3B%20%20%2F%2F%20Provide%20some%20sample%20data%20for%20transmission.%0A%20%20%20%20%20%20%20%20demo_data_dest%5Bi%5D%20%3D%200%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Clear%20the%20receive%20data%20buffer.%0A%20%20%20%20%7D%0A%7D%0A%2F%2A%20End%20of%20function%20init_demo_data.%20%2A%2F%0A%0A%2F%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%0A%2A%20Function%20Name%3A%20my_rspi_callback%0A%2A%20Description%20%20%3A%20This%20is%20an%20example%20of%20an%20RSPI%20callback%20function.%0A%2A%20Arguments%20%20%20%20%3A%20p_data%20-%20pointer%20to%20RSPI%20event%20code%20data.%0A%2A%20Return%20Value%20%3A%20None%0A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2F%0Astatic%20void%20my_rspi_callback%28void%20%2Ap_data%29%0A%7B%0A%20%20%20%20demo_callback_event%20%3D%20%28%2A%28rspi_callback_data_t%20%2A%29p_data%29.event_code%3B%0A%20%20%20%20transfer_busy%20%3D%20false%3B%0A%7D%0A%2F%2A%20End%20of%20function%20my_rspi_callback.%20%2A%2F%0A%0A%2F%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%0A%2A%20Function%20Name%3A%20poll_port%0A%2A%20Description%20%20%3A%20This%20function%20is%20used%20to%20wait%20for%20the%20input%20level%20to%20be%20equal%20to%20the%20expected%20value.%0A%2A%20Arguments%20%20%20%20%3A%20level%20-%20Expected%20level%20value.%0A%2A%20Return%20Value%20%3A%20None%0A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%2F%0A%23if%20RSPI_CFG_USE_GPIO_SSL%20%3D%3D%20%281%29%0Avoid%20poll_port%28uint8_t%20level%29%0A%7B%0A%20%20%20%20if%20%28PORT_LOW%20%3D%3D%20level%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%28RSPI_CFG_SS_GPIO_PIDR%29%3B%20%20%2F%2F%20wait%20H-%3EL%0A%20%20%20%20%7D%0A%20%20%20%20else%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%28%21RSPI_CFG_SS_GPIO_PIDR%29%3B%20%2F%2F%20wait%20L-%3EH%0A%20%20%20%20%7D%0A%7D%0A%2F%2A%20End%20of%20function%20poll_port.%20%2A%2F%0A%23endif%0A]&lt;/p&gt;
&lt;p&gt;PI Pico source&lt;/p&gt;
&lt;p&gt;[embed:dc8ab71f-3b98-42d9-b0f6-e21e02a0f8e2:6db54f84-c8e9-4cdd-b607-9c2ce629c23d:type=c_cpp&amp;text=%2F%2A%2A%0D%0A%20%2A%20Copyright%20%28c%29%202020%20Raspberry%20Pi%20%28Trading%29%20Ltd.%0D%0A%20%2A%0D%0A%20%2A%20SPDX-License-Identifier%3A%20BSD-3-Clause%0D%0A%20%2A%2F%0D%0A%0D%0A%2F%2F%20Example%20of%20writing%20via%20DMA%20to%20the%20SPI%20interface%20and%20similarly%20reading%20it%20back%20via%20a%20loopback.%0D%0A%0D%0A%23include%20%3Cstdio.h%3E%0D%0A%23include%20%3Cstdlib.h%3E%0D%0A%23include%20%22pico%2Fstdlib.h%22%0D%0A%23include%20%22pico%2Fbinary_info.h%22%0D%0A%23include%20%22hardware%2Fspi.h%22%0D%0A%23include%20%22hardware%2Fdma.h%22%0D%0A%0D%0A%2F%2F%20%23define%20TEST_SIZE%201024%0D%0A%23define%20TEST_SIZE%2032%0D%0A%0D%0Aint%20main%28%29%20%7B%0D%0A%20%20%20%20%2F%2F%20Enable%20UART%20so%20we%20can%20print%20status%20output%0D%0A%20%20%20%20stdio_init_all%28%29%3B%0D%0A%23if%20%21defined%28spi_default%29%20%7C%7C%20%21defined%28PICO_DEFAULT_SPI_SCK_PIN%29%20%7C%7C%20%21defined%28PICO_DEFAULT_SPI_TX_PIN%29%20%7C%7C%20%21defined%28PICO_DEFAULT_SPI_RX_PIN%29%20%7C%7C%20%21defined%28PICO_DEFAULT_SPI_CSN_PIN%29%0D%0A%23warning%20spi%2Fspi_dma%20example%20requires%20a%20board%20with%20SPI%20pins%0D%0A%20%20%20%20puts%28%22Default%20SPI%20pins%20were%20not%20defined%22%29%3B%0D%0A%23else%0D%0A%0D%0A%20%20%20%20printf%28%22SPI%20DMA%20example%5Cn%22%29%3B%0D%0A%0D%0A%20%20%20%20%2F%2F%20Enable%20SPI%20at%201%20MHz%20and%20connect%20to%20GPIOs%0D%0A%20%20%20%20spi_init%28spi_default%2C%201000%20%2A%201000%29%3B%0D%0A%20%20%20%20gpio_set_function%28PICO_DEFAULT_SPI_RX_PIN%2C%20GPIO_FUNC_SPI%29%3B%0D%0A%20%20%20%20gpio_init%28PICO_DEFAULT_SPI_CSN_PIN%29%3B%0D%0A%20%20%20%20gpio_set_function%28PICO_DEFAULT_SPI_SCK_PIN%2C%20GPIO_FUNC_SPI%29%3B%0D%0A%20%20%20%20gpio_set_function%28PICO_DEFAULT_SPI_TX_PIN%2C%20GPIO_FUNC_SPI%29%3B%0D%0A%20%20%20%20%2F%2F%20Make%20the%20SPI%20pins%20available%20to%20picotool%0D%0A%20%20%20%20bi_decl%28bi_3pins_with_func%28PICO_DEFAULT_SPI_RX_PIN%2C%20PICO_DEFAULT_SPI_TX_PIN%2C%20PICO_DEFAULT_SPI_SCK_PIN%2C%20GPIO_FUNC_SPI%29%29%3B%0D%0A%20%20%20%20%2F%2F%20Make%20the%20CS%20pin%20available%20to%20picotool%0D%0A%20%20%20%20bi_decl%28bi_1pin_with_name%28PICO_DEFAULT_SPI_CSN_PIN%2C%20%22SPI%20CS%22%29%29%3B%0D%0A%0D%0A%20%20%20%20%2F%2F%20Grab%20some%20unused%20dma%20channels%0D%0A%20%20%20%20const%20uint%20dma_tx%20%3D%20dma_claim_unused_channel%28true%29%3B%0D%0A%20%20%20%20const%20uint%20dma_rx%20%3D%20dma_claim_unused_channel%28true%29%3B%0D%0A%0D%0A%20%20%20%20%2F%2F%20Force%20loopback%20for%20testing%20%28I%20don%27t%20have%20an%20SPI%20device%20handy%29%0D%0A%2F%2F%20%20%20%20hw_set_bits%28%26spi_get_hw%28spi_default%29-%3Ecr1%2C%20SPI_SSPCR1_LBM_BITS%29%3B%0D%0A%0D%0A%20%20%20%20static%20uint8_t%20txbuf%5BTEST_SIZE%5D%3B%0D%0A%20%20%20%20static%20uint8_t%20rxbuf%5BTEST_SIZE%5D%3B%0D%0A%20%20%20%20for%20%28uint%20i%20%3D%200%3B%20i%20%3C%20TEST_SIZE%3B%20%2B%2Bi%29%20%7B%0D%0A%2F%2F%20%20%20%20%20%20%20%20txbuf%5Bi%5D%20%3D%20rand%28%29%3B%0D%0A%20%20%20%20%20%20%20%20txbuf%5Bi%5D%20%3D%20i%3B%0D%0A%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20%2F%2F%20We%20set%20the%20outbound%20DMA%20to%20transfer%20from%20a%20memory%20buffer%20to%20the%20SPI%20transmit%20FIFO%20paced%20by%20the%20SPI%20TX%20FIFO%20DREQ%0D%0A%20%20%20%20%2F%2F%20The%20default%20is%20for%20the%20read%20address%20to%20increment%20every%20element%20%28in%20this%20case%201%20byte%20%3D%20DMA_SIZE_8%29%0D%0A%20%20%20%20%2F%2F%20and%20for%20the%20write%20address%20to%20remain%20unchanged.%0D%0A%0D%0A%20%20%20%20printf%28%22Configure%20TX%20DMA%5Cn%22%29%3B%0D%0A%20%20%20%20dma_channel_config%20c%20%3D%20dma_channel_get_default_config%28dma_tx%29%3B%0D%0A%20%20%20%20channel_config_set_transfer_data_size%28%26c%2C%20DMA_SIZE_8%29%3B%0D%0A%20%20%20%20channel_config_set_dreq%28%26c%2C%20spi_get_dreq%28spi_default%2C%20true%29%29%3B%0D%0A%20%20%20%20dma_channel_configure%28dma_tx%2C%20%26c%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26spi_get_hw%28spi_default%29-%3Edr%2C%20%2F%2F%20write%20address%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20txbuf%2C%20%2F%2F%20read%20address%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20TEST_SIZE%2C%20%2F%2F%20element%20count%20%28each%20element%20is%20of%20size%20transfer_data_size%29%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20false%29%3B%20%2F%2F%20don%27t%20start%20yet%0D%0A%0D%0A%20%20%20%20printf%28%22Configure%20RX%20DMA%5Cn%22%29%3B%0D%0A%0D%0A%20%20%20%20%2F%2F%20We%20set%20the%20inbound%20DMA%20to%20transfer%20from%20the%20SPI%20receive%20FIFO%20to%20a%20memory%20buffer%20paced%20by%20the%20SPI%20RX%20FIFO%20DREQ%0D%0A%20%20%20%20%2F%2F%20We%20configure%20the%20read%20address%20to%20remain%20unchanged%20for%20each%20element%2C%20but%20the%20write%0D%0A%20%20%20%20%2F%2F%20address%20to%20increment%20%28so%20data%20is%20written%20throughout%20the%20buffer%29%0D%0A%20%20%20%20c%20%3D%20dma_channel_get_default_config%28dma_rx%29%3B%0D%0A%20%20%20%20channel_config_set_transfer_data_size%28%26c%2C%20DMA_SIZE_8%29%3B%0D%0A%20%20%20%20channel_config_set_dreq%28%26c%2C%20spi_get_dreq%28spi_default%2C%20false%29%29%3B%0D%0A%20%20%20%20channel_config_set_read_increment%28%26c%2C%20false%29%3B%0D%0A%20%20%20%20channel_config_set_write_increment%28%26c%2C%20true%29%3B%0D%0A%20%20%20%20dma_channel_configure%28dma_rx%2C%20%26c%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20rxbuf%2C%20%2F%2F%20write%20address%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26spi_get_hw%28spi_default%29-%3Edr%2C%20%2F%2F%20read%20address%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20TEST_SIZE%2C%20%2F%2F%20element%20count%20%28each%20element%20is%20of%20size%20transfer_data_size%29%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20false%29%3B%20%2F%2F%20don%27t%20start%20yet%0D%0A%0D%0A%0D%0A%20%20%20%20printf%28%22Starting%20DMAs...%5Cn%22%29%3B%0D%0A%20%20%20%20%2F%2F%20start%20them%20exactly%20simultaneously%20to%20avoid%20races%20%28in%20extreme%20cases%20the%20FIFO%20could%20overflow%29%0D%0A%20%20%20%20dma_start_channel_mask%28%281u%20%3C%3C%20dma_tx%29%20%7C%20%281u%20%3C%3C%20dma_rx%29%29%3B%0D%0A%20%20%20%20printf%28%22Wait%20for%20RX%20complete...%5Cn%22%29%3B%0D%0A%20%20%20%20dma_channel_wait_for_finish_blocking%28dma_rx%29%3B%0D%0A%20%20%20%20if%20%28dma_channel_is_busy%28dma_tx%29%29%20%7B%0D%0A%20%20%20%20%20%20%20%20panic%28%22RX%20completed%20before%20TX%22%29%3B%0D%0A%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20printf%28%22Done.%20Checking...%22%29%3B%0D%0A%20%20%20%20for%20%28uint%20i%20%3D%200%3B%20i%20%3C%20TEST_SIZE%3B%20%2B%2Bi%29%20%7B%0D%0A%20%20%20%20%20%20%20%20if%20%28rxbuf%5Bi%5D%20%21%3D%20txbuf%5Bi%5D%29%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20panic%28%22Mismatch%20at%20%25d%2F%25d%3A%20expected%20%2502x%2C%20got%20%2502x%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20i%2C%20TEST_SIZE%2C%20txbuf%5Bi%5D%2C%20rxbuf%5Bi%5D%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%29%3B%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20printf%28%22All%20good%5Cn%22%29%3B%0D%0A%20%20%20%20dma_channel_unclaim%28dma_tx%29%3B%0D%0A%20%20%20%20dma_channel_unclaim%28dma_rx%29%3B%0D%0A%20%20%20%20return%200%3B%0D%0A%23endif%0D%0A%7D%0D%0A]&lt;/p&gt;
&lt;img src="https://community.element14.com/aggbug?PostID=27798&amp;AppID=7&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Renesas Solution Starter Kit for RX23E-A - break out the SPI signals</title><link>https://community.element14.com/technologies/embedded/b/blog/posts/renesas-solution-starter-kit-for-rx23e-a---break-out-the-spi-signals</link><pubDate>Tue, 09 Apr 2024 19:20:37 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:247ae4c7-dd0b-4632-9a85-d6285941320d</guid><dc:creator>Jan Cumps</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;&lt;span&gt;Warning to me 2:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;SPI behaviour with Rensas toolchain and GCC is different.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;For the same set of test data, generated under identical conditions by a Bus Pirate,&lt;br /&gt;&lt;/span&gt;&lt;span&gt;the Renesas version hops happily along, while the GCC version returns a buffer underflow after a few 256 bytes exchanges....&lt;/span&gt;&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=27798&amp;AppID=7&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Renesas Solution Starter Kit for RX23E-A - break out the SPI signals</title><link>https://community.element14.com/technologies/embedded/b/blog/posts/renesas-solution-starter-kit-for-rx23e-a---break-out-the-spi-signals</link><pubDate>Mon, 08 Apr 2024 16:49:12 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:247ae4c7-dd0b-4632-9a85-d6285941320d</guid><dc:creator>Jan Cumps</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Warning to me:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;if you use the RX as slave, and the SPI master is a different device powered from a different source&lt;/li&gt;
&lt;li&gt;and both devices are on&lt;/li&gt;
&lt;li&gt;and then you power down the RX,&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;it says powered on via the CS, as long as that pin is being being pulled high by the master.&lt;/p&gt;
&lt;p&gt;Proper power sequencing seems to be needed.&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=27798&amp;AppID=7&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Renesas Solution Starter Kit for RX23E-A - break out the SPI signals</title><link>https://community.element14.com/technologies/embedded/b/blog/posts/renesas-solution-starter-kit-for-rx23e-a---break-out-the-spi-signals</link><pubDate>Sat, 06 Apr 2024 19:40:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:247ae4c7-dd0b-4632-9a85-d6285941320d</guid><dc:creator>Jan Cumps</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;raw SPI works.&lt;/p&gt;
&lt;p&gt;I haven&amp;#39;t been successful with the two optimised options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;option DMA: the device knows when all data has been received, &lt;span style="text-decoration:line-through;"&gt;but the buffer doesn&amp;#39;t contain the date&lt;/span&gt;. It doesn&amp;#39;t break at the expected number of bytes. To investigate&lt;/li&gt;
&lt;li&gt;option DTC: looks like it&amp;#39;s not reacting on any activity on the SPI bus (yet)&lt;/li&gt;
&lt;/ul&gt;&lt;img src="https://community.element14.com/aggbug?PostID=27798&amp;AppID=7&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Renesas Solution Starter Kit for RX23E-A - break out the SPI signals</title><link>https://community.element14.com/technologies/embedded/b/blog/posts/renesas-solution-starter-kit-for-rx23e-a---break-out-the-spi-signals</link><pubDate>Sat, 06 Apr 2024 19:18:27 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:247ae4c7-dd0b-4632-9a85-d6285941320d</guid><dc:creator>Jan Cumps</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;for my own reference&lt;/p&gt;
&lt;p&gt;&lt;img height="210" src="/resized-image/__size/1000x420/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-247ae4c7-dd0b-4632-9a85-d6285941320d/pastedimage1712431101282v1.png" width="500" alt=" " /&gt;&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=27798&amp;AppID=7&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Renesas Solution Starter Kit for RX23E-A - break out the SPI signals</title><link>https://community.element14.com/technologies/embedded/b/blog/posts/renesas-solution-starter-kit-for-rx23e-a---break-out-the-spi-signals</link><pubDate>Sun, 31 Mar 2024 12:14:56 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:247ae4c7-dd0b-4632-9a85-d6285941320d</guid><dc:creator>Jan Cumps</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;It doesn&amp;#39;t want to work yet. I&amp;#39;ve set up a bus pirate to send data out, and my protocol analyser indicates that it&amp;#39;s correct&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " height="109" src="/resized-image/__size/498x218/__key/communityserver-components-multipleuploadfilemanager/c979ed53_2D00_057c_2D00_442b_2D00_87a9_2D00_d2372e271aa8-17018-complete/pastedimage1711793133892v2.png" width="249" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " height="310" src="/resized-image/__size/998x620/__key/communityserver-components-multipleuploadfilemanager/c979ed53_2D00_057c_2D00_442b_2D00_87a9_2D00_d2372e271aa8-17018-complete/pastedimage1711793089019v1.png" width="499" /&gt;&lt;/p&gt;
&lt;p&gt;(I had posted this 2 days ago but forget to submit :) )&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=27798&amp;AppID=7&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Renesas Solution Starter Kit for RX23E-A - break out the SPI signals</title><link>https://community.element14.com/technologies/embedded/b/blog/posts/renesas-solution-starter-kit-for-rx23e-a---break-out-the-spi-signals</link><pubDate>Wed, 27 Mar 2024 19:20:31 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:247ae4c7-dd0b-4632-9a85-d6285941320d</guid><dc:creator>Jan Cumps</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I ported a SPI client example to the RX23E-A kit, and connected it up with a Pico. Next step is to program the Pico with some SPI master code and see if data is exchanged ....&lt;/p&gt;
&lt;p&gt;&lt;img height="312" src="/resized-image/__size/1000x624/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-247ae4c7-dd0b-4632-9a85-d6285941320d/20240327_5F00_201416.jpg" width="500" alt=" " /&gt;&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=27798&amp;AppID=7&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item></channel></rss>