<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://ez.analog.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/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Q&amp;amp;A - Recent Threads</title><link>https://ez.analog.com/dsp/sharc-processors/adsp-sc5xxadsp-215xx/f/q-a</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><lastBuildDate>Sun, 15 Mar 2026 19:21:56 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://ez.analog.com/dsp/sharc-processors/adsp-sc5xxadsp-215xx/f/q-a" /><item><title>Getting processed DMA buffer in SPORT group callback</title><link>https://ez.analog.com/thread/603399?ContentTypeID=0</link><pubDate>Sun, 15 Mar 2026 19:21:56 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:019bc1c8-2487-4ab6-88de-f49e2c0e5d2b</guid><dc:creator>Vetrivel</dc:creator><slash:comments>4</slash:comments><comments>https://ez.analog.com/thread/603399?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-sc5xxadsp-215xx/f/q-a/603399/getting-processed-dma-buffer-in-sport-group-callback/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi Team,&lt;/p&gt;
&lt;p&gt;This about how to get the processed SPORT DMA data buffer in group configuration.&lt;/p&gt;
&lt;p&gt;The API&amp;nbsp;adi_sport_GlobalRegisterCallback(), takes the callback function of type&amp;nbsp;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; (*&lt;/span&gt;&lt;span&gt;ADI_CALLBACK&lt;/span&gt;&lt;span&gt;)(&lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt;pCBParam&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;uint32_t&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Event&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt;pArg&lt;/span&gt;&lt;span&gt;), where pArg points to the group handle. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;In case of single SPORT config the call back function registered&amp;nbsp;&lt;/span&gt;adi_sport_RegisterCallback() returns the processed buffer in pArg which is convinient. I understand it is not possible to pass the processed buffer in the group case as mutiple SPORTs are involved.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;In our case, we have configured the multiple SPORT DMA with two DMA descriptors&lt;/p&gt;
&lt;p&gt;ping ---&amp;gt; 0th index&lt;/p&gt;
&lt;p&gt;pong ----&amp;gt; 1st index&lt;/p&gt;
&lt;p&gt;in a circular configuration and grouped them together.&lt;/p&gt;
&lt;p&gt;In the group callback, currently we are getting the completed buffer address from the&amp;nbsp;SPORT_DMA_DSCPTR_PRV register of the specific SPORT, with the understanding that it points to the previous descriptor which is already processed by DMA&lt;/p&gt;
&lt;p&gt;But the issue is sometimes during the very first interrupt,&amp;nbsp;&lt;span&gt;SPORT_DMA_DSCPTR_PRV&amp;nbsp;points to pong buffer instead of ping.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;1. Could you please explain the reason for such behaviour?&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;2. What is the recommeded way to get the processed buffer in the group callback case? Should we use a ping / pong flag to determine the buffer?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;3. The internal struct in SPORT driver&amp;nbsp;&lt;/span&gt;ADI_SPORT_GBL_GROUP has a member &amp;#39;nBufferIndex&amp;#39; which could be&amp;nbsp;helpful&amp;nbsp;to determine the buffer. Is this exposed to user in any of the interface?&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;pre class="ui-code" data-mode="c_cpp"&gt;typedef volatile struct
{
  ADI_SPORT_HANDLE         *pDeviceArray;
  uint8_t             NoofDevices;
  bool                      bUsed;
  bool            bGblTrigEnable;
    ADI_CALLBACK              pfCallback;
    void                     *pCBParam;
    bool            bGroupInProgress;
    uint8_t           nBufferIndex;
    bool            bCircularBuff;
} ADI_SPORT_GBL_GROUP;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks in advace.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Vetrivel.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Does the SC587 support the adi_pkte.h and adi_pka.h drivers?</title><link>https://ez.analog.com/thread/602944?ContentTypeID=0</link><pubDate>Fri, 13 Mar 2026 13:47:08 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:a4729b7f-67f7-4c49-9057-077c204943f2</guid><dc:creator>pwss</dc:creator><slash:comments>8</slash:comments><comments>https://ez.analog.com/thread/602944?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-sc5xxadsp-215xx/f/q-a/602944/does-the-sc587-support-the-adi_pkte-h-and-adi_pka-h-drivers/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Does the SC587 support the adi_pkte.h and adi_pka.h drivers?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>PKTE engine registers are readonly</title><link>https://ez.analog.com/thread/603152?ContentTypeID=0</link><pubDate>Wed, 04 Mar 2026 08:52:47 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:5f88ef4e-e749-46ea-a0ec-c9f2c600d929</guid><dc:creator>BernhardM</dc:creator><slash:comments>2</slash:comments><comments>https://ez.analog.com/thread/603152?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-sc5xxadsp-215xx/f/q-a/603152/pkte-engine-registers-are-readonly/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;when using the PKTE Engine, writing the&amp;nbsp;pREG_PKTE0_CDSC_CNT register, the failure &amp;quot;expression must be a modifiable lvalue&amp;quot; occures.&lt;/p&gt;
&lt;p&gt;In&amp;nbsp;ADSP_2156x_HPC_cdef.h the register is defined as const.&lt;/p&gt;
&lt;p&gt;#define pREG_PKTE0_CDSC_CNT&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ((__I __C&amp;nbsp; uint32_t&amp;nbsp; *) REG_PKTE0_CDSC_CNT)&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /*&amp;nbsp; Packet Engine Command Descriptor Count Register */&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Same for the following registers:&lt;/p&gt;
&lt;p&gt;#define pREG_PKTE0_INBUF_CNT&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;((__I __C&amp;nbsp; uint32_t&amp;nbsp; *) REG_PKTE0_INBUF_CNT)&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/*&amp;nbsp; Packet Engine Input Buffer Count Register */&lt;/p&gt;
&lt;p&gt;#define pREG_PKTE0_OUTBUF_CNT&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ((__I __C&amp;nbsp; uint32_t&amp;nbsp; *) REG_PKTE0_OUTBUF_CNT)&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /*&amp;nbsp; Packet Engine Output Buffer Count Register */&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Project is a c-project. (no cpp)&lt;/p&gt;
&lt;p&gt;Regards&lt;/p&gt;
&lt;p&gt;Bernhard&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>ADSP-SC572 TMU reading stuck at 127°C on custom board</title><link>https://ez.analog.com/thread/602047?ContentTypeID=0</link><pubDate>Mon, 12 Jan 2026 18:00:20 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:1b348a8c-1078-486b-8540-2b2b4a2bf265</guid><dc:creator>lukar</dc:creator><slash:comments>5</slash:comments><comments>https://ez.analog.com/thread/602047?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-sc5xxadsp-215xx/f/q-a/602047/adsp-sc572-tmu-reading-stuck-at-127-c-on-custom-board/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p data-path-to-node="3,1"&gt;Hello everyone,&lt;/p&gt;
&lt;p data-path-to-node="3,2"&gt;We are trying to read the die temperature using the &lt;b data-path-to-node="3,2" data-index-in-node="52"&gt;TMU&lt;/b&gt; on a custom board based on the &lt;b data-path-to-node="3,2" data-index-in-node="87"&gt;ADSP-SC572&lt;/b&gt;. Our hardware design for the HADC/TMU block should be identical to the &lt;b data-path-to-node="3,2" data-index-in-node="162"&gt;ADSP-SC573 EZ-KIT&lt;/b&gt;.&lt;br /&gt;&lt;span data-teams="true"&gt;&lt;br /&gt;The main differences between the two boards are that in the number of cores and we have one clock source only on SYSCLKIN0, while the EZKIT has on both clock inputs.&lt;/span&gt;&lt;/p&gt;
&lt;p data-path-to-node="3,3"&gt;To test the functionality, we are using the CCES example project &lt;b data-path-to-node="3,3" data-index-in-node="65"&gt;&amp;quot;ReadTemperature_SC573_Cortex&amp;quot; (built for SC572 too)&lt;/b&gt;.&lt;/p&gt;
&lt;ul data-path-to-node="3,4"&gt;
&lt;li&gt;
&lt;p data-path-to-node="3,4,0,0"&gt;On the &lt;b data-path-to-node="3,4,0,0" data-index-in-node="7"&gt;EZ-KIT&lt;/b&gt;, the code works as expected, returning a stable value around &lt;b data-path-to-node="3,4,0,0" data-index-in-node="75"&gt;37&amp;deg;C&lt;/b&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-path-to-node="3,4,1,0"&gt;On our &lt;b data-path-to-node="3,4,1,0" data-index-in-node="7"&gt;custom SC572 board&lt;/b&gt;, the same code consistently returns exactly &lt;b data-path-to-node="3,4,1,0" data-index-in-node="70"&gt;127&amp;deg;C&lt;/b&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-path-to-node="3,5"&gt;Does anyone have any suggestions as to why the TMU keeps reading 127 on the custom board? Could this be related to a specific HADC initialization or a hardware difference we might have overlooked?&lt;/p&gt;
&lt;p data-path-to-node="3,6"&gt;I can provide schematics if needed.&lt;br /&gt;&lt;br /&gt;Thanks in advance for your help!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>UART DMA IDLE Detection</title><link>https://ez.analog.com/thread/601614?ContentTypeID=0</link><pubDate>Fri, 19 Dec 2025 11:10:28 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:1a09cd12-cbd9-4dfe-80d6-88ec510527fd</guid><dc:creator>EricSa</dc:creator><slash:comments>3</slash:comments><comments>https://ez.analog.com/thread/601614?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-sc5xxadsp-215xx/f/q-a/601614/uart-dma-idle-detection/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hey together,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I have a question regarding the UART RX on the ADSP-21569. I managed to build a continous DMA receiver by using 2 descriptors pointing circular to each other, thats perfect. The size of the buffers are 32 byte. So this means I always get an callback when i received 32 bytes via UART. But what happens when I only receive 31 bytes for whatever reason. I will not get any callback and the data stays in the buffer forever. Is there a way to detect, for example after 100ms, that there is data in the buffer and to read it out?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;On some know MCUs this is done via the UART IDLE detection. Meaning when there is silence for more that 1 byte on the bus the UART IDLE interrupt is triggered and the data can be flushed from the DMA. I cant find any information about the IDLE interrupt but maybe there is a way to do it via polling, every 100ms or so.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Eric&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>detailed documentation for adi_rom_otp_get() function</title><link>https://ez.analog.com/thread/600928?ContentTypeID=0</link><pubDate>Fri, 14 Nov 2025 21:01:40 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:0a9aa499-26f6-4288-bf16-c6e0f9a064ee</guid><dc:creator>dbray</dc:creator><slash:comments>3</slash:comments><comments>https://ez.analog.com/thread/600928?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-sc5xxadsp-215xx/f/q-a/600928/detailed-documentation-for-adi_rom_otp_get-function/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hello Forum,&lt;/p&gt;
&lt;p&gt;With regard to the adi_rom_otp_get() function, would there be any information available to address any of the following questions?&lt;/p&gt;
&lt;p&gt;1. The function returns &amp;#39;false&amp;#39; for an unsuccesful read. Under what circumstances is &amp;#39;false&amp;#39; returned? for example, when OTP is corrupted?&lt;/p&gt;
&lt;p&gt;2. in the case that &amp;#39;false&amp;#39; _is_ returned, are there any guidelines to show how application code should handle this case? e.g. retry? reboot?&lt;/p&gt;
&lt;p&gt;3. what headers should be #included when compiling?&lt;/p&gt;
&lt;p&gt;4. are there any reference code examples?&lt;/p&gt;
&lt;p&gt;In my case, i am developing for the ADSP-594W. There is documentation in the ADSP-SC594W datasheet for adi_rom_otp_get(), but it does not quite cover the topics above.&lt;/p&gt;
&lt;p&gt;Thank you&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Combining "initcode" within SSL (Secure Boot Stream)</title><link>https://ez.analog.com/thread/599941?ContentTypeID=0</link><pubDate>Thu, 09 Oct 2025 15:04:08 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:b59590e3-c47f-4fe6-a327-0851d970e7d2</guid><dc:creator>3lions</dc:creator><slash:comments>3</slash:comments><comments>https://ez.analog.com/thread/599941?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-sc5xxadsp-215xx/f/q-a/599941/combining-initcode-within-ssl-secure-boot-stream/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Our software implementation currently consists of an SSL/bootloader and &amp;quot;main&amp;quot; application.&amp;nbsp;We wish to use a Secure Boot Stream to secure both the application&amp;nbsp;&lt;em&gt;&lt;span style="text-decoration:underline;"&gt;and&lt;/span&gt;&amp;nbsp;&lt;/em&gt;the SSL.&lt;/p&gt;
&lt;p&gt;Our SSL .ldr file includes the initcode that&amp;#39;s used to initialize DDR3, clocks etc. However, when using a Secure Boot Stream the bootrom fails to load the SSL because it includes the initcode block (this behavior is documented in EE-366).&lt;/p&gt;
&lt;p&gt;Therefore, I believe we have to:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Run the SSL has to run in onboard L2 memory (since the L3/DDR is not yet initialized)&lt;/li&gt;
&lt;li&gt;Import the &amp;quot;initcode&amp;quot; routines into the SSL, and execute them at startup.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I&amp;#39;ve implemented the above, using a custom linker script derived from the project provided &lt;a href="https://ez.analog.com/dsp/sharc-processors/f/q-a/121194/boot-code-on-a-adsp-sc573-ez-without-init-block"&gt;here&lt;/a&gt;, however the main application doesn&amp;#39;t boot.&lt;/p&gt;
&lt;p&gt;I think the problem is that, since we&amp;#39;re executing in L2 memory (the SSL is large, ~200K) this conflicts overlaps with the L2 memory that&amp;#39;s reserved for the primary application.&lt;/p&gt;
&lt;p&gt;Please can you confirm that aby&amp;nbsp;L2 memory used by the SSL cannot be &amp;quot;reused&amp;quot; by the main application? If so, then do you have any other suggestions for how we can perform the &amp;quot;init&amp;quot; functionality within a Secure Boot Stream SSL?&lt;/p&gt;
&lt;p&gt;Many thanks in advance.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>How to get a frame sync interrupt?</title><link>https://ez.analog.com/thread/599361?ContentTypeID=0</link><pubDate>Tue, 16 Sep 2025 21:18:42 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:14025136-c955-46da-995e-1b0dec8c02aa</guid><dc:creator>pderocco</dc:creator><slash:comments>3</slash:comments><comments>https://ez.analog.com/thread/599361?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-sc5xxadsp-215xx/f/q-a/599361/how-to-get-a-frame-sync-interrupt/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I have several SPORTs which are sharing a common bit clock and frame sync. I need to do I/O at the sample rate in an interrupt handler. Given that I have three input streams and two output streams, and it takes two interrupts per stereo sample, that&amp;#39;s 10 interrupts per sample. Given the staggering interrupt overhead on a SHARC, even at 16KHz, that takes pretty much all the CPU time. So my idea is to use a single interrupt triggered by the frame sync&amp;nbsp;via the DAI, in which I do two reads from each Rx register and two writes to each Tx register. I can use the ADI library to configure the SPORTs, and I&amp;#39;m writing registers directly to route the clocks and audio, but I&amp;#39;m having trouble configuring the interrupt. I don&amp;#39;t see a DAI service or driver in the library for this part, so what do I need to do to get an interrupt on a particular edge of the common frame sync? Are there lower-level functions that I can use?&lt;/p&gt;
&lt;p&gt;What I&amp;#39;ve&amp;nbsp;tried so far is to write registers to route one of the SPORT&amp;#39;s frame sync to the DAI misc interrupt 0, to assign that to the high-priority DAI interrupt to the SEC, and use adi_int_InstallHandler() to register my handler to interrupt 40, which is the high-priority DAI interrupt on this part. The SEC0_SCTL40 register shows CTG, SEN, and IEN equal to 1, but the SEC0_SSTAT40 register is zero. The DAI0 registers look reasonable except that the DAI0_IRPT_H register is always EEEEEEEE, which smells like it might be unreadable.&amp;nbsp;No interrupts are happening, so I must be missing something. I&amp;#39;d rather do this through library calls instead of poking registers.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>EMAC descriptor or buffer data flush.</title><link>https://ez.analog.com/thread/598088?ContentTypeID=0</link><pubDate>Fri, 01 Aug 2025 09:11:46 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:67ddf612-9d8d-418c-845c-0d8a62602d6d</guid><dc:creator>Mothilal</dc:creator><slash:comments>5</slash:comments><comments>https://ez.analog.com/thread/598088?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-sc5xxadsp-215xx/f/q-a/598088/emac-descriptor-or-buffer-data-flush/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;H sir/Madam,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I am using SC594 SOM module with&amp;nbsp;&lt;span&gt;EV-SOMCRR-EZKIT board, trying to implement to read and write operation with&amp;nbsp;EMACPhyLoopback.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;after reading old data i want to flush descriptor and buffer data ( emac_data_tx.data or&amp;nbsp;&amp;nbsp;emac_data_rx &amp;amp;&amp;nbsp;emac_desc_rx[desc_cnt].Buffer1,&amp;nbsp;emac_desc_tx[desc_cnt].Buffer1).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;can you please let me know how to reset the buffers and descriptor.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Regards&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Mothilal.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>I want to know how to deal with crashes that occur in C language and assembler.</title><link>https://ez.analog.com/thread/598042?ContentTypeID=0</link><pubDate>Thu, 31 Jul 2025 04:53:50 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:84ba5a41-1085-4560-9d3a-d4721a525507</guid><dc:creator>mako2771</dc:creator><slash:comments>21</slash:comments><comments>https://ez.analog.com/thread/598042?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-sc5xxadsp-215xx/f/q-a/598042/i-want-to-know-how-to-deal-with-crashes-that-occur-in-c-language-and-assembler/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi.&lt;/p&gt;
&lt;p&gt;I am writing control in C language and filter calculations in assembler for high-speed calculations. &lt;br /&gt;The input consists of two different sampling signals. &lt;br /&gt;Signal acquisition uses DMA interrupts, and calculations use software interrupts. Additionally, I read and write to QSPI memory while outputting signals.&lt;br /&gt;Switching soft interrupts or accessing memory causes a few lines of assembly code to break and crash the system. Alternatively, crashes occur due to issues with return address or jump address.&lt;br /&gt;I understand that I should not use i6/i7/m7, etc., within assembly code, but&lt;br /&gt;&amp;nbsp; &amp;nbsp; 1: What other registers besides MODE1/ASTATX/CMMR0 should be saved within assembly code?&lt;br /&gt;　2: I think there are registers that should be saved during interrupts. Which registers specifically?&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; How should this be written in C language? How should MODE1 be written?&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; The CMMR SYSCTL can be written as follows:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ESC_SYSCTL=*pREG_CMMR0_SYSCTL;&lt;/p&gt;
&lt;p&gt;Thanks, Regards,&lt;/p&gt;
&lt;p&gt;YAMAMOTO&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>GPI interrupt on both edges, PINT and related.</title><link>https://ez.analog.com/thread/597547?ContentTypeID=0</link><pubDate>Tue, 15 Jul 2025 15:41:51 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:6a3a26bf-e80b-4130-bd8e-3005b2431843</guid><dc:creator>SpoonMan999</dc:creator><slash:comments>1</slash:comments><comments>https://ez.analog.com/thread/597547?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-sc5xxadsp-215xx/f/q-a/597547/gpi-interrupt-on-both-edges-pint-and-related/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hello, I&amp;#39;m really, really confused about how GPIO pins, PINT and SEC are intended to be used in combination to generate user-defined interrupts&amp;nbsp;for&amp;nbsp;different events (level, edges), ports and pins.&lt;/p&gt;
&lt;p&gt;The first headache came when I tried to understand the mapping of the ports/pins on the PINTs:&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:516px;max-width:331px;" alt=" " height="516" src="https://ez.analog.com/resized-image/__size/662x1032/__key/communityserver-discussions-components-files/398/5734.pastedimage1752589835243v1.png" width="331" /&gt;&lt;/p&gt;
&lt;p&gt;As far as I can understand from the above diagram:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PINT0 can generate interrupts for pins on PORT A and B, PINT1 can generate interrupts for pins on PORT B and C, while PINT2 can only generate interrupts for pins on PORT C.&lt;/li&gt;
&lt;li&gt;Individually for each pin configured in each PINT, we can decide to which port the pin belongs to (e.g. for PINT0 we can configure if a pin belongs to port A or port B) and to which event we would like to be sensitive to (i.e. high level, low level, rising edge or falling edge).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The second headache came later when&amp;nbsp;trying to enable an interrupt on both rising and falling edges on the same pin using the same PINT,&amp;nbsp;which I solved in a completely fortuitous way by searching for help on Google and finding this link:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://ez.analog.com/dsp/software-and-development-tools/cces/w/documents/16857/single-interrupt-block-for-both-rising-and-falling-edges-in-adsp-21569"&gt;Single interrupt block for both rising and falling edges in ADSP-21569 - Documents - CrossCore Embedded Studio and Add-ins - EngineerZone&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;in which PC07 and PC23 (????) are successfully used to setup rising-edge and falling-edge interrupts, respectively, using PINT1 on the same physical pin PC07, calling&amp;nbsp;adi_gpio_RegisterCallback() two times for setting up the same callback on both events.... and the following points remained to be clarified:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;each PINT (0, 1, 2) can generate one IRQ (and only one) for each pin mapped, so even if &lt;em&gt;ADI_GPIO_RESULT adi_gpio_RegisterCallback(ADI_GPIO_PIN_INTERRUPT const ePinInt,&lt;/em&gt;&lt;br /&gt;&lt;em&gt; uint32_t const Pins, ADI_GPIO_CALLBACK const pfCallback, void * const pCBParam) &lt;/em&gt;function&amp;nbsp;gives the impression that we can install a different callback on different pins belonging to the same PINT, this is just a &amp;quot;software illusion&amp;quot; and we never need to install more than 3 callbacks (one per each PINT block) to handle&amp;nbsp;all the interrupts in this world.... am I right?&lt;/li&gt;
&lt;li&gt;since physical GPIO pins on all ports are numbered from 0 to 15, what are the pins numbered from 16 to 31 appearing in adi_gpio.h (see screenshot below)? Looks like they&amp;#39;re the equivalent of pins 0-15 but left-shifted by 16 bits for the sole purpose of&amp;nbsp;addressing upper BYTE2 and BYTE3 part&amp;nbsp;of&amp;nbsp;registers like REG_PINT0_INV_CLR when passing &amp;quot;pins&amp;quot; parameter to functions like &lt;em&gt;adi_gpio_PinInt()&lt;/em&gt;? If so, why does everything have to be so complicated and counterintuitive?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img style="max-height:264px;max-width:636px;" alt=" " height="264" src="https://ez.analog.com/resized-image/__size/1272x528/__key/communityserver-discussions-components-files/398/7635.pastedimage1752591110461v2.png" width="636" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>How to transfer clock and data from DAI0 to DAI1?</title><link>https://ez.analog.com/thread/596639?ContentTypeID=0</link><pubDate>Fri, 13 Jun 2025 07:49:42 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:ba7f6f7e-75ff-4c9c-81ab-3596799737a9</guid><dc:creator>Boschliu</dc:creator><slash:comments>6</slash:comments><comments>https://ez.analog.com/thread/596639?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-sc5xxadsp-215xx/f/q-a/596639/how-to-transfer-clock-and-data-from-dai0-to-dai1/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi ,&lt;br /&gt;As shown in the figure below, the TDM port on the SOC side has 6 PINs connected to DAI0. DAI0 receives clock and data, which are then transmitted to DAI1 through ADSP. DAI1 is connected to the 6 PINs of the A2B chip;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;We expect to be able to transfer the clock and data from TDM to A2B, but from the actual SRU operation, it is not possible to transfer DAI0 to DAI1 because DAI0 can only provide to SPORT0~3, and DAI1 can only provide to SPORT4~7,&lt;br /&gt;1. How to transfer clock and data from DAI0 to DAI1?&lt;br /&gt;2. I tried using the following plan, but I have three questions&lt;br /&gt;a. Is this data transmission mode reasonable??&lt;br /&gt;b. Isn&amp;#39;t the clock synchronization between DAI0 and DAI1 in this way??&lt;br /&gt;c. Transferring sport0 to sport4: Transferring through adi_Sport_SMATransfer???&lt;/p&gt;
&lt;p&gt;/*TDM to A2B*/&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SRU(DAI0_PB01_O, SPT0_ACLK_I); /*DAI0 clock to SPORT 0A*/&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SRU(DAI0_PB02_O, SPT0_AFS_I);&amp;nbsp; /*DAI0 FS to SPORT 0A*/&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SRU(DAI0_PB05_O, SPT0_AD0_I);&amp;nbsp; /*DAI0 Data to SPORT 0A*/&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //SRU(DAI0_PB06_O, SPT0_AD0_I);&amp;nbsp; /*DAI0 Data to SPORT 0A*/&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SRU2(SPT4_ACLK_O, DAI1_PB01_I); /*SPORT 4A clock to DAI1*/&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SRU2(SPT4_AFS_O, DAI1_PB02_I);&amp;nbsp; /*SPORT 4A FS to DAI1*/&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SRU2(SPT4_AD0_O, DAI1_PB05_I);&amp;nbsp; /*DAI0 Data to SPORT 0A*/&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SRU(LOW, DAI0_PBEN01_I);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SRU(LOW, DAI0_PBEN02_I);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SRU(LOW, DAI0_PBEN05_I);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SRU2(HIGH, DAI1_PBEN01_I);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SRU2(HIGH, DAI1_PBEN02_I);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SRU2(HIGH, DAI1_PBEN05_I);&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;3. Refer to the CRS method in the manual to implement DAI0 to DAI1. There are some questions about these interfaces:&lt;br /&gt;a. Only pins PB03~PB06 correspond to each other?&lt;br /&gt;b. Our hardware PIN angle has been designed according to the schematic above. Can we continue to use this solution?&lt;/p&gt;
&lt;p&gt;Shared Clock:&lt;/p&gt;
&lt;p&gt;DAI0_CRS_PB03_O &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;egrave;&amp;nbsp;&amp;nbsp; DAI1_CRS_PB03_O&lt;/p&gt;
&lt;p&gt;DAI0_CRS_PB05_O&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;egrave;&amp;nbsp;&amp;nbsp; DAI1_CRS_PB05_O&lt;/p&gt;
&lt;p&gt;&lt;br /&gt; Frame Sync:&lt;/p&gt;
&lt;p&gt;DAI0_CRS_PB04_O&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;egrave;&amp;nbsp;&amp;nbsp; DAI1_CRS_PB04_O&lt;/p&gt;
&lt;p&gt;DAI0_CRS_PB06_O&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;egrave; &amp;nbsp;&amp;nbsp;DAI1_CRS_PB06_O&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Shared Pin Buffer:&lt;/p&gt;
&lt;p&gt;DAI0_CRS_PIN03&amp;nbsp; &amp;agrave; &amp;nbsp;DAI1_CRS_PIN03&lt;/p&gt;
&lt;p&gt;DAI0_CRS_PIN05 &amp;nbsp;&amp;agrave; &amp;nbsp;DAI1_CRS_PIN05&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;DAI0_CRS_PIN04&amp;nbsp; &amp;agrave; &amp;nbsp;DAI1_CRS_PIN04&lt;/p&gt;
&lt;p&gt;DAI0_CRS_PIN06&amp;nbsp; &amp;agrave; &amp;nbsp;DAI1_CRS_PIN06&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;Thanks&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>What is the procedure for restarting the three cores of SC587 in the application context?</title><link>https://ez.analog.com/thread/596030?ContentTypeID=0</link><pubDate>Fri, 23 May 2025 03:44:27 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:d40aeae0-a2fe-456d-a59d-0eb7945021a8</guid><dc:creator>pwss</dc:creator><slash:comments>4</slash:comments><comments>https://ez.analog.com/thread/596030?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-sc5xxadsp-215xx/f/q-a/596030/what-is-the-procedure-for-restarting-the-three-cores-of-sc587-in-the-application-context/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;&lt;span&gt;What is the procedure for restarting the three cores of SC587 in the application context?&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Issue with SHARC Core1 Not Starting After Flash Programming ADSP-SC589-MINI</title><link>https://ez.analog.com/thread/595565?ContentTypeID=0</link><pubDate>Fri, 09 May 2025 12:31:09 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:b16dfba2-0ab3-4695-83c7-2831ca947d2e</guid><dc:creator>avfp</dc:creator><slash:comments>6</slash:comments><comments>https://ez.analog.com/thread/595565?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-sc5xxadsp-215xx/f/q-a/595565/issue-with-sharc-core1-not-starting-after-flash-programming-adsp-sc589-mini/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p class="" data-start="271" data-end="283"&gt;Hi everyone!&lt;/p&gt;
&lt;p class="" data-start="285" data-end="322"&gt;I created a multi-core project where:&lt;/p&gt;
&lt;ul data-start="324" data-end="391"&gt;
&lt;li class="" data-start="324" data-end="355"&gt;
&lt;p class="" data-start="326" data-end="355"&gt;&lt;strong data-start="326" data-end="341"&gt;Core0 (ARM)&lt;/strong&gt; blinks LED12.&lt;/p&gt;
&lt;/li&gt;
&lt;li class="" data-start="356" data-end="391"&gt;
&lt;p class="" data-start="358" data-end="391"&gt;&lt;strong data-start="358" data-end="375"&gt;Core1 (SHARC)&lt;/strong&gt; turns on LED10.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="" data-start="393" data-end="555"&gt;I followed this guide from Analog Devices to load the program into flash:&lt;br data-start="466" data-end="469" /&gt;&amp;nbsp;&lt;span class="emoticon" data-url="https://ez.analog.com/cfs-file/__key/system/emoji/1f517.svg" title="Link"&gt;&amp;#x1f517;&lt;/span&gt;&amp;nbsp;&lt;a class="" href="https://wiki.analog.com/resources/tools-software/crosscore/cces/getting-started/app" target="_new" data-start="472" data-end="555"&gt;https://wiki.analog.com/resources/tools-software/crosscore/cces/getting-started/app&lt;/a&gt;&lt;/p&gt;
&lt;p class="" data-start="557" data-end="725"&gt;After flashing and restarting the board, only the ARM core is running as expected (LED12 is blinking). However, the LED10 controlled by the SHARC core does not turn on.&lt;/p&gt;
&lt;p class="" data-start="727" data-end="783"&gt;My question is about how the &lt;strong data-start="756" data-end="782"&gt;SHARC cores initialize&lt;/strong&gt;:&lt;/p&gt;
&lt;ul data-start="785" data-end="1031"&gt;
&lt;li class="" data-start="785" data-end="838"&gt;
&lt;p class="" data-start="787" data-end="838"&gt;Do SHARC cores have some kind of startup/init code?&lt;/p&gt;
&lt;/li&gt;
&lt;li class="" data-start="839" data-end="932"&gt;
&lt;p class="" data-start="841" data-end="932"&gt;How do they know &lt;strong data-start="858" data-end="898"&gt;where to find their program in flash&lt;/strong&gt; and &lt;strong data-start="903" data-end="931"&gt;how to load it into SRAM&lt;/strong&gt;?&lt;/p&gt;
&lt;/li&gt;
&lt;li class="" data-start="933" data-end="1031"&gt;
&lt;p class="" data-start="935" data-end="1031"&gt;Is there a specific setting I need to configure so that Core1 starts correctly along with Core0?&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="" data-start="1033" data-end="1123"&gt;I&amp;#39;ve attached my project for reference. Any help or guidance would be greatly appreciated!&lt;/p&gt;
&lt;p&gt;&lt;strong data-start="1130" data-end="1147"&gt;Best regards,&lt;/strong&gt;&lt;br data-start="1147" data-end="1150" /&gt; Thanks in advance for any support!&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>BLp_Secure_Boot_Stream.ldr generated using signtool-type BLp</title><link>https://ez.analog.com/thread/595210?ContentTypeID=0</link><pubDate>Sun, 27 Apr 2025 08:14:21 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:144e67a9-6505-4f10-9cb7-b7661be2ec3a</guid><dc:creator>pwss</dc:creator><slash:comments>3</slash:comments><comments>https://ez.analog.com/thread/595210?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-sc5xxadsp-215xx/f/q-a/595210/blp_secure_boot_stream-ldr-generated-using-signtool-type-blp/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;What is the content format of the BLp_Secure_Boot_Stream.ldr binary signature file generated using &amp;ldquo;signtool -type BLp&amp;rdquo;?&lt;/p&gt;
&lt;p&gt;I want to perform the signature verification operation of the BLp_Secure_Boot_Stream.ldr file in the application program, but I don&amp;#39;t know how to calculate its HASH value?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>PKTE: Is it possible to calculate an HMAC across multiple iterations?</title><link>https://ez.analog.com/thread/594643?ContentTypeID=0</link><pubDate>Wed, 09 Apr 2025 21:07:53 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:9c20a720-41cc-4c64-b468-1b75f9d7fe1d</guid><dc:creator>3lions</dc:creator><slash:comments>1</slash:comments><comments>https://ez.analog.com/thread/594643?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-sc5xxadsp-215xx/f/q-a/594643/pkte-is-it-possible-to-calculate-an-hmac-across-multiple-iterations/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Following up from my question here:&amp;nbsp;&amp;nbsp;&lt;a href="https://ez.analog.com/dsp/sharc-processors/adsp-sc5xxadsp-215xx/f/q-a/593864/pkte-decryption-examples"&gt;PKTE decryption examples&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The PKTE peripheral is capable of calculating hash across a large set of data by iterating over the input multiple times (which allows the processing of input data that exceeds the TOTLEN limit of 1MB). Similarly, it is able to perform a&amp;nbsp;combined&amp;nbsp;SHA hash/decrypt operation&amp;nbsp;over multiple iterations.&lt;/p&gt;
&lt;p&gt;HMAC is a lot trickier. Although I&amp;#39;m able to use the PKTE to calculate the HMAC on a single iteration (small data object), I have been unable to do the same across multiple iterations with chunks of input data. I&amp;#39;m looking for guidance on whether the PKTE is able to do this, and if so, what steps I&amp;#39;m missing.&lt;/p&gt;
&lt;p&gt;As posted in my previous question, below is the Blackfin&amp;nbsp;diagram (ee-368.pdf) that allowed me to calculate the HMAC.&amp;nbsp;Basically, the outer and inner pad values are calculated as a &amp;quot;pre-process&amp;quot;, and stored in the SA record which is then used for&amp;nbsp;a single &amp;quot;final&amp;quot; hash calculation.&lt;br /&gt;&lt;br /&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://ez.analog.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/398/pastedimage1744219758812v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;But how do we iterate over this? I have experimented with repeatedly issue the last step, saving the &amp;quot;hash_final&amp;quot; for last, but the computed value is incorrect. I&amp;#39;m not sure if it&amp;#39;s possible, and if it is, what the inputs should be for the intermediate steps.&lt;br /&gt;&lt;br /&gt;The document also shows a more convoluted process (method 2, below), but&amp;nbsp;it&amp;#39;s very unclear how this could be implemented, and there is no example code for this method:&lt;br /&gt;&lt;br /&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://ez.analog.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/398/pastedimage1744232539310v1.png" alt=" " /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Please can you offer some guidance on this? The&amp;nbsp;HWRM is severely lacking in details on HMAC operation.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>PKTE decryption examples</title><link>https://ez.analog.com/thread/593864?ContentTypeID=0</link><pubDate>Thu, 20 Mar 2025 19:01:05 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:6e075462-a2b2-47bc-be77-8a99de67552a</guid><dc:creator>3lions</dc:creator><slash:comments>8</slash:comments><comments>https://ez.analog.com/thread/593864?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-sc5xxadsp-215xx/f/q-a/593864/pkte-decryption-examples/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi there,&lt;/p&gt;
&lt;p&gt;I&amp;#39;m attempting to use the PTKE module to decrypt a file. I was able to port the following example code from the SC8xx to SC573 and get it&amp;nbsp;&lt;em&gt;somewhat&lt;/em&gt; working:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="https://ez.analog.com/dsp/sharc-processors/adsp-sc5xxadsp-215xx/w/documents/14839/adsp-sc58x-2158x-pkte-hashing-decryption---example-code"&gt;ADSP-SC58x/2158x PKTE Hashing-Decryption  - Example code&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The challenge is that the example only deals with a&amp;nbsp;single block (16 bytes) of data. When I&amp;nbsp;attempt to decrypt a larger data object, only the first sixteen bytes are decrypted correctly. This applies to the Host, TCM and Autonomous modes, and I&amp;nbsp;&lt;em&gt;suspect&lt;/em&gt; it relates to the Initialization Vector, but it&amp;#39;s difficult to know for sure.&lt;/p&gt;
&lt;p&gt;The example code isn&amp;#39;t very clear (mysterious, hardcoded values and commented out lines of code. This is a very complex peripheral, and it would help greatly if an example could be provided that is able to decrypt more data, say 1MB.&lt;/p&gt;
&lt;p&gt;Thanks in advance.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>I need a faster 40-bit &amp; 64-bit IIR filter.</title><link>https://ez.analog.com/thread/593234?ContentTypeID=0</link><pubDate>Wed, 05 Mar 2025 07:30:22 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:12ae9c87-9135-4c83-9e73-fd1bacc1303d</guid><dc:creator>mako2771</dc:creator><slash:comments>19</slash:comments><comments>https://ez.analog.com/thread/593234?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-sc5xxadsp-215xx/f/q-a/593234/i-need-a-faster-40-bit-64-bit-iir-filter/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi.&lt;/p&gt;
&lt;p&gt;I am building a filter with 80 2nd order IIR filters connected in series.&lt;br /&gt;It processes 2 channel signals.&lt;br /&gt;If I change from 21489 (450MHz) to 21565 (1000MHz), the processing time is the same.&lt;br /&gt;I think it is stalled, but it was not same as EE375.&lt;br /&gt;　f12 = f0*f4, f8 = f8+f12, f0 = dm(i2,m2), f4 = 　　　　&lt;br /&gt;　pm(i9,m9); // 1-cycle SHARC+ stall&lt;br /&gt;I don&amp;#39;t know what to do to make it faster.&lt;br /&gt; Please teach me.&lt;br /&gt;The following program is the same as 21489.&lt;br /&gt;What is causing the stall?&lt;br /&gt;Also, please guide me on the 64-bit floating point filter as well.&lt;br /&gt;The 64-bit is SIMD to calculate 2 channels at the same time to save time.&lt;/p&gt;
&lt;p&gt;40bit------------------&lt;/p&gt;
&lt;p&gt;lcntr=16 , do LOOPG until lce; // FILTER ---------------------------&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f4=dm(i3,m1), f1=pm(i10,m9);&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// f1=Lx1(n) f4=Lb10&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f8 =f1*f4, f4=dm(i3,m4), f2=pm(i10,m9);&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // f8=Lx1(n)*Lb10 f2=Rx1(n) f4=Rb10&lt;br /&gt;&amp;nbsp; lcntr=80 , do _loop_g until lce;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f9 =f2*f4, f4=dm(i3,m1), f0=pm(i12,m9);&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // f9=Rx1(n)*Rb10 f4=Lb11, Lx1(n-1)-&amp;gt;f0 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f12=f0*f4, f4=dm(i3,m4), f0=pm(i12,m9);&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// f12=Lx1(n-1)*Lb11 f4=Rb11, Rx1(n-1)-&amp;gt;f0 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f13=f0*f4, f8=f8+f12, f4=dm(i3,m1), f0=pm(i12,m9);&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // f13=Rx1(n-1)*Rb11 f8=sigmaL f4=Lb12, Lx1(n-2)-&amp;gt;f0 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f12=f0*f4, f9=f9+f13, f4=dm(i3,m0), f0=pm(i12,m9);&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // f12=Lx1(n-2)*Lb12 f9=sigmaR f4=Rb12, Rx1(n-2)-&amp;gt;f0 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f13=f0*f4, f8=f8+f12, f4=dm(i3,m1), f0=pm(i12,m9);&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // f13=Rx1(n-1)*Rb12 f8=sigmaL f4=La11, Ly1(n-1)-&amp;gt;f0 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f12=f0*f4, f9=f9+f13, f4=dm(i3,m4), f0=pm(i12,m9);&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // f12=Ly1(n-1)*La11 f9=sigmaR f4=Ra11, Ry1(n-1)-&amp;gt;f0&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f13=f0*f4, f8=f8+f12, f4=dm(i3,m1), f0=pm(i12,m9);&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // f13=Ry1(n-1)*Ra11 f8=sigmaL f4=La12, Ly1(n-2)-&amp;gt;f0 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f12=f0*f4, f9=f9+f13, f4=dm(i3,m0), f0=pm(i12,m12);&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // f12=Ly1(n-2)*La12 f9=sigmaR f4=Ra12, Ry1(n-2)-&amp;gt;f0&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f13=f0*f4, f1=f8+f12, f4=dm(i3,m1), pm(i12,m9)=f1;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // f13=Ry1(n-2)*Ra12 f1=Ly1(n) f4=Lb20 f1-&amp;gt;Lx1(n)&lt;br /&gt;&amp;nbsp; _loop_g:&amp;nbsp; f8=f1*f4,f2=f9+f13,f4=dm(i3,m4), pm(i12,m11)=f2;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // f8=Lx2(n)*Lb20 f2=Ry1(n) f4=Rb20 f2-&amp;gt;Rx1(n) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f15=dm(i3,m2), f14=pm(i12,m10); // NextP coef NextP LYn(n) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dm(i2,m1)=f1, pm(i12,m9)=f1; // f1-&amp;gt;Lyn(n) &lt;br /&gt; LOOPG:&amp;nbsp; &amp;nbsp; dm(i2,m1)=f2, pm(i12,m11)=f2; // f2-&amp;gt;Ryn(n)&lt;br /&gt;&amp;nbsp; &amp;nbsp; dm(_IXgDLY40)=i12; // INDEX z-1&lt;/p&gt;
&lt;p&gt;64bit--------------------------------------------------------------------------&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f0=dm(i3,m1);&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // f0=inL(n)&lt;br /&gt;lcntr=16 , do LOOPG until lce; // FILTER ---------------------------&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; s0=dm(i3,m1);&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // s0=inR(n)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; r4=dm(i4,m2);&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;r4:s4=Lb10_l:Rb10_l&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;f0=inL(n)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f3:2=cvt f0,&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; r5=dm(i4,m2);&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 40to64bit&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; r5:s5=Lb10_h:Rb10_h&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f3:s3:inp(n)_h&amp;nbsp; &amp;nbsp; f2:s2=inp(n)_l &lt;br /&gt;&amp;nbsp; lcntr=80 , do _loop_g until lce;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f9:8=f3:2*f5:4,&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;r4=dm(i4,m2), r0=pm(i12,m10);&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // f9:8=L:R(n)*L:Rb10_l&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;r4:s4=Lb11_l:Rb11_l r0:s0~L:R_lx(n-1)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;r5=dm(i4,m2), r1=pm(i12,m10);&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// r5:s5=Lb11_h:Rb11_h&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;r1:s1=L:R_hx(n-1)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f13:12=f1:0*f5:4,&amp;nbsp; r4=dm(i4,m2), r0=pm(i12,m10);&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// f13:12=L:Rx(n-1)*L:Rb11&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;r4:s4=b12_l r0=x(n-2)_l &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f9:8=f9:8+f13:12, r5=dm(i4,m2), r1=pm(i12,m10);&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// sigma&amp;nbsp; &amp;nbsp; &amp;nbsp; r5:s5=b12_h r1=x(n-2)_h&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f13:12=f1:0*f5:4,&amp;nbsp; r4=dm(i4,m2), r0=pm(i12,m10);&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// f13:12=L:Rx(n-2)*L:Rb12&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; r4:s4=a11_l r0=y(n-1)_l &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f9:8=f9:8+f13:12, r5=dm(i4,m2), r1=pm(i12,m10);&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // sigma&amp;nbsp; &amp;nbsp; &amp;nbsp;r5:s5=a11_h r1=y(n-1)_h&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f13:12=f1:0*f5:4,&amp;nbsp; r4=dm(i4,m2), r0=pm(i12,m10);&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // f13:12=L:Ry(n-1)*L:Ra11&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;r4:s4=a12_l r0=y(n-2)_l &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f9:8=f9:8+f13:12, r5=dm(i4,m2), r1=pm(i12,m8);&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // sigma&amp;nbsp; &amp;nbsp; &amp;nbsp;r5:s5=a12_h r1=y(n-2)_h&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f13:12=f1:0*f5:4,&amp;nbsp; r4=dm(i4,m2), pm(i12,m10)=r2;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // f13:12=L:Ry(n-2)*L:Ra12&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;r4:s4=b20_l f2: -&amp;gt; x1_l(n)=y(n) &lt;br /&gt;&amp;nbsp; _loop_g:&amp;nbsp; f3:2=f9:8+f13:12, r5=dm(i4,m2), pm(i12,m9)=r3;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // sigma&amp;nbsp; &amp;nbsp; &amp;nbsp;r5:s5=b20_h&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;f3: -&amp;gt; x1_h(n)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f7=cvt f3:2,&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; r6=dm(i4,m3), r10=pm(i12,m11);&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 64to40bit y(n)&amp;nbsp; &amp;nbsp; NextP i4&amp;nbsp; &amp;nbsp; NextP i12&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f0=dm(i3,m1), pm(i12,m10)=r2;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // f0=inL(n)&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SAVE y(n)_l &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dm(i2,m1)=f7,&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pm(i12,m9)=r3;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Lch:y(n)-&amp;gt;DATA40&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SAVE y(n)_h&lt;br /&gt; LOOPG:&amp;nbsp; &amp;nbsp; dm(i2,m1)=s7;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Rch:y(n)-&amp;gt;DATA40 &lt;br /&gt; bit clr mode1 BITM_REGF_MODE1_PEYEN; //////////// SISD//////////////&lt;br /&gt;&amp;nbsp;m9=1; &lt;br /&gt; dm(_IXDLY64)=i12;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // INDEX z-1&lt;/p&gt;
&lt;p&gt;Thanks, YAMAMOTO&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>ADSP-SC573 EZ-Kit Fails to Boot from External Flash, Enters Fault State on Restart</title><link>https://ez.analog.com/thread/592050?ContentTypeID=0</link><pubDate>Fri, 31 Jan 2025 12:57:57 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:51ed07c1-5db7-4c26-a393-de5c09682940</guid><dc:creator>hisham</dc:creator><slash:comments>8</slash:comments><comments>https://ez.analog.com/thread/592050?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-sc5xxadsp-215xx/f/q-a/592050/adsp-sc573-ez-kit-fails-to-boot-from-external-flash-enters-fault-state-on-restart/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;span&gt;I am facing an issue with my&amp;nbsp;&lt;/span&gt;&lt;strong&gt;ADSP-SC573 EZ-Kit&lt;/strong&gt;&lt;span&gt;&amp;nbsp;where the board fails to boot from the external flash (W25Q128FV) and enters a&amp;nbsp;&lt;/span&gt;&lt;strong&gt;fault state&lt;/strong&gt;&lt;span&gt;&amp;nbsp;upon restart. Below are the details of the issue and the steps I have taken so far:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;Issue Description:&lt;/strong&gt;&lt;/h4&gt;
&lt;ol start="1"&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Boot Failure:&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;The board does not boot from the external flash after a restart. It enters a fault state, and the firmware does not load.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Firmware Programming:&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;I am able to successfully program the external flash using the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;cldp&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;tool (CrossCore Embedded Studio Device Programmer). The programming process completes without errors.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Debugging:&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;I can debug the firmware in&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;CrossCore Embedded Studio (CCES)&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;without issues. The firmware runs correctly when loaded via the debugger.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Fault State:&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Upon restarting the board (without the debugger connected), the board does not boot and remains in a fault state.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;&lt;strong&gt;Steps Taken So Far:&lt;/strong&gt;&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;1. Flash Erase and Reprogram:&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;I have erased the entire 16MB external flash using the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;cldp&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;command.
&lt;p&gt;while verifying the flash program with the command:&lt;/p&gt;
&lt;pre&gt;cldp &lt;span class="token parameter variable"&gt;-proc&lt;/span&gt; ADSP-SC573 &lt;span class="token parameter variable"&gt;-emu&lt;/span&gt; ICE-1000 &lt;span class="token parameter variable"&gt;-core&lt;/span&gt; &lt;span class="token number"&gt;1&lt;/span&gt; &lt;span class="token parameter variable"&gt;-driver&lt;/span&gt; &lt;span class="token string"&gt;&amp;quot;C:\Analog Devices\ADSP-SC5xx_EZ-KIT_Lite-Rel2.0.2\ADSP-SC5xx_EZ-KIT&lt;span class="token entity"&gt;\E&lt;/span&gt;xamples\Device_Programmer\sc573\sharc\sc573_w25q128fv_dpia_Core1\sc573_w25q128fv_dpia_Core1.dxe&amp;quot;&lt;/span&gt; &lt;span class="token parameter variable"&gt;-cmd&lt;/span&gt; prog v &lt;span class="token parameter variable"&gt;-erase&lt;/span&gt; all &lt;span class="token parameter variable"&gt;-file&lt;/span&gt; Test_Core0.ldr &lt;span class="token parameter variable"&gt;-format&lt;/span&gt; bin&lt;/pre&gt;
It gives the following error:&amp;nbsp; &amp;nbsp;Error: could not write file, load will not complete.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But with -cmd prog it completes loading the file without any errors.&lt;/p&gt;
&lt;p&gt;2.&amp;nbsp;&lt;strong&gt;Boot Mode Configuration:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The boot mode pins on the ADSP-SC573 are configured to boot from&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;external flash&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(W25Q128FV).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Double-checked the hardware connections and confirmed that the boot mode settings are correct&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Questions:&lt;/p&gt;
&lt;ol start="1"&gt;
&lt;li&gt;
&lt;p&gt;What could be causing the board to enter a fault state when booting from the external flash?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Are there any specific configurations or settings I need to check for booting from the W25Q128FV flash?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;How can I debug the boot process to identify where it is failing?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Are there any known issues or workarounds related to booting from external flash on the ADSP-SC573?&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Clock Generation Unit (CGU)</title><link>https://ez.analog.com/thread/591758?ContentTypeID=0</link><pubDate>Wed, 22 Jan 2025 08:41:55 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:ab65dee9-284b-4fa3-a05b-c114197d0dd7</guid><dc:creator>HiteshK</dc:creator><slash:comments>1</slash:comments><comments>https://ez.analog.com/thread/591758?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-sc5xxadsp-215xx/f/q-a/591758/clock-generation-unit-cgu/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://ez.analog.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/398/OCLKEN.PNG" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;Where to find the highlighted bits..? How to activate these bits...?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Could you please share a template to configure CGU and CDU..(both assembly and C)?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>How to playback a sound data saved as file on the ADZS-21489 EZ-Kit board?</title><link>https://ez.analog.com/thread/589436?ContentTypeID=0</link><pubDate>Fri, 15 Nov 2024 02:40:18 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:dff5bb7c-3fa3-4be3-8609-772a2d35ee35</guid><dc:creator>CommunityWillDisplay</dc:creator><slash:comments>7</slash:comments><comments>https://ez.analog.com/thread/589436?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-sc5xxadsp-215xx/f/q-a/589436/how-to-playback-a-sound-data-saved-as-file-on-the-adzs-21489-ez-kit-board/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;span&gt;Hello.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I&amp;#39;m using the&amp;nbsp;&amp;nbsp;ADSP-21489 EZ-Kit board. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;there is&amp;nbsp;a sound source file, and i want to store it in the chip and play it when i need.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Is the ADSP-21489 support to do this?&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Let me know any information or examples for solving such questions please.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Thanks.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Need help for the ATMOS lib to decode stream from HDMI chip</title><link>https://ez.analog.com/thread/588923?ContentTypeID=0</link><pubDate>Sun, 03 Nov 2024 14:42:29 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:91136edd-a8a8-4cea-8f5c-1b939fccc5c1</guid><dc:creator>PowerPan</dc:creator><slash:comments>3</slash:comments><comments>https://ez.analog.com/thread/588923?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-sc5xxadsp-215xx/f/q-a/588923/need-help-for-the-atmos-lib-to-decode-stream-from-hdmi-chip/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;we have a problem while trying to decode ATMOS using your library for atmos. and our engineer has no clue what is the format of the de-mux audio stream, so just need your guide telling how to step-by-step to solve the problem. I have attached questions below, look forward to your kind reply&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" alt=" " src="https://ez.analog.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/398/_AE5FE14FFE5647725F00_20241103223531.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;1. for the HDMI decoder de-mux the audio stream and output from 4 wires of data, so how could we know the audio format, and where could we find the audio format information from the stream? the document refers to IEC51937 and IEC60958 for more information, but we have no clue where to find the related part that describes details.&lt;/p&gt;
&lt;p&gt;2. as I know, the library is written by Dolby, but before decoding, we need to tell the decoder library what format it should use, so, could you tell us which function could find out the format detail? or any demo de-mux stream for us to test?&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Power Pan&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>uart dma stops sending data</title><link>https://ez.analog.com/thread/588657?ContentTypeID=0</link><pubDate>Sat, 26 Oct 2024 14:14:08 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:483466e7-1633-4493-9f90-7a018d30c916</guid><dc:creator>captaanEletro</dc:creator><slash:comments>14</slash:comments><comments>https://ez.analog.com/thread/588657?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-sc5xxadsp-215xx/f/q-a/588657/uart-dma-stops-sending-data/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;span style="font-family:&amp;#39;times new roman&amp;#39;, times;"&gt;Hi team,&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;times new roman&amp;#39;, times;"&gt;in adsp sharc &lt;span style="background-color:#ffff00;"&gt;21583&lt;/span&gt; , with cross core embedded studio 2.11.0.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;times new roman&amp;#39;, times;"&gt;i have &lt;span style="background-color:#ffff00;"&gt;1ms&lt;/span&gt; ISR where the buffer&amp;nbsp;tx_msg_buffer is filled and the&amp;nbsp;Message_length is total number of bytes filled in the tx_msg_buffer.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;times new roman&amp;#39;, times;"&gt;the Baud rate is &lt;span style="background-color:#ffff00;"&gt;460800&lt;/span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;times new roman&amp;#39;, times;"&gt;Message length will be &lt;span style="background-color:#ffff00;color:#000000;"&gt;36 &lt;/span&gt;bytes.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;times new roman&amp;#39;, times;"&gt;Issue: &lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;times new roman&amp;#39;, times;"&gt;the uart is to be used in DMA mode. but after few bytes of data transmission the &lt;span style="background-color:#ffff00;"&gt;data stops coming on UART&lt;/span&gt;. the code is running (verified by stopping the execution and checking the buffer). the buffer will contain data but, the data won&amp;#39;t come on terminal&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;times new roman&amp;#39;, times;"&gt;the core clock is &lt;span style="background-color:#ffff00;"&gt;450&lt;/span&gt; MHz,&amp;nbsp;and &lt;span style="background-color:#ffff00;"&gt;SCLK_0&lt;/span&gt; is 112.5MHz, At &lt;span style="background-color:#ffff00;"&gt;921600&lt;/span&gt; baud rate the data gets corrupted. HRM mentions that it supports the baud rate, but the data does not come correct. the bytes will be wrong.&amp;nbsp; So, I had to use 460800 baud.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;times new roman&amp;#39;, times;"&gt;please suggest what is going wrong.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;void WriteUartDsp (volatile unsigned char* tx_msg_buffer)
{




	/* Loop in while until the previous transmission is completed  */
	while (M_TRUE)
	{
		test = 0;
		test = *pREG_DMA20_STAT;

		/* Check the DMA status, if DMA status is Idle/Stop break the while loop*/
		if (M_ZERO == (test &amp;amp; M_DMA_RUN_STOP))
		{
			break;
		}

	}
	
	*pREG_SPU0_SECUREP82 =0x3; //uart rx dma 20
	*pREG_SPU0_SECUREP83 =0x3; //uart tx dma 21
	
	/* Set the UART0 Interrupt mask to zero*/
	*pREG_UART0_IMSK_SET = M_ZERO;

	/* Wait till the UART0 transmit hold and shift register are empty */
	while (M_ZERO == (*pREG_UART0_STAT &amp;amp; BITM_UART_STAT_TEMT))
	;
	while (M_ZERO == (*pREG_UART0_STAT &amp;amp; ENUM_UART_STAT_THR_EMPTY))
	;


	/* Disable the DMA 20 */
	*pREG_DMA20_CFG = ENUM_DMA_CFG_DIS;

	/* Assign the DMA start address for transmission */
	*pREG_DMA20_ADDRSTART = (void *) (M_MP_OFFSET | (T_U32) tx_msg_buffer);

	/*
	 * Configure DMA0 Registers, set STOP mode flow control, memory and
	 * physical transfer as 1 byte
	 */

	*pREG_DMA20_CFG = ( ENUM_DMA_CFG_MSIZE01 |
	ENUM_DMA_CFG_MSIZE01 |
	ENUM_DMA_CFG_STOP);


	/* Number of bytes to be transmitted */
	*pREG_DMA20_XCNT = Message_length

	/* Address increments in bytes */
	*pREG_DMA20_XMOD = M_ONE;

	/*~ GPSB-SDD-FNC-7576 ~*/
	/* Enable the DMA 20 */
	*pREG_DMA20_CFG |= ENUM_DMA_CFG_EN;

	/*
	 * Set the UART0 Interrupt mask to enable Receiver full interrupt and
	 * transmit full interrupt
	 */
	*pREG_UART0_IMSK_SET = M_THREE;


}&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Extending no. of HADC inputs with external MUX</title><link>https://ez.analog.com/thread/587868?ContentTypeID=0</link><pubDate>Mon, 07 Oct 2024 15:35:48 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:d751b9c8-2244-4eab-8213-9e28e091a6aa</guid><dc:creator>GGG</dc:creator><slash:comments>2</slash:comments><comments>https://ez.analog.com/thread/587868?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-sc5xxadsp-215xx/f/q-a/587868/extending-no-of-hadc-inputs-with-external-mux/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I see this is possible for some of the other parts within the family via dedicated MUX pins on PortF, but these are not available on the SC584.&lt;/p&gt;
&lt;p&gt;Is there any reason why this could not be done using an external MUX and GPIO pins on this processor?&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;G&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Various questions/problems regarding SSL and adi_rom_Boot() API</title><link>https://ez.analog.com/thread/587619?ContentTypeID=0</link><pubDate>Mon, 30 Sep 2024 06:27:55 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:070833b4-9559-4302-9b04-4a68c3181ec0</guid><dc:creator>3lions</dc:creator><slash:comments>7</slash:comments><comments>https://ez.analog.com/thread/587619?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-sc5xxadsp-215xx/f/q-a/587619/various-questions-problems-regarding-ssl-and-adi_rom_boot-api/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi there,&lt;/p&gt;
&lt;p&gt;I&amp;#39;m attempting to implement a second stage loader and am using the SC573_SSL.zip project provided&amp;nbsp;here:&lt;a href="https://ez.analog.com/dsp/f/q-a/114672/adsp-sc572-second-stage-loader-won-t-boot-main-app-with-ad-_rom_boot"&gt;ADSP-SC572 Second stage loader won&amp;#39;t boot main app with ad-_rom_boot()&lt;/a&gt;&amp;nbsp;as a starting point. However, I&amp;#39;ve found that it is unable to boot my &amp;quot;custom&amp;quot; application, and that even with the Blink application code it&amp;#39;s a bit fragile.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve verified that my application loads and executes correctly when programmed into offset 0x0000 on the SPI2 Flash, however it does not execute when launched by the SSL. I&amp;#39;m having a hard time debugging this, and would appreciate some guidance. In addition, the following things are puzzling me.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;In the example Blink application, why is the adi_mmu_init() function defined/overridden? I can see why the cache&amp;nbsp;should&amp;nbsp;&lt;em&gt;not&lt;/em&gt; be initialized by the SSL, but why prevent it being used by the final application? Is it necessary to disable the cache in the the application?&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;The&amp;nbsp;example SSL project includes a linker script &amp;quot;adsp-sc573_L2.ld&amp;quot; but I don&amp;#39;t see how the build tools are using that file. See also &amp;quot;apt-sc573.c&amp;quot;.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;In the comments within the post I&amp;#39;ve linked to above, I noticed that the boot stream for the SSL includes the &amp;quot;-initcode&amp;quot; flag, but the Blink application doesn&amp;#39;t. Are we prevented from including the initcode in both the SSL and application boot streams?&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;I&amp;#39;d like to use UART0 to output debug data from the SSL However,&amp;nbsp;if I run either of these functions in the SSL, the Blink application no-longer boots:&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; adi_pwr_Init(CGU_DEV, CLKIN)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; Init_UART()&amp;nbsp; &amp;nbsp;// copied from the POST test&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;Thanks in advance!&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>