<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:clearspace="http://www.jivesoftware.com/xmlns/clearspace/rss" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Content in EngineerZone</title>
    <link>/profile-content.jspa?userID=2047&amp;filterID=contentstatus[published]</link>
    <description>Recent content in EngineerZone</description>
    <language>en</language>
    <pubDate>Thu, 21 Jul 2011 08:01:47 GMT</pubDate>
    <generator>Jive SBS 5.0.1.1  (http://jivesoftware.com/products/clearspace/)</generator>
    <dc:date>2011-07-21T08:01:47Z</dc:date>
    <dc:language>en</dc:language>
    <item>
      <title>Implementing and exploring PING on LwIP.</title>
      <link>http://ez.analog.com/groups/networking/blog/2011/09/02/implementing-and-exploring-ping-on-lwip</link>
      <description>&lt;!-- [DocumentBodyStart:12968331-8197-4991-9b59-2ee055f9eaf0] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p style="text-align: justify;"&gt;PING is an interesting and useful diagnostic tool for IP networks. It is supported via command-line by Operating Systems such as Windows or Linux. Implementing PING is generally trivial. An example implemention of the PING command as well as PING request detection on LwIP/Blackfin is provided. This is only a reference implementation, and need not be the best way to implement the same. A quick overview of the PING protocol &amp;amp; the ICMP packets are provided, citing Wikipedia links.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;As mentioned in Wikipedia: (&lt;a class="jive-link-external-small" href="http://en.wikipedia.org/wiki/Ping" target="_blank"&gt;http://en.wikipedia.org/wiki/Ping&lt;/a&gt;) "Ping operates by sending Internet Control Message Protocol (ICMP) echo request packets to the target host and waiting for an ICMP response. In the process it measures the time from transmission to reception (round-trip time) and records any packet loss. The results of the test are printed in form of a statistical summary of the response packets received, including the minimum, maximum, and the mean round-trip times, and sometimes the standard deviation of the mean."&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;In contrast to data transfer protocols such as UDP and TCP, ICMP packets (&lt;a class="jive-link-external-small" href="http://en.wikipedia.org/wiki/Ping#ICMP_packet" target="_blank"&gt;http://en.wikipedia.org/wiki/Ping#ICMP_packet&lt;/a&gt;) are generally used for quickly diagnosing connection errors in the network path. As an example, an administrator may PING to a particular IP address to know whether he can reach a client or a server in the network path. In embedded system development, user may perform this as the first step to ensure that he can communicate from PC to the IP stack running on his board, through a cross over cable.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;PING command operates as a two stage process:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;1. Send Echo request with ICMP.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;The program is required to create an ICMP message with ICMP header Type field = 0x8 (echo request). The stack will provide the IP header and the Ethernet header. Application needs to insert the Echo Request in to Type field of ICMP packet.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;2. Catch Echo reply with ICMP.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;The input comes as a whole IP layer packet that contains the IP header as well as ICMP header. Application can look for ICMP header Type field = 0x0 (echo reply).&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;The IP stack automatically handles PING requests. There is generally no need for user intervention to detect PING from Host. However, by simply opening a RAW socket, user can also detect whether a host is trying to PING or not. To do this, user can wait for data from that RAW socket through recvfrom(), and then extract the entire IP header and ICMP header to look for echo request in the ICMP header Type field.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;PING command and PING detection can be implemented with the help of RAW BSD-style sockets. RAW sockets are special types of sockets that allow the application layer to manipulate the lower layers. Note that the application needs to know the embedded protocol correctly when RAW sockets are used; fortunately ICMP packets are easy to understand.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;ICMP packets (images from Wikipedia):&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&amp;#160; &lt;/p&gt;&lt;p style="text-align: justify;"&gt;&amp;#160;&amp;#160; &lt;a href="http://ez.analog.com/servlet/JiveServlet/showImage/38-1126-5954/Echo+Request.jpg"&gt;&lt;img alt="Echo Request.jpg" class="jive-image-thumbnail jive-image" height="98" src="http://ez.analog.com/servlet/JiveServlet/downloadImage/38-1126-5954/620-98/Echo+Request.jpg" width="620"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&amp;#160;&amp;#160; &lt;a href="http://ez.analog.com/servlet/JiveServlet/showImage/38-1126-5953/Echo+Reply.jpg"&gt;&lt;img alt="Echo Reply.jpg" class="jive-image-thumbnail jive-image" height="98" src="http://ez.analog.com/servlet/JiveServlet/downloadImage/38-1126-5953/620-98/Echo+Reply.jpg" width="620"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://ez.analog.com/servlet/JiveServlet/showImage/38-1126-5956/ICMP.jpg"&gt;&lt;img alt="ICMP.jpg" class="jive-image" height="281" src="http://ez.analog.com/servlet/JiveServlet/downloadImage/38-1126-5956/528-281/ICMP.jpg" width="528"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;The above implementation on a BF527 EZ-KIT Lite running LwIP stack is provided as an attachement herewith (tested with VDSP.5.0.9).&lt;/p&gt;&lt;p&gt;The code works the following way:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;1. Issue PING from Host to Blackfin. Echo request from host is detected and printed on VDSP console window. Blackfin also responds to this request via echo replies, which is printed on Host console.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;2. Issue PING command to the same detected Host from Blackfin/LwIP. PC responds to echo requests from Blackfin.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://ez.analog.com/servlet/JiveServlet/showImage/38-1126-5955/PC_out.jpg"&gt;&lt;img alt="PC_out.jpg" class="jive-image" height="227" src="http://ez.analog.com/servlet/JiveServlet/downloadImage/38-1126-5955/486-227/PC_out.jpg" width="486"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&amp;#160; &lt;a href="http://ez.analog.com/servlet/JiveServlet/showImage/38-1126-6637/VDSP_out.jpg"&gt;&lt;img alt="VDSP_out.jpg" class="jive-image" height="667" src="http://ez.analog.com/servlet/JiveServlet/downloadImage/38-1126-6637/593-667/VDSP_out.jpg" width="593"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="text-decoration: underline;"&gt;&lt;strong style="font-size: 10pt;"&gt;Notes from the code:&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Creating RAW socket:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;rawSocket = socket(AF_INET, SOCK_RAW, IP_PROTO_ICMP);&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; Inserting ICMP echo request data:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;icmp_packet.type&amp;#160; = ECHO_REQ;&lt;br/&gt;icmp_packet.code&amp;#160; = 0;&lt;br/&gt;icmp_packet.checksum = 0;&lt;br/&gt;icmp_packet.id&amp;#160;&amp;#160; = PING_ID;&lt;br/&gt;icmp_packet.seqno&amp;#160; = htons(++ping_seq_num);&lt;br/&gt;icmp_packet.checksum&amp;#160;&amp;#160;&amp;#160; = inet_chksum((u16 *)&amp;amp;icmp_packet, sizeof(ICMP_PACKET));&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; Calculating timeout with clock():&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;echo_rx_timestamp = catch_echo_reply(rawSocket, &amp;amp;sockSrc, &amp;amp;pTTL); &lt;br/&gt;echo_time_elapsed = (echo_rx_timestamp - echo_tx_timestamp);&lt;br/&gt;clockspersec&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = CLOCKS_PER_SEC;&lt;br/&gt;echo_time_elapsed = (echo_time_elapsed / clockspersec) * 1000;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;4.&lt;/strong&gt; Packet Headers:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;typedef struct IP_PACKET&lt;br/&gt;{&lt;br/&gt;&amp;#160; u8&amp;#160;&amp;#160; VIHL;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Version and IHL&lt;br/&gt;&amp;#160; u8&amp;#160; TOS;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Type Of Service&lt;br/&gt;&amp;#160; u16&amp;#160; TotLen;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Total Length&lt;br/&gt;&amp;#160; u16&amp;#160; ID;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Identification&lt;br/&gt;&amp;#160; u16&amp;#160; FlagOff;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Flags and Fragment Offset&lt;br/&gt;&amp;#160; u8&amp;#160; TTL;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Time To Live&lt;br/&gt;&amp;#160; u8&amp;#160; Protocol;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Protocol&lt;br/&gt;&amp;#160; u16&amp;#160; Checksum;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Checksum&lt;br/&gt;&amp;#160; struct in_addr ipsrc;&amp;#160;&amp;#160; // Internet Address - Source&lt;br/&gt;&amp;#160; struct in_addr ipdst;&amp;#160;&amp;#160; // Internet Address - Destination&lt;br/&gt;} IP_PACKET;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;typedef struct ICMP_PACKET&lt;br/&gt;{&lt;br/&gt;&amp;#160; u8&amp;#160; type;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Type&lt;br/&gt;&amp;#160; u8&amp;#160; code;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Code&lt;br/&gt;&amp;#160; u16&amp;#160; checksum;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Checksum&lt;br/&gt;&amp;#160; u16&amp;#160; id;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Identification&lt;br/&gt;&amp;#160; u16&amp;#160; seqno;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Sequence&lt;br/&gt;&amp;#160; char data[32];&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Data&lt;br/&gt;} ICMP_PACKET;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;5.&lt;/strong&gt; Giving back TTL and time for transfer to application:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;*pTTL = echo_reply_info.ip_packet.TTL;&lt;br/&gt;echo_rx_timestamp = clock();&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;6.&lt;/strong&gt; Giving&amp;#160; back echo detect to application:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;pingserver_info.type&amp;#160;&amp;#160; = echo_request_info.icmp_packet.type;&lt;br/&gt;pingserver_info.ipsrc&amp;#160; = echo_request_info.ip_packet.ipsrc;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;7. &lt;/strong&gt;Inserting user data to the echo request:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Insert_Data = &amp;amp;icmp_packet.data[0];&lt;br/&gt;strcpy(Insert_Data,"Blackfin Processor");&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;8.&lt;/strong&gt; Time To Live:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Each time an IP device such as a router receives a ping packet, it decrements the TTL counter by one. Should the packet's TTL reach zero, the device discards the packet. Note the TTL values: when sent from Blackfin the default is 255, as specified in the header ..\Blackfin\lib\src\lwip\src\include\lwip&lt;/p&gt;&lt;p&gt;When sent from a windows Host default is usually 128.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Wireshark&lt;/em&gt; &lt;/strong&gt;(&lt;a class="jive-link-external-small" href="http://www.wireshark.org/" target="_blank"&gt;http://www.wireshark.org/&lt;/a&gt;) is a free and open-source packet analyzer. A sample wireshark output of the above implementation is given below. Notice the Echo request &amp;amp; Echo reply, and the user data.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="http://ez.analog.com/servlet/JiveServlet/showImage/38-1126-5957/Wireshark.bmp"&gt;&lt;img alt="Wireshark.bmp" class="jive-image-thumbnail jive-image" height="710" src="http://ez.analog.com/servlet/JiveServlet/downloadImage/38-1126-5957/620-710/Wireshark.bmp" width="620"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:12968331-8197-4991-9b59-2ee055f9eaf0] --&gt;</description>
      <pubDate>Thu, 21 Jul 2011 08:01:47 GMT</pubDate>
      <author>analogvm-admin@analog-vm.hosted.jivesoftware.com</author>
      <guid>http://ez.analog.com/groups/networking/blog/2011/09/02/implementing-and-exploring-ping-on-lwip</guid>
      <dc:date>2011-07-21T08:01:47Z</dc:date>
      <clearspace:dateToText>1 year, 10 months ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>Bug status: "[#6961] Eclipse: Unable to exclude .C files"</title>
      <link>http://ez.analog.com/thread/13112</link>
      <description>&lt;!-- [DocumentBodyStart:4f65860d-c651-4423-b9af-555c0eeb6e80] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;Has someone looked at this bug: &lt;a class="jive-link-external-small" href="https://blackfin.uclinux.org/gf/project/toolchain/tracker/?action=TrackerItemEdit&amp;amp;tracker_item_id=6961&amp;amp;start=0" target="_blank"&gt;https://blackfin.uclinux.org/gf/project/toolchain/tracker/?action=TrackerItemEdit&amp;amp;tracker_item_id=6961&amp;amp;start=0&lt;/a&gt;&lt;/p&gt;&lt;p&gt;I need to export and re-build few VDSP/CCES libraries to GCC/CCES, so a fix would help do things properly.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Regards&lt;/p&gt;&lt;p&gt;Prasanth&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:4f65860d-c651-4423-b9af-555c0eeb6e80] --&gt;</description>
      <pubDate>Fri, 04 May 2012 09:01:08 GMT</pubDate>
      <author>analogvm-admin@analog-vm.hosted.jivesoftware.com</author>
      <guid>http://ez.analog.com/thread/13112</guid>
      <dc:date>2012-05-04T09:01:08Z</dc:date>
      <clearspace:dateToText>1 year, 2 weeks ago</clearspace:dateToText>
      <clearspace:replyCount>1</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>What are the descriptor models available for BF60x EMAC DMA?</title>
      <link>http://ez.analog.com/thread/12506</link>
      <description>&lt;!-- [DocumentBodyStart:3c3ff4c3-a1ff-4c25-b030-5de9cd9043df] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;BF60x EMAC has a a dedicated DMA Controller inside the peripheral. The two available descriptor models are shown below. In Ring structure, it is possible to define a specific gap size between two consecutive descriptors. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="EMAC_DMA_.DESCjpg.jpg"&gt;&lt;img alt="EMAC_DMA_.DESCjpg.jpg" class="jive-image-thumbnail jive-image" height="393" onclick="" src="EMAC_DMA_.DESCjpg.jpg" width="519"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:3c3ff4c3-a1ff-4c25-b030-5de9cd9043df] --&gt;</description>
      <pubDate>Tue, 27 Mar 2012 15:35:36 GMT</pubDate>
      <author>analogvm-admin@analog-vm.hosted.jivesoftware.com</author>
      <guid>http://ez.analog.com/thread/12506</guid>
      <dc:date>2012-03-27T15:35:36Z</dc:date>
      <clearspace:dateToText>1 year, 1 month ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>What are the power management features of BF60x EMAC?</title>
      <link>http://ez.analog.com/thread/12504</link>
      <description>&lt;!-- [DocumentBodyStart:242346d9-b3e8-47cb-a706-d455cb185b64] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;BF60x EMAC has no particular power management features built-in, in contrast to legacy parts such as BF537/BF527. This includes magic frames and wake up frames. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;There is support for wake up using PHYINT signal (a GPIO in BF60x) generated by the external PHY chip. However, since the signal is treated as a GPIO wake up, any device may drive this GPIO, and not just an Ethernet PHY. &lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:242346d9-b3e8-47cb-a706-d455cb185b64] --&gt;</description>
      <pubDate>Tue, 27 Mar 2012 15:09:44 GMT</pubDate>
      <author>analogvm-admin@analog-vm.hosted.jivesoftware.com</author>
      <guid>http://ez.analog.com/thread/12504</guid>
      <dc:date>2012-03-27T15:09:44Z</dc:date>
      <clearspace:dateToText>1 year, 1 month ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>What is the FIFO size of BF60x Link Port receiver?</title>
      <link>http://ez.analog.com/thread/12503</link>
      <description>&lt;!-- [DocumentBodyStart:1798686f-36b7-4569-9afd-b8bb8ff66954] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;The Link Port receiver has a 4-deep FIFO. However, this depth of size 4 can be utilized only in a worst case scenario, where the ACK reaches the transmitter very late due to board delays. In all other cases the receiver must be thought of having only a 3-deep FIFO. Below image gives a FIFO level representation of how the ACK is generated. Gray areas indicate filled data and white areas indicate free space. The ACK is pulled low as soon as 1st byte of the 3rd location (last but one) is received. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="LP_ackgeneration.png"&gt;&lt;img alt="LP_ackgeneration.png" class="jive-image" height="176" src="LP_ackgeneration.png" width="256"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:1798686f-36b7-4569-9afd-b8bb8ff66954] --&gt;</description>
      <pubDate>Tue, 27 Mar 2012 15:02:34 GMT</pubDate>
      <author>analogvm-admin@analog-vm.hosted.jivesoftware.com</author>
      <guid>http://ez.analog.com/thread/12503</guid>
      <dc:date>2012-03-27T15:02:34Z</dc:date>
      <clearspace:dateToText>1 year, 1 month ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>FAQ: Getting Started with SDP-B using GCC Toolchain</title>
      <link>http://ez.analog.com/docs/DOC-1949</link>
      <description>&lt;!-- [DocumentBodyStart:3ef24320-e2c4-4ae9-a25a-061141304b79] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;span style="text-decoration: underline;"&gt;Getting Started with SDP-B using GCC toolchain:&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;The SDP (System Demonstration Platform) is a collection of controller boards, interposer boards, and daughter boards used for easy, low cost evaluation of ADI components and reference circuits. The controller boards provide a means of communicating to the PC from the system being evaluated or demonstrated. The SDP-B is a Blackfin, ADSP-BF527, based controller board. The SDP-B has on board JTAG, SDRAM, Flash memory and an LED making it an attractive package for those looking at low cost development platforms on Blackfin. This, combined with the open source GNU tool-chain and a low-cost emulator, reduces the cost factor significantly. SDP-B is available at: USD 99 &lt;sup&gt;[1]&lt;/sup&gt; and the Low-cost emulator ICE-100B is available at: USD 150 &lt;sup&gt;[2]&lt;/sup&gt;&lt;em&gt;,&lt;/em&gt; so one could kick-off 600Mhz Blackfin based development in just USD 250 &lt;sup&gt;[1] [2]&lt;/sup&gt;&lt;em&gt;.&lt;/em&gt; User can also opt between Windows or Linux host development platforms.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;This article is a quick start guide for those who want to evaluate SDP-B in a GCC environment. A pdf version of the article is available as attachment. SDP-B Rev-B &amp;amp; Windows host is used for testing purpose. Refer to the reference section for various related links.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin: 4pt 0in;"&gt;&lt;span style="text-decoration: underline;"&gt;The SDP-B board features:&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&amp;bull; Analog Devices ADSP-BF527 Blackfin processor&lt;/p&gt;&lt;p&gt;&amp;bull; Core performance up to 600 MHz&lt;/p&gt;&lt;p&gt;&amp;bull; 208-ball CSP-BGA package&lt;/p&gt;&lt;p&gt;&amp;bull; 24 MHz CLKIN oscillator&lt;/p&gt;&lt;p&gt;&amp;bull; 5 Mb of internal RAM memory&lt;/p&gt;&lt;p&gt;&amp;bull; 32 Mb flash memory&lt;/p&gt;&lt;p style="margin-left: 0in; text-indent: 0in; mso-list: l0 level2 lfo1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Numonyx M29W320EB (Rev B) or&lt;/p&gt;&lt;p style="margin-left: 0in; text-indent: 0in; mso-list: l0 level2 lfo1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Numonyx M25P32 (Rev 1.3)&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;&lt;p&gt;&amp;bull; SDRAM memory&lt;/p&gt;&lt;p style="margin-left: 0in; text-indent: 0in; mso-list: l0 level2 lfo1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Micron MT48LC16M16A2P-6A - 16 Mb x 16 bits (256 Mb/32 MB)&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;&lt;p&gt;&amp;bull; 3 &amp;#215; 120-pin small foot print connectors&lt;/p&gt;&lt;p style="margin-left: 0in; text-indent: 0in; mso-list: l0 level2 lfo1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Hirose FX8-120P-SV1(91), 120-pin header&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;&lt;p&gt;&amp;bull; JTAG header footprint&lt;/p&gt;&lt;p&gt;&amp;bull; USB 2.0 device interface to host PC.&lt;/p&gt;&lt;p&gt;&amp;bull; Blackfin processor peripherals exposed&lt;/p&gt;&lt;p style="margin-left: 0in; text-indent: 0in; mso-list: l0 level2 lfo1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SPI&lt;/p&gt;&lt;p style="margin-left: 0in; text-indent: 0in; mso-list: l0 level2 lfo1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SPORT&lt;/p&gt;&lt;p style="margin-left: 0in; text-indent: 0in; mso-list: l0 level2 lfo1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; TWI/I2C&lt;/p&gt;&lt;p style="margin-left: 0in; text-indent: 0in; mso-list: l0 level2 lfo1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; GPIO&lt;/p&gt;&lt;p style="margin-left: 0in; text-indent: 0in; mso-list: l0 level2 lfo1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; PPI&lt;/p&gt;&lt;p style="margin-left: 0in; text-indent: 0in; mso-list: l0 level2 lfo1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Asynchronous parallel&lt;/p&gt;&lt;p style="margin-left: 0in; text-indent: 0in; mso-list: l0 level2 lfo1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Timers&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;span style="text-decoration: underline;"&gt;Development System:&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;SDP-B is a USB powered board &lt;sup&gt;[3]&lt;/sup&gt;, so one needs to have a USB mini-cable to power on the system. Typical development environment consists of a JTAG-based emulator and a GUI-based Debugger. ICE-100B is a low cost emulator from ADI that has direct support for the GCC toolchain. Another USB-cable is required to hook up the emulator to the JTAG connector in SDP-B board. Eclipse is an open source IDDE, which presents a complete debugger front-end to the developer. It can support almost any debugging requirement such as build code, execute, stop-at-breakpoints, single-step through code, view memory, MMRs etc.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;span style="text-decoration: underline;"&gt;GNU Debugger:&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;GDB (GNU Debugger) is the debugger utility for debugging applications built using GCC toolchain. User should be aware of the basic infrastructure that enables Eclipse to debug applications via gdb. A typical setup is given below.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;a href="http://ez.analog.com/servlet/JiveServlet/showImage/7608/1.jpg"&gt;&lt;img alt="1.jpg" class="jive-image" src="http://ez.analog.com/servlet/JiveServlet/downloadImage/7608/1.jpg"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Eclipse needs to use gdbproxy in order to talk to the target device. Gdbproxy, as the name indicates, is a proxy server or a stub which in turn uses urJTAG software for the actual JTAG operations.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;span style="text-decoration: underline;"&gt;Installation of bare metal toolchain and Eclipse:&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;The latest release of the toolchain and the utilities (blackfin-toolchain-win32-) can be downloaded from the following link:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;a class="jive-link-external-small" href="http://blackfin.uclinux.org/gf/project/toolchain/frs/" target="_blank"&gt;http://blackfin.uclinux.org/gf/project/toolchain/frs/&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="line-height: 14.4pt; margin-right: 1.85pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"&gt;Once all files are installed, the emulator driver must be installed through *.inf file modifications. This file can be found in the toolchain installation path: &amp;ldquo;..\GNU Toolchain\2010R1\gnICE-drivers&amp;#8221;. Next, modify the *.inf to include support for ICE-100B, as given below:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="width: 72.43%; height: 259px; border: #000000 1px solid;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align="center" style="border:1px solid black;border: #000000 1px solid;background-color: #6690bc;" valign="middle"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;Sample *.inf file&lt;/strong&gt;&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: #000000 1px solid;"&gt;&lt;p style="line-height: 14.4pt; margin-right: 1.85pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"&gt;;[Devices]&lt;br/&gt;;%gnICE_JTAG%&amp;#160; = USB_Install, USB\VID_0456&amp;amp;PID_f000&amp;amp;MI_00&lt;br/&gt;;%gnICE+_JTAG% = USB_Install, USB\VID_0456&amp;amp;PID_f001&amp;amp;MI_00&lt;br/&gt;"GNU ICE100B" = USB_Install, USB\VID_064b&amp;amp;PID_0225&amp;amp;REV_0100&lt;br/&gt;[Devices.NTX86]&lt;br/&gt;%gnICE_JTAG%&amp;#160; = USB_Install, USB\VID_0456&amp;amp;PID_f000&amp;amp;MI_00&lt;br/&gt;%gnICE+_JTAG% = USB_Install, USB\VID_0456&amp;amp;PID_f001&amp;amp;MI_00&lt;br/&gt;"GNU ICE100B" = USB_Install, USB\VID_064b&amp;amp;PID_0225&amp;amp;REV_0100&lt;br/&gt;[Devices.NTAMD64]&lt;br/&gt;%gnICE_JTAG%&amp;#160; = USB_Install, USB\VID_0456&amp;amp;PID_f000&amp;amp;MI_00&lt;br/&gt;%gnICE+_JTAG% = USB_Install, USB\VID_0456&amp;amp;PID_f001&amp;amp;MI_00&lt;br/&gt;"GNU ICE100B" = USB_Install, USB\VID_064b&amp;amp;PID_0225&amp;amp;REV_0100&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;span style="text-decoration: underline;"&gt;Connecting JTAG first time:&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;ol start="1"&gt;&lt;li&gt;Connect emulator.&lt;/li&gt;&lt;li&gt;Connect USB cable from emulator to PC.&lt;/li&gt;&lt;li&gt;When PC asks for driver software, install the same from the path: &amp;ldquo;..\GNU Toolchain\2010R1\gnICE-drivers"&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&amp;#160; 4.&amp;#160; Restart PC.&lt;/p&gt;&lt;p&gt;&amp;#160; 5.&amp;#160; Check whether the device is listed in the device manager such as below.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="http://ez.analog.com/servlet/JiveServlet/showImage/7609/2.jpg"&gt;&lt;img alt="2.jpg" class="jive-image" src="http://ez.analog.com/servlet/JiveServlet/downloadImage/7609/2.jpg"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;span style="text-decoration: underline;"&gt;Running gdbproxy:&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Before any actual program can be debugged, the gdbproxy must successfully detect the jtag device. Gdbproxy maybe untouched after the connection is established.&amp;#160; Example log is given below, after running this command:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="width: 530px; height: 399px; border: #000000 1px solid;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align="center" style="border:1px solid black;border: #000000 1px solid;background-color: #6690bc;" valign="middle"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;Running gdbproxy&lt;/strong&gt;&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: #000000 1px solid;"&gt;&lt;p&gt;C:\Program Files\Analog Devices\GNU Toolchain\2010R1\elf\bin&amp;gt;bfin-gdbproxy.exe&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Remote proxy for GDB, v0.7.2, Copyright (C) 1999 Quality Quorum Inc.&lt;/p&gt;&lt;p&gt;MSP430 adaption Copyright (C) 2002 Chris Liechti and Steve Underwood&lt;/p&gt;&lt;p&gt;Blackfin adaption Copyright (C) 2008 Analog Devices, Inc.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;GDBproxy comes with ABSOLUTELY NO WARRANTY; for details use `--warranty' option. This is Open Source software. You are welcome to redistribute it under certain conditions. Use the '--copying' option for details.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Found USB cable: ICE-100B&lt;/p&gt;&lt;p&gt;ICE-100B firmware version is 2.0.6&lt;/p&gt;&lt;p&gt;IR length: 5&lt;/p&gt;&lt;p&gt;Chain length: 1&lt;/p&gt;&lt;p&gt;Device Id: 00100010011111100000000011001011 (0x227E00CB)&lt;/p&gt;&lt;p&gt;&amp;#160; Manufacturer: Analog Devices, Inc. (0x0CB)&lt;/p&gt;&lt;p&gt;&amp;#160; Part(0):&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; BF527 (0x27E0)&lt;/p&gt;&lt;p&gt;&amp;#160; Stepping:&amp;#160;&amp;#160;&amp;#160;&amp;#160; 2&lt;/p&gt;&lt;p&gt;&amp;#160; Filename:&amp;#160;&amp;#160;&amp;#160;&amp;#160; c:\program files\analog devices\gnu toolchain\svn-20101128\elf\b&lt;/p&gt;&lt;p&gt;in\../share/urjtag/analog/bf527/bf527&lt;/p&gt;&lt;p&gt;warning:&amp;#160;&amp;#160; bfin: no board selected, BF527 is detected&lt;/p&gt;&lt;p&gt;notice:&amp;#160;&amp;#160;&amp;#160; bfin: jc: waiting on TCP port 2001&lt;/p&gt;&lt;p&gt;notice:&amp;#160;&amp;#160;&amp;#160; bfin: jc:&amp;#160; (you must connect GDB before using jtag console)&lt;/p&gt;&lt;p&gt;notice:&amp;#160;&amp;#160;&amp;#160; bfin-gdbproxy.exe: waiting on TCP port 2000&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;span style="text-decoration: underline;"&gt;Creating project in Eclipse (only sample screenshots and explanations):&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Start with new C project and appropriate toolchain:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;a href="http://ez.analog.com/servlet/JiveServlet/showImage/7616/3.jpg"&gt;&lt;img alt="3.jpg" class="jive-image" src="http://ez.analog.com/servlet/JiveServlet/downloadImage/7616/3.jpg"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Click on next until you arrive at processor definition:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;a href="http://ez.analog.com/servlet/JiveServlet/showImage/7617/4.jpg"&gt;&lt;img alt="4.jpg" class="jive-image" src="http://ez.analog.com/servlet/JiveServlet/downloadImage/7617/4.jpg"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;A new project is now created with default file template. Remember that there are no low level drivers for stdio functions; you need to create your own implementation with newlib library for this. So delete the following code for now:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="width: 50%; height: 50%; border: #000000 1px solid;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align="center" style="border:1px solid black;border: #000000 1px solid;background-color: #6690bc;" valign="middle"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;stdio related code to be removed&lt;/strong&gt;&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: #000000 1px solid;"&gt;&lt;p&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/p&gt;&lt;p&gt;puts("!!!Hello World!!!"); /* prints !!!Hello World!!! */&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Right click on the project tab and build the code. Eclipse throws out verbose like below:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="width: 50%; height: 50%; border: #000000 1px solid;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align="center" style="border:1px solid black;border: #000000 1px solid;background-color: #6690bc;" valign="middle"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;build console output&lt;/strong&gt;&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: #000000 1px solid;"&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;**** Build of configuration Debug for project SDP_test_project ****&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;make all&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;'Building file: ../src/SDP_test_project.c'&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;'Invoking: Blackfin ELF C Compiler'&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;bfin-elf-gcc -O0 -g3 -Wall -c -fmessage-length=0 -mcpu=bf527-any -MMD -MP -MF"src/SDP_test_project.d" -MT"src/SDP_test_project.d" -o"src/SDP_test_project.o" "../src/SDP_test_project.c"&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;'Finished building: ../src/SDP_test_project.c'&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;' '&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;'Building target: SDP_test_project'&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;'Invoking: Blackfin ELF C Linker'&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;bfin-elf-gcc -mcpu=bf527-any -o"SDP_test_project"&amp;#160; ./src/SDP_test_project.o&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;'Finished building target: SDP_test_project'&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;' '&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;If the status is reporting as finished building, we have an executable ready for testing.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="text-decoration: underline;"&gt;Debugging with Eclipse:&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Next step is to create a debug configuration for the project. Right click on project and choose Debug Configurations. Create a new configuration under &amp;ldquo;bare metal application on JTAG device&amp;#8221;. Go to Debugger tab and change the port number to 2000. Click on &amp;ldquo;apply&amp;#8221; and &amp;ldquo;debug&amp;#8221;. Sample screenshots are given below.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="http://ez.analog.com/servlet/JiveServlet/showImage/7618/5.jpg"&gt;&lt;img alt="5.jpg" class="jive-image" src="http://ez.analog.com/servlet/JiveServlet/downloadImage/7618/5.jpg"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="http://ez.analog.com/servlet/JiveServlet/showImage/7619/6.jpg"&gt;&lt;img alt="6.jpg" class="jive-image" src="http://ez.analog.com/servlet/JiveServlet/downloadImage/7619/6.jpg"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;A screenshot for successful debug will look like below. Terminate with red-button and re-launch with Debug tab right click for every new build.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="http://ez.analog.com/servlet/JiveServlet/showImage/7620/7.jpg"&gt;&lt;img alt="7.jpg" class="jive-image-thumbnail jive-image" src="http://ez.analog.com/servlet/JiveServlet/downloadImage/7620/7.jpg" width="620"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Explore the toolchain settings for project and the MMR window:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="http://ez.analog.com/servlet/JiveServlet/showImage/7621/8.jpg"&gt;&lt;img alt="8.jpg" class="jive-image" src="http://ez.analog.com/servlet/JiveServlet/downloadImage/7621/8.jpg"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="http://ez.analog.com/servlet/JiveServlet/showImage/7622/9.jpg"&gt;&lt;img alt="9.jpg" class="jive-image" src="http://ez.analog.com/servlet/JiveServlet/downloadImage/7622/9.jpg"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="text-decoration: underline;"&gt;Minimal test of SDP-B hardware with GCC:&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;The following code blinks LED1 in the SDP:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="width: 80%; height: 80%; border: #000000 1px solid;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align="center" style="border:1px solid black;border: #000000 1px solid;background-color: #6690bc;" valign="middle"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;LED blink code&lt;/strong&gt;&lt;/span&gt;&lt;/th&gt;&lt;th align="center" style="border:1px solid black;border: #000000 1px solid;background-color: #6690bc;" valign="middle"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;LED blink code contd...&lt;/strong&gt;&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: #000000 1px solid;"&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&lt;strong&gt;#include&lt;/strong&gt; &amp;lt;cdefBF527.h&amp;gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&lt;strong&gt;void&lt;/strong&gt; &lt;strong&gt;writeToSdpLatch&lt;/strong&gt;(&lt;strong&gt;unsigned&lt;/strong&gt; &lt;strong&gt;char&lt;/strong&gt; latchData);&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&lt;strong&gt;void&lt;/strong&gt; &lt;strong&gt;flashLed&lt;/strong&gt;(&lt;strong&gt;void&lt;/strong&gt;);&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&lt;strong&gt;void&lt;/strong&gt; &lt;strong&gt;waitMilliSec&lt;/strong&gt;(&lt;strong&gt;void&lt;/strong&gt;);&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&lt;strong&gt;void&lt;/strong&gt; &lt;strong&gt;configEBIU&lt;/strong&gt;(&lt;strong&gt;void&lt;/strong&gt;);&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&lt;strong&gt;void&lt;/strong&gt; &lt;strong&gt;configFlashEnable&lt;/strong&gt;(&lt;strong&gt;void&lt;/strong&gt;);&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&lt;strong&gt;#define&lt;/strong&gt; PIN_PG0 0x0001&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&lt;strong&gt;unsigned&lt;/strong&gt; &lt;strong&gt;char&lt;/strong&gt; latchValue = 0;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&lt;strong&gt;int&lt;/strong&gt; &lt;strong&gt;main&lt;/strong&gt;()&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;{&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; configFlashEnable();&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; configEBIU();&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;while&lt;/strong&gt;(1)&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; flashLed();&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;return&lt;/strong&gt; 0;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;}&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&lt;strong&gt;void&lt;/strong&gt; &lt;strong&gt;configFlashEnable&lt;/strong&gt;()&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;{&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; *pPORTGIO_DIR |= PIN_PG0;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; *pPORTGIO_SET = PIN_PG0;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;asm&lt;/strong&gt;("&lt;span style="text-decoration: underline;"&gt;ssync&lt;/span&gt;;");&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; latchValue = 0;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;}&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&lt;strong&gt;void&lt;/strong&gt; &lt;strong&gt;configEBIU&lt;/strong&gt;()&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;{&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; *pEBIU_AMGCTL&amp;#160; = 0x00F9;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; *pEBIU_AMBCTL0 = 0x7BB07BB0;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; *pEBIU_AMBCTL1 = 0x7BB07BB0;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;asm&lt;/strong&gt;("&lt;span style="text-decoration: underline;"&gt;ssync&lt;/span&gt;;");&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; latchValue = 0;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;}&lt;/p&gt;&lt;/td&gt;&lt;td style="border:1px solid black;border: #000000 1px solid;"&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&lt;strong&gt;void&lt;/strong&gt; &lt;strong&gt;writeToSdpLatch&lt;/strong&gt;(&lt;strong&gt;unsigned&lt;/strong&gt; &lt;strong&gt;char&lt;/strong&gt; latchData)&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;{&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;// write to latch (bank 2)&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;*((&lt;strong&gt;unsigned&lt;/strong&gt; &lt;strong&gt;char&lt;/strong&gt;*)0x20200000) = latchData;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&lt;strong&gt;asm&lt;/strong&gt;("&lt;span style="text-decoration: underline;"&gt;ssync&lt;/span&gt;;");&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;}&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&lt;strong&gt;void&lt;/strong&gt; &lt;strong&gt;flashLed&lt;/strong&gt;(&lt;strong&gt;void&lt;/strong&gt;)&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;{&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&lt;strong&gt;unsigned&lt;/strong&gt; &lt;strong&gt;char&lt;/strong&gt; i = 0;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&lt;strong&gt;for&lt;/strong&gt; (i=0; i&amp;lt;5; i++)&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;{&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;latchValue = latchValue | 0x08;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;writeToSdpLatch(latchValue);&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;waitMilliSec();&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;latchValue = latchValue &amp;amp; 0xF7;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;writeToSdpLatch(latchValue);&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;waitMilliSec();&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;}&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;}&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&lt;strong&gt;void&lt;/strong&gt; &lt;strong&gt;waitMilliSec&lt;/strong&gt;()&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;{&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;int&lt;/strong&gt; j = 0;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;for&lt;/strong&gt;(j=0;j&amp;lt;1000000;j++)&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;asm&lt;/strong&gt;("NOP;");&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;}&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="text-decoration: underline;"&gt;Creating LDR file:&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Once the project has been debugged via emulator, one needs to create the corresponding LDR (Loader) file in order to use in a standalone system. A standalone system consists of a boot source, typically a non-volatile memory from where the LDR file is read by the on-chip BOOT-ROM in Blackfin. The BOOT-ROM copies the various code and data objects in to various memories available in the system. Once BOOT-ROM has finished this operation, it jumps to the start of application to perform further execution.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;In GCC environment, this LDR file is created via ld-utils provided in &amp;ldquo;\GNU Toolchain\2010R1\elf\bin&amp;#8221; folder in the installation directory. Command bfin-elf-ldr.exe along with its parameters needs to be run in order to burn the ldr in the correct way to the flash. For example, the following command operates on the executable named SDP_LED_BLINK and creates an LDR file called LEDblink.ldr for BF527 supporting a 16-bit Flash device.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="width: 50%; height: 50%; border: #000000 1px solid;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align="center" style="border:1px solid black;border: #000000 1px solid;background-color: #6690bc;" valign="middle"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;creating ldr file&lt;/strong&gt;&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: #000000 1px solid;"&gt;&lt;p style="margin-top: 12pt; mso-add-space: auto;"&gt;C:\Program Files\Analog Devices\GNU Toolchain\2010R1\elf\bin&amp;gt;bfin-elf-ldr.exe -T bf527 -v -c --bits 16 LEDblink.ldr SDP_LED_BLINK --bmode para&lt;/p&gt;&lt;p style="margin-top: 12pt; mso-add-space: auto;"&gt;Creating LDR LEDblink.ldr ...&lt;/p&gt;&lt;p style="margin-top: 12pt; mso-add-space: auto;"&gt;Adding DXE 'SDP_LED_BLINK' ... [jump block to 0xFFA00000] [ELF block: 1104 @ 0xFF800000] [ELF block: 1620 @ 0xFFA00000] OK!&lt;/p&gt;&lt;p style="margin-top: 12pt; mso-add-space: auto;"&gt;Done!&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="text-decoration: underline;"&gt;Automating LDR creation with Eclipse&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Create a new configuration under Run -&amp;gt; External Configuration, and appropriate parameters.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="http://ez.analog.com/servlet/JiveServlet/showImage/7623/10.jpg"&gt;&lt;img alt="10.jpg" class="jive-image" height="399" src="http://ez.analog.com/servlet/JiveServlet/downloadImage/7623/554-399/10.jpg" width="554"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Add this tool to the Builder list so that Eclipse calls this automatically.&lt;/p&gt;&lt;p&gt;&lt;a href="http://ez.analog.com/servlet/JiveServlet/showImage/7624/11.jpg"&gt;&lt;img alt="11.jpg" class="jive-image" src="http://ez.analog.com/servlet/JiveServlet/downloadImage/7624/11.jpg"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Upon successful build, eclipse throws the output as below:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="http://ez.analog.com/servlet/JiveServlet/showImage/7625/12.jpg"&gt;&lt;img alt="12.jpg" class="jive-image-thumbnail jive-image" src="http://ez.analog.com/servlet/JiveServlet/downloadImage/7625/12.jpg" width="620"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="text-decoration: underline;"&gt;Loading LDR file via urJTAG software:&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Perform the following command sequence with urJTAG command prompt in order to load an ldr file. The tool supports auto-completion pre-load from history. Example sequence used for burning the LED_blink_ ldr:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="width: 94.19%; height: 50%; border: #000000 1px solid;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align="center" style="border:1px solid black;border: #000000 1px solid;background-color: #6690bc;" valign="middle"&gt;urJTAG command sequence&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: #000000 1px solid;"&gt;&lt;p&gt;C:\Program Files\Analog Devices\GNU Toolchain\2010R1\elf\bin&amp;gt;bfin-jtag.exe&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;UrJTAG 0.10 #5733&lt;/p&gt;&lt;p&gt;Copyright (C) 2002, 2003 ETC s.r.o.&lt;/p&gt;&lt;p&gt;Copyright (C) 2007, 2008, 2009 Kolja Waschk and the respective authors&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;UrJTAG is free software, covered by the GNU General Public License, and you arewelcome to change it and/or distribute copies of it under certain conditions. There is absolutely no warranty for UrJTAG.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;warning: UrJTAG may damage your hardware!&lt;/p&gt;&lt;p&gt;Type "quit" to exit, "help" for help.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;jtag&amp;gt; cable ICE-100B&lt;/p&gt;&lt;p&gt;ICE-100B firmware version is 2.0.6&lt;/p&gt;&lt;p&gt;jtag&amp;gt; detect&lt;/p&gt;&lt;p&gt;IR length: 5&lt;/p&gt;&lt;p&gt;Chain length: 1&lt;/p&gt;&lt;p&gt;Device Id: 00100010011111100000000011001011 (0x227E00CB)&lt;/p&gt;&lt;p&gt;&amp;#160; Manufacturer: Analog Devices, Inc. (0x0CB)&lt;/p&gt;&lt;p&gt;&amp;#160; Part(0):&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; BF527 (0x27E0)&lt;/p&gt;&lt;p&gt;&amp;#160; Stepping:&amp;#160;&amp;#160;&amp;#160;&amp;#160; 2&lt;/p&gt;&lt;p&gt;&amp;#160; Filename:&amp;#160;&amp;#160;&amp;#160;&amp;#160; c:\program files\analog devices\gnu toolchain\svn-20101128\elf\b&lt;/p&gt;&lt;p&gt;in\../share/urjtag/analog/bf527/bf527&lt;/p&gt;&lt;p&gt;jtag&amp;gt; initbus bf527_sdp&lt;/p&gt;&lt;p&gt;jtag&amp;gt; detectflash 0x20000000&lt;br/&gt;Query identification string:&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Primary Algorithm Command Set and Control Interface ID Code: 0x0002 (AMD/Fujitsu Standard Command Set)&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Alternate Algorithm Command Set and Control Interface ID Code: 0x0000 (null)&lt;br/&gt;Query system interface information:&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Vcc Logic Supply Minimum Write/Erase or Write voltage: 2700 mV&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Vcc Logic Supply Maximum Write/Erase or Write voltage: 3600 mV&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Vpp [Programming] Supply Minimum Write/Erase voltage: 11500 mV&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Vpp [Programming] Supply Maximum Write/Erase voltage: 12500 mV&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Typical timeout per single byte/word program: 16 us&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Typical timeout for maximum-size multi-byte program: 0 us&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Typical timeout per individual block erase: 1024 ms&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Typical timeout for full chip erase: 0 ms&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Maximum timeout for byte/word program: 256 us&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Maximum timeout for multi-byte program: 0 us&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Maximum timeout per individual block erase: 8192 ms&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Maximum timeout for chip erase: 0 ms&lt;br/&gt;Device geometry definition:&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Device Size: 4194304 B (4096 KiB, 4 MiB)&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Flash Device Interface Code description: 0x0002 (x8/x16)&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Maximum number of bytes in multi-byte program: 1&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Number of Erase Block Regions within device: 2&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Erase Block Region Information:&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Region 0:&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Erase Block Size: 8192 B (8 KiB)&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Number of Erase Blocks: 8&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Region 1:&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Erase Block Size: 65536 B (64 KiB)&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Number of Erase Blocks: 63&lt;br/&gt;Primary Vendor-Specific Extended Query:&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Major version number: 1&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Minor version number: 1&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Address Sensitive Unlock: Required&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Erase Suspend: Read/write&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Sector Protect: 1 sectors per group&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Sector Temporary Unprotect: Not supported&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Sector Protect/Unprotect Scheme: 29BDS640 mode (Software Command Locking)&lt;/p&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Simultaneous Operation: Not supported&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Burst Mode Type: Supported&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Page Mode Type: Not supported&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ACC (Acceleration) Supply Minimum: 11500 mV&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ACC (Acceleration) Supply Maximum: 12500 mV&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Top/Bottom Sector Flag: Bottom boot device&lt;br/&gt;jtag&amp;gt; endian little&lt;br/&gt;jtag&amp;gt; flashmem 0x20000000 LEDblink.ldr&lt;br/&gt;Chip: AMD Flash&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Manufacturer: ST/Samsung&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Chip: Unknown (ID 0x2257)&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Protected: 0000&lt;br/&gt;program:&lt;br/&gt;flash_unlock_block 0x20000000 IGNORE&lt;/p&gt;&lt;p&gt;block 0 unlocked&lt;br/&gt;flash_erase_block 0x20000000&lt;br/&gt;flash_erase_block 0x20000000 DONE&lt;br/&gt;erasing block 0: 0&lt;br/&gt;addr: 0x200005CC&lt;br/&gt;verify:&lt;br/&gt;addr: 0x200005CC&lt;br/&gt;Done.&lt;br/&gt;jtag&amp;gt; instruction BYPASS&lt;br/&gt;jtag&amp;gt; shift ir&lt;br/&gt;jtag&amp;gt; quit&lt;/p&gt;&lt;p&gt;C:\Program Files\Analog Devices\GNU Toolchain\2010R1\elf\bin&amp;gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="text-decoration: underline;"&gt;Notes:&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;[1] &amp;ndash; Refer to SDP web page in Analog Devices website for up to date information on pricing and availability.&lt;/p&gt;&lt;p&gt;&lt;a class="jive-link-external-small" href="http://www.analog.com/sdp" target="_blank"&gt;http://www.analog.com/sdp&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;[2] - Refer to ICE 100B web page in Analog Devices website for up to date information on pricing and availability.&lt;/p&gt;&lt;p&gt;&lt;a class="jive-link-external-small" href="http://www.analog.com/en/processors-dsp/blackfin/emulator-100/processors/product.html" target="_blank"&gt;http://www.analog.com/en/processors-dsp/blackfin/emulator-100/processors/product.html&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;[3] - While the SDP can be powered over USB, when there are daughter boards attached the daughter boards should normally power the SDP. This is because of the variability of the USB power (+/-10% and current dependent on what other devices share the bus).&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="text-decoration: underline;"&gt;Reference:&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;SDP:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a class="jive-link-external-small" href="http://www.analog.com/sdp" target="_blank"&gt;http://www.analog.com/sdp&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;SDP Wiki:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a class="jive-link-external-small" href="http://wiki.analog.com/resources/eval/sdp" target="_blank"&gt;http://wiki.analog.com/resources/eval/sdp&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Blackfin Processor:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a class="jive-link-external-small" href="http://www.analog.com/blackfin" target="_blank"&gt;http://www.analog.com/blackfin&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Open Source documentation:&amp;#160;&amp;#160;&amp;#160; &lt;a class="jive-link-external-small" href="http://docs.blackfin.uclinux.org/" target="_blank"&gt;http://docs.blackfin.uclinux.org/&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;GCC bare metal documention:&amp;#160; &lt;a class="jive-link-external-small" href="http://docs.blackfin.uclinux.org/doku.php?id=toolchain:bare_metal" target="_blank"&gt;http://docs.blackfin.uclinux.org/doku.php?id=toolchain:bare_metal&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;GCC Files and development:&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a class="jive-link-external-small" href="http://blackfin.uclinux.org/gf/project/toolchain" target="_blank"&gt;http://blackfin.uclinux.org/gf/project/toolchain&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Eclipse:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a class="jive-link-external-small" href="http://www.eclipse.org/" target="_blank"&gt;http://www.eclipse.org/&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="text-decoration: underline;"&gt;Discussion Forums:&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;SDP:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a class="jive-link-community-small" data-containerId="2029" data-containerType="14" data-objectId="2041" data-objectType="14" href="http://ez.analog.com/community/circuits_from_the_lab/sdp"&gt;http://ez.analog.com/community/circuits_from_the_lab/sdp&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Blackfin:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a class="jive-link-community-small" data-containerId="2011" data-containerType="14" data-objectId="2004" data-objectType="14" href="http://ez.analog.com/community/dsp/blackfin-processors"&gt;http://ez.analog.com/community/dsp/blackfin-processors&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Open Source development:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a class="" href="http://ez.analog.com/community/dsp/open-source"&gt;http://ez.analog.com/community/dsp/open-source&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:3ef24320-e2c4-4ae9-a25a-061141304b79] --&gt;</description>
      <category domain="http://ez.analog.com/tags#/?containerType=14&amp;container=2054">gcc</category>
      <category domain="http://ez.analog.com/tags#/?containerType=14&amp;container=2054">examples</category>
      <category domain="http://ez.analog.com/tags#/?containerType=14&amp;container=2054">sdp</category>
      <category domain="http://ez.analog.com/tags#/?containerType=14&amp;container=2054">toolchain</category>
      <category domain="http://ez.analog.com/tags#/?containerType=14&amp;container=2054">bare_metal</category>
      <pubDate>Tue, 14 Feb 2012 18:58:06 GMT</pubDate>
      <author>analogvm-admin@analog-vm.hosted.jivesoftware.com</author>
      <guid>http://ez.analog.com/docs/DOC-1949</guid>
      <dc:date>2012-02-14T18:58:06Z</dc:date>
      <clearspace:dateToText>1 year, 3 months ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>FAQ: GDB commands for newbie.</title>
      <link>http://ez.analog.com/docs/DOC-1964</link>
      <description>&lt;!-- [DocumentBodyStart:d184b315-8661-41a0-b174-b6ffe14b3678] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;strong&gt;Q. &lt;/strong&gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Can you provide some quick GDB commands for a newbie?&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;--------------------------------------------------------------------------&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;strong&gt;A.&lt;/strong&gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;This is a quick FAQ written in a typical debug sequence and is only meant for beginners. I just extracted the contents of the uploaded file in Doc Site:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;strong&gt;&lt;a class="jive-link-external-small" href="http://docs.blackfin.uclinux.org/lib/exe/fetch.php?media=presentations:toolchain:gdb_for_dummies.pdf" target="_blank"&gt;http://docs.blackfin.uclinux.org/lib/exe/fetch.php?media=presentations:toolchain:gdb_for_dummies.pdf&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;strong&gt;Fact Sheet&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;strong&gt;What is GDB?&lt;/strong&gt; &lt;a class="jive-link-external-small" href="http://shop.fsf.org/product/debugging-gdb-gnu-source-level-debugger/" target="_blank"&gt;http://shop.fsf.org/product/debugging-gdb-gnu-source-level-debugger/&lt;/a&gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&amp;ldquo;GDB, the GNU Project debugger, allows you to see what is going on `inside' another program while it executes -- or what another program was doing at the moment it crashed. GDB can do four main kinds of things (plus other things in support of these) to help you catch bugs in the act:&lt;/p&gt;&lt;ul&gt;&lt;li style="text-justify: inter-ideograph; color: black; line-height: normal; text-align: justify; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in;"&gt;Start your program, specifying anything that might affect its behavior.&lt;/li&gt;&lt;li style="text-justify: inter-ideograph; color: black; line-height: normal; text-align: justify; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in;"&gt;Make your program stop on specified conditions.&lt;/li&gt;&lt;li style="text-justify: inter-ideograph; color: black; line-height: normal; text-align: justify; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in;"&gt;Examine what has happened, when your program has stopped.&lt;/li&gt;&lt;li style="text-justify: inter-ideograph; line-height: normal; text-align: justify; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in;"&gt;Change things in your program, so you can experiment with correcting the effects of one bug and go on to learn about another. &amp;#8221;&lt;/li&gt;&lt;/ul&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in;"&gt;&lt;strong&gt;What is GDB Server?&lt;/strong&gt; &lt;a class="jive-link-external-small" href="http://en.wikipedia.org/wiki/Gdbserver" target="_blank"&gt;http://en.wikipedia.org/wiki/Gdbserver&lt;/a&gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&amp;ldquo;gdb-server is a computer program that makes it possible to remotely debug other programs.Running on the same system as the program to be debugged, it allows the GNU Debugger to connect from another system; that is, only the executable to be debugged needs to be resident on the target system, while the source code and a copy of the binary file to be debugged reside on the developer&amp;rsquo;s local computer. The connection can be either TCP or a serial line&amp;#8221;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;strong&gt;What is GDB Proxy?&lt;/strong&gt; &lt;a class="jive-link-external-small" href="https://docs.blackfin.uclinux.org/doku.php?id=toolchain:debug:gdbproxy" target="_blank"&gt;https://docs.blackfin.uclinux.org/doku.php?id=toolchain:debug:gdbproxy&lt;/a&gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"&gt;When debugging under the gdb environment, the debugger needs to know what target to connect to. This target is a tiny server daemon, typically running on the host computer. It is equivalent to a gdbserver, although it does not run on the target hardware. This server is called gdbproxy and is derived from rproxy-0.7.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"&gt;&lt;strong&gt;What is Eclipse?&lt;/strong&gt; &lt;a class="jive-link-external-small" href="http://en.wikipedia.org/wiki/Eclipse_(software)" target="_blank"&gt;http://en.wikipedia.org/wiki/Eclipse_(software)&lt;/a&gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Eclipse is a multi-language software development environment comprising an integrated development environment (IDE) and an extensible plug-in system. It is written mostly in Java and can be used to develop applications in Java and, by means of various plug-ins, other programming languages including Ada, C, C++, COBOL, Perl, PHP, Python, R. Ruby (including Ruby on Rails framework), Scala, Clojure, and Scheme.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;strong&gt;What is GDB&lt;/strong&gt;&lt;strong&gt;/mi&lt;/strong&gt; &lt;strong&gt;Interface?&lt;/strong&gt; &lt;a class="jive-link-external-small" href="http://sourceware.org/gdb/onlinedocs/gdb/GDB_002fMI.html#GDB_002fMI" target="_blank"&gt;http://sourceware.org/gdb/onlinedocs/gdb/GDB_002fMI.html#GDB_002fMI&lt;/a&gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;GDB/MI is a line based machine oriented text interface to GDB and is activated by specifying using the --interpreter command line option (see Mode Options). It is specifically intended to support the development of systems which use the debugger as just one small component as a larger system {Eclipse}.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;strong&gt;Lets learn from a simple no-hardware code as below. All following gdb commands are sequentially tested&amp;#8230;&lt;/strong&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="width: 39.77%; height: 47px; border: #000000 1px solid;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align="center" style="border:1px solid black;border: #000000 1px solid;text-align: left;background-color: #6690bc;" valign="middle"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;Sample code for debugging&lt;/strong&gt;&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: #000000 1px solid;"&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;int global_data = 1111;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;void func1();&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;void func2();&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;int main(void);&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;int main(void)&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;{&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; func1();&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return 0;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;}&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;void func1()&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;{&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; int local_data = 1234;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; global_data = 5678;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; func2();&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;}&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;void func2()&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;{&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;}&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="width: 54.92%; height: 4445%; border: #000000 1px solid;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align="center" style="border:1px solid black;border: #000000 1px solid;background-color: #6690bc;" valign="middle"&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;&lt;strong&gt;Start the GDB first:&lt;/strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: #000000 1px solid;"&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;C:\Program Files\Analog Devices\GNU Toolchain\2010R1\elf\bin&amp;gt;bfin-elf-gdb.exe gdb_debugging&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;GNU gdb 6.6&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Copyright (C) 2006 Free Software Foundation, Inc.&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions.&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Type "show copying" to see the conditions.&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;There is absolutely no warranty for GDB.&amp;#160; Type "show warranty" for details.&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;This GDB was configured as "--host=i386-mingw32msvc --target=bfin-elf"...&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;strong&gt;(gdb) target remote localhost:2000&lt;/strong&gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Remote debugging using localhost:2000&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;main () at ../src/gdb_debugging.c:9&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;9&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; func1();&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;strong&gt;(gdb) load&lt;/strong&gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Loading section .rodata, size 0x8 lma 0xff800000&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Loading section .eh_frame, size 0x4 lma 0xff800008&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Loading section .ctors, size 0x8 lma 0xff80000c&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Loading section .dtors, size 0x8 lma 0xff800014&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Loading section .jcr, size 0x4 lma 0xff80001c&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Loading section .data, size 0x40c lma 0xff800020&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Loading section .text, size 0x510 lma 0xffa00000&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Loading section .init, size 0x12 lma 0xffa00510&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Loading section .fini, size 0xe lma 0xffa00522&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Start address 0xffa00000, load size 2396&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Transfer rate: 140941 bits/sec, 266 bytes/write.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="width: 54.81%; height: 5361%; border: #000000 1px solid;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align="center" style="border:1px solid black;border: #000000 1px solid;background-color: #6690bc;" valign="middle"&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;&lt;strong&gt;Insert some break points &amp;ndash; at the entry of each function:&lt;/strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: #000000 1px solid;"&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;strong&gt;(gdb) break main&lt;/strong&gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Breakpoint 1 at 0xffa00274: file ../src/gdb_debugging.c, line 9.&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;strong&gt;(gdb) break func1&lt;/strong&gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Breakpoint 2 at 0xffa00284: file ../src/gdb_debugging.c, line 17.&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;strong&gt;(gdb) break func2&lt;/strong&gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Breakpoint 3 at 0xffa002ac: file ../src/gdb_debugging.c, line 28.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="width: 40%; height: 40%; border: #000000 1px solid;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align="center" style="border:1px solid black;border: #000000 1px solid;background-color: #6690bc;" valign="middle"&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;&lt;strong&gt;Run the code and it should hit breakpoints.&lt;/strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: #000000 1px solid;"&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;strong&gt;(gdb) continue&lt;/strong&gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Continuing.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Breakpoint 1, main () at ../src/gdb_debugging.c:9&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;9&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; func1();&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;strong&gt;(gdb) continue&lt;/strong&gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Continuing.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Breakpoint 2, func1 () at ../src/gdb_debugging.c:17&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;17&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; int local_data = 1234;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="width: 61.4%; height: 5337%; border: #000000 1px solid;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align="center" style="border:1px solid black;border: #000000 1px solid;background-color: #6690bc;" valign="middle"&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;Let&amp;rsquo;s play with breakpoints. See the information of the breakpoints, how it can be disabled.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: #000000 1px solid;"&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;strong&gt;(gdb) info breakpoints&lt;/strong&gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Num Type&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Disp Enb Address&amp;#160;&amp;#160;&amp;#160; What&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;1&amp;#160;&amp;#160; breakpoint&amp;#160;&amp;#160;&amp;#160;&amp;#160; keep y&amp;#160;&amp;#160; 0xffa00274 in main at ../src/gdb_debugging.c:9&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; breakpoint already hit 1 time&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;2&amp;#160;&amp;#160; breakpoint&amp;#160;&amp;#160;&amp;#160;&amp;#160; keep y&amp;#160;&amp;#160; 0xffa00284 in func1 at ../src/gdb_debugging.c:17&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; breakpoint already hit 1 time&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;3&amp;#160;&amp;#160; breakpoint&amp;#160;&amp;#160;&amp;#160;&amp;#160; keep y&amp;#160;&amp;#160; 0xffa002ac in func2 at ../src/gdb_debugging.c:28&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;strong&gt;(gdb) disable 2&lt;/strong&gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;strong&gt;(gdb) info breakpoints&lt;/strong&gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Num Type&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Disp Enb Address&amp;#160;&amp;#160;&amp;#160; What&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;1&amp;#160;&amp;#160; breakpoint&amp;#160;&amp;#160;&amp;#160;&amp;#160; keep y&amp;#160;&amp;#160; 0xffa00274 in main at ../src/gdb_debugging.c:9&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; breakpoint already hit 1 time&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;2&amp;#160;&amp;#160; breakpoint&amp;#160;&amp;#160;&amp;#160;&amp;#160; keep n&amp;#160;&amp;#160; 0xffa00284 in func1 at ../src/gdb_debugging.c:17&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; breakpoint already hit 1 time&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;3&amp;#160;&amp;#160; breakpoint&amp;#160;&amp;#160;&amp;#160;&amp;#160; keep y&amp;#160;&amp;#160; 0xffa002ac in func2 at ../src/gdb_debugging.c:28&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="width: 40%; height: 40%; border: #000000 1px solid;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align="center" style="border:1px solid black;border: #000000 1px solid;text-align: left;background-color: #6690bc;" valign="middle"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;&lt;strong&gt;Where are we now?&lt;/strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: #000000 1px solid;"&gt;&lt;strong&gt;gdb) where&lt;/strong&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;#0&amp;#160; func1 () at ../src/gdb_debugging.c:17&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;#1&amp;#160; 0xffa00278 in main () at ../src/gdb_debugging.c:9&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="width: 40%; border: #000000 1px solid;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align="center" style="border:1px solid black;border: #000000 1px solid;background-color: #6690bc;" valign="middle"&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;&lt;strong&gt;Single stepping the code&amp;#8230;&lt;/strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: #000000 1px solid;"&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;strong&gt;(gdb) step&lt;/strong&gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;19&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; global_data = 5678;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="width: 40%; height: 40%; border: #000000 1px solid;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align="center" style="border:1px solid black;border: #000000 1px solid;background-color: #6690bc;" valign="middle"&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;Let&amp;rsquo;s print the local variable..&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: #000000 1px solid;"&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;strong&gt;(gdb) info local&lt;/strong&gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;local_data = 1234&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="width: 40%; height: 40%; border: #000000 1px solid;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align="center" style="border:1px solid black;border: #000000 1px solid;background-color: #6690bc;" valign="middle"&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;And the global variable&amp;#8230;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: #000000 1px solid;"&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;strong&gt;(gdb) print/x global_data&lt;/strong&gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;$1 = 0x457&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="width: 60%; height: 60%; border: #000000 1px solid;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align="center" style="border:1px solid black;border: #000000 1px solid;background-color: #6690bc;" valign="middle"&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;Check out the dis-assembly&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: #000000 1px solid;"&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;strong&gt;(gdb) disassemble 0xffa00280 0xffa002a0&lt;/strong&gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Dump of assembler code from 0xffa00280 to 0xffa002a0:&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;0xffa00280 &amp;lt;func1+0&amp;gt;:&amp;#160;&amp;#160; LINK 0x10;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /* (16) */&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;0xffa00284 &amp;lt;func1+4&amp;gt;:&amp;#160;&amp;#160; R0 = 0x4d2 (X);&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /*&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; R0=0x0x4d2(1234) */&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;0xffa00288 &amp;lt;func1+8&amp;gt;:&amp;#160;&amp;#160; [FP -0x4] = R0;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;0xffa0028a &amp;lt;func1+10&amp;gt;:&amp;#160; P2.H = 0xff80;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /* (-128)&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; P2=0x0xff800000&amp;lt;_global_impure_ptr&amp;gt; */&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;0xffa0028e &amp;lt;func1+14&amp;gt;:&amp;#160; P2.L = 0x24;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /* ( 36)&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; P2=0x0xff800024&amp;lt;global_data&amp;gt; */&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;0xffa00292 &amp;lt;func1+18&amp;gt;:&amp;#160; R0 = 0x162e (X);&amp;#160;&amp;#160;&amp;#160;&amp;#160; /*&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; R0=0x0x162e(5678) */&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;0xffa00296 &amp;lt;func1+22&amp;gt;:&amp;#160; [P2] = R0;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;0xffa00298 &amp;lt;func1+24&amp;gt;:&amp;#160; CALL 0x0xffa002a4 &amp;lt;func2&amp;gt;;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;0xffa0029c &amp;lt;func1+28&amp;gt;:&amp;#160; UNLINK;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;End of assembler dump.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="width: 40%; height: 40%; border: #000000 1px solid;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align="center" style="border:1px solid black;border: #000000 1px solid;background-color: #6690bc;" valign="middle"&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;&lt;strong&gt;We run again&amp;#8230;&lt;/strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: #000000 1px solid;"&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;strong&gt;(gdb) continue&lt;/strong&gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Continuing.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Breakpoint 3, func2 () at ../src/gdb_debugging.c:28&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;28&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="width: 44.78%; height: 5361%; border: #000000 1px solid;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align="center" style="border:1px solid black;border: #000000 1px solid;background-color: #6690bc;" valign="middle"&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;Look at the back-trace info of function calls and frame info.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: #000000 1px solid;"&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;strong&gt;(gdb) bt&lt;/strong&gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;#0&amp;#160; func2 () at ../src/gdb_debugging.c:28&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;#1&amp;#160; 0xffa0029c in func1 () at ../src/gdb_debugging.c:21&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;#2&amp;#160; 0xffa00278 in main () at ../src/gdb_debugging.c:9&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;strong&gt;(gdb) backtrace full&lt;/strong&gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;#0&amp;#160; func2 () at ../src/gdb_debugging.c:28&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;No locals.&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;#1&amp;#160; 0xffa0029c in func1 () at ../src/gdb_debugging.c:21&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; local_data = 1234&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;#2&amp;#160; 0xffa00278 in main () at ../src/gdb_debugging.c:9&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;No locals.&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;strong&gt;(gdb) frame&lt;/strong&gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;#0&amp;#160; func2 () at ../src/gdb_debugging.c:28&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;28&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="width: 40%; height: 40%; border: #000000 1px solid;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align="center" style="border:1px solid black;border: #000000 1px solid;background-color: #6690bc;" valign="middle"&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;Core register information...&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: #000000 1px solid;"&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;strong&gt;(gdb) info registers&lt;/strong&gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;r0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x162e&amp;#160;&amp;#160; 5678&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;r1&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0xff80042c&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -8387540&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;r2&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0A&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;r3&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;r4&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x8000&amp;#160;&amp;#160; 32768&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;r5&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x989680 10000000&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;r6&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;r7&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;p0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0xff800178&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0xff800178&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;p1&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x1&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x1&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;p2&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0xff800024&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0xff800024&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;p3&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x3f1ff80&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x3f1ff80&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;p4&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x3f22148&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x3f22148&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;p5&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0xffc03060&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0xffc03060&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;sp&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0xffb00f9c&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0xffb00f9c&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;fp&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0xffb00f9c&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0xffb00f9c&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;i0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0xffe01300&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -2092288&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;i1&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0xffe00300&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -2096384&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;i2&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x7d801048&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 2105544776&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;i3&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x7f900840&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 2140145728&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;m0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;m1&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;m2&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0xff807ffc&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -8355844&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;m3&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;b0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x7fa7e73e&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 2141710142&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;b1&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0xb5025ff6&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -1258135562&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;b2&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x5b4597f7&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 1531287543&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;b3&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x4c3dac51&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 1279110225&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;l0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;l1&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;l2&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;l3&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;a0x&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;a0w&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x3200000&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 52428800&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;a1x&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;a1w&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x2b53&amp;#160;&amp;#160; 11091&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;astat&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x2001025&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 33558565&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;rets&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0xffa0029c&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0xffa0029c &amp;lt;func1+28&amp;gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;lc0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;lt0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0xffa0005c&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -6291364&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;lb0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0xffa0005d&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -6291363&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;lc1&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;lt1&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0xffa00366&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -6290586&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;lb1&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0xffa00367&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -6290585&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;cycles&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0xa07d46a4&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -1602402652&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;cycles2&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;usp&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0xffb00ff4&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0xffb00ff4&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;seqstat&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;syscfg&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x32&amp;#160;&amp;#160;&amp;#160;&amp;#160; 50&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;reti&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0xffa000e8&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -6291224&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;retx&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0xffa004d6&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -6290218&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;retn&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x986b21f&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 159822367&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;rete&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0xffa002ac&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -6290772&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;pc&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0xffa002ac&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0xffa002ac &amp;lt;func2+8&amp;gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;cc&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x1&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 1&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;text_addr&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;text_end_addr&amp;#160; 0x0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;data_addr&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;fdpic_exec&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;fdpic_interp&amp;#160;&amp;#160; 0x0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; line-height: normal; text-align: justify;"&gt;ipend&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="width: 40%; height: 40%; border: #000000 1px solid;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align="center" style="border:1px solid black;border: #000000 1px solid;background-color: #6690bc;" valign="middle"&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;Set some global data&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: #000000 1px solid;"&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;strong&gt;(gdb) set global_data = 9999&lt;/strong&gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;strong&gt;(gdb) print global_data&lt;/strong&gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;$2 = 9999&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;GDB/MI interface is meant for IDDE such as Eclipse. There are of course some simple useful commands.&lt;/strong&gt; &lt;strong&gt;But beware &amp;ndash; the console out seems terribly bad, when these commands are invoked directly.&lt;/strong&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="width: 56.45%; height: 60%; border: #000000 1px solid;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align="center" style="border:1px solid black;border: #000000 1px solid;background-color: #6690bc;" valign="middle"&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;Setting up as usual.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: #000000 1px solid;"&gt;&lt;p&gt;C:\Program Files\Analog Devices\GNU Toolchain\2010R1\elf\bin&amp;gt;bfin-elf-gdb.exe --interpreter=mi gdb_debugging&lt;/p&gt;&lt;p&gt;~"GNU gdb 6.6\n"&lt;/p&gt;&lt;p&gt;~"Copyright (C) 2006 Free Software Foundation, Inc.\n"&lt;/p&gt;&lt;p&gt;~"GDB is free software, covered by the GNU General Public License, and you are\n"&lt;/p&gt;&lt;p&gt;~"welcome to change it and/or distribute copies of it under certain conditions.\n"&lt;/p&gt;&lt;p&gt;~"Type \"show copying\" to see the conditions.\n"&lt;/p&gt;&lt;p&gt;~"There is absolutely no warranty for GDB.&amp;#160; Type \"show warranty\" for details.\n"&lt;/p&gt;&lt;p&gt;~"This GDB was configured as \"--host=i386-mingw32msvc --target=bfin-elf\"...\n"&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;(gdb)&lt;/p&gt;&lt;p&gt;target remote localhost:2000&lt;/p&gt;&lt;p&gt;&amp;amp;"target remote localhost:2000\n"&lt;/p&gt;&lt;p&gt;~"Remote debugging using localhost:2000\n"&lt;/p&gt;&lt;p&gt;~"main () at ../src/gdb_debugging.c:9\n"&lt;/p&gt;&lt;p&gt;~"9\t\tfunc1();\n"&lt;/p&gt;&lt;p&gt;^done&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="width: 60%; border: #000000 1px solid;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align="center" style="border:1px solid black;border: #000000 1px solid;text-align: left;background-color: #6690bc;" valign="middle"&gt;&lt;p&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;&lt;strong&gt;Dis-assembly&lt;/strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: #000000 1px solid;"&gt;&lt;p&gt;(gdb)&lt;/p&gt;&lt;p&gt;-data-disassemble -f gdb_debugging.c -l 15 -n 3 -- 0&lt;/p&gt;&lt;p&gt;^done,asm_insns=&lt;/p&gt;&lt;p&gt;[{address="0xffa00280",func-name="func1",offset="0",inst="LINK 0x10;\t\t/* (16) */"},&lt;/p&gt;&lt;p&gt;{address="0xffa00284",func-name="func1",offset="4",inst="R0 = 0x4d2 (X);\t\t/*\t\tR0=0x0x4d2(1234) */"},&lt;/p&gt;&lt;p&gt;{address="0xffa00288",func-name="func1",offset="8",inst="[FP -0x4] = R0;"}]&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="width: 80%; height: 80%; border: #000000 1px solid;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align="center" style="border:1px solid black;border: #000000 1px solid;background-color: #6690bc;" valign="middle"&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;&lt;strong&gt;Reading and writing data&lt;/strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: #000000 1px solid;"&gt;&lt;p&gt;(gdb)&lt;/p&gt;&lt;p&gt;-data-read-memory 0xff800000 x 1 3 3&lt;/p&gt;&lt;p&gt;^done,addr="0xff800000",nr-bytes="9",total-bytes="9",next-row="0xff800003",prev-row="0xff7ffffd",next-page="0xff800009",prev-page="0xff7ffff7",&lt;/p&gt;&lt;p&gt;memory=[{addr="0xff800000",data=["0x00","0x00","0x00"]},&lt;/p&gt;&lt;p&gt;{addr="0xff800003",data=["0x00","0x43","0x00"]},&lt;/p&gt;&lt;p&gt;{addr="0xff800006",data=["0x00","0x00","0xff"]}]&lt;/p&gt;&lt;p&gt;(gdb)&lt;/p&gt;&lt;p&gt;-data-write-memory 0xff800000 x 1 0x11&lt;/p&gt;&lt;p&gt;^done&lt;/p&gt;&lt;p&gt;(gdb)&lt;/p&gt;&lt;p&gt;-data-write-memory 0xff800001 x 1 0x22&lt;/p&gt;&lt;p&gt;^done&lt;/p&gt;&lt;p&gt;(gdb)&lt;/p&gt;&lt;p&gt;-data-write-memory 0xff800001 x 1 0x33&lt;/p&gt;&lt;p&gt;^done&lt;/p&gt;&lt;p&gt;(gdb)&lt;/p&gt;&lt;p&gt;-data-read-memory 0xff800000 x 1 3 3&lt;/p&gt;&lt;p&gt;^done,addr="0xff800000",nr-bytes="9",total-bytes="9",next-row="0xff800003",prev-row="0xff7ffffd",next-page="0xff800009",prev-page="0xff7ffff7",&lt;/p&gt;&lt;p&gt;memory=[{addr="0xff800000",data=["0x11","0x33","0x00"]},&lt;/p&gt;&lt;p&gt;{addr="0xff800003",data=["0x00","0x43","0x00"]},&lt;/p&gt;&lt;p&gt;{addr="0xff800006",data=["0x00","0x00","0xff"]}]&lt;/p&gt;&lt;p&gt;(gdb)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:d184b315-8661-41a0-b174-b6ffe14b3678] --&gt;</description>
      <pubDate>Tue, 14 Feb 2012 18:57:14 GMT</pubDate>
      <author>analogvm-admin@analog-vm.hosted.jivesoftware.com</author>
      <guid>http://ez.analog.com/docs/DOC-1964</guid>
      <dc:date>2012-02-14T18:57:14Z</dc:date>
      <clearspace:dateToText>1 year, 3 months ago</clearspace:dateToText>
      <clearspace:replyCount>9</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>FAQ: How do I re-use projects built in VDSP in a GCC Bare metal environment?</title>
      <link>http://ez.analog.com/docs/DOC-1962</link>
      <description>&lt;!-- [DocumentBodyStart:5d9056e0-2454-4f65-ab92-3162dcddbbf5] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;strong&gt;Q. &lt;/strong&gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;How do I re-use projects built in VDSP in a GCC Bare metal environment?&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;--------------------------------------------------------------------------------------&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;strong&gt;A.&lt;/strong&gt;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;The ELF output format that Visual &lt;acronym&gt;DSP++ toolchain&lt;/acronym&gt; produces is not compatible with the &lt;acronym&gt;GNU&lt;/acronym&gt; toolchain output format. Therefore one cannot reuse executables or libraries built using one toolchain, with the other, unless the software is re built from scratch.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;There are more examples and libraries built using the VDSP toolchain, compared to the GCC bare metal toolchain. This includes several peripheral device drivers and the various system services. Often one has to re-build these libraries or write from scratch, in order to use with GCC.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;span style="text-decoration: underline;"&gt;Quick answer:&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Generate opcodes of the application, and use it directly from SDRAM.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;span style="text-decoration: underline;"&gt;Detailed answer:&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Loader files or LDR files are specific formats supported by the on-chip BOOTROM in Blackfin, for booting standalone applications, often from a non-volatile boot source such as the parallel flash. The advantage of this format is that both VDSP &amp;amp; GCC toolchain produces the end LDR file in exactly the same format required by BOOTROM. If a user has an LDR file built via VDSP, it can be feasibly used in a GCC environment, by making use of direct code execution method &amp;amp; the BOOTROM callable APIs.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Boot source can either be a parallel flash or SDRAM. In case of parallel flash, user must create an LDR file using the splitter tool and burn it before actually using it in application. However, code execution from flash is considerably slower.&amp;#160; When the boot source is an SDRAM, execution can become much faster. If the boot stream is residing in SDRAM, there is no real LDR programming required, other than including the file in the application. For creating the LDR image for direct execution, one must use the Splitter tool in Visual DSP++. This tool though it generates an LDR file, the file comprises of the opcodes of the particular program.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Now, since we can generate the opcodes, we actually don&amp;rsquo;t need the BOOTROM or SDRAM boot either. We could just perform a jump to the specific location.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;BF527 is used as an example for the below for illustration. User needs to decide on the memory management carefully between the calling application, bootrom (in case used) and the called application. Additionally, the registers must be properly stored and re-loaded by the calling application. The explanations here are only intended for illustrating the concept and need not be the best method in all cases; users are expected to read the Visual DSP++ Loader Manual, as well as the System Reset and Booting chapter in Hardware Reference Manual for in depth information. Throught the discussion we are assuming that the calling application is the one built with GCC toolchain, and the called application is the one pre-built using VDSP.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;span style="text-decoration: underline;"&gt;Preparing the application:&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;1. If running from SDRAM directly without involving BOOTROM:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; margin-left: 0.5in; text-align: justify; mso-add-space: auto;"&gt;Ensure that all code is mapped to SDRAM, Memory segment should be ROM type.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; margin-left: 0.5in; text-align: justify; mso-add-space: auto;"&gt;MEM_SDRAM0 {&amp;#160; TYPE(ROM) WIDTH(8) START(0x00000010) END(0x0010FFFF) }&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;2. If running from SDRAM via BOOTOM, Include a first boot block like this:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; margin-left: 0.5in; text-align: justify; mso-add-space: auto;"&gt;.section bootblock;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; margin-left: 0.5in; text-align: justify; mso-add-space: auto;"&gt;.global _firstblock;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; margin-left: 0.5in; text-align: justify; mso-add-space: auto;"&gt;.byte_firstblock[16]=&amp;#160; 0x06,0xD0,0x5B,0xAD,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; margin-left: 0.5in; text-align: justify; mso-add-space: auto;"&gt;Changes in ldf:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; margin-left: 0.5in; text-align: justify; mso-add-space: auto;"&gt;RESOLVE(_firstblock,0x00000010)&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; margin-left: 0.5in; text-align: justify; mso-add-space: auto;"&gt;RESOLVE(_main,0x00000020)&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; margin-left: 0.5in; text-align: justify; mso-add-space: auto;"&gt;Ensure that all code is mapped to SDRAM&amp;amp; Memory segment should be in ROM type.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; margin-left: 0.5in; text-align: justify; mso-add-space: auto;"&gt;MEM_SDRAM0 { TYPE(ROM) WIDTH(8) START(0x00000010) END(0x0010FFFF) }&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; margin-left: 0.5in; text-align: justify; mso-add-space: auto;"&gt;.&lt;/p&gt;&lt;p&gt;3. If running from Flash, Include a first boot block like this:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt 0.5in; line-height: normal; mso-layout-grid-align: none;"&gt;.section bootblock;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt 0.5in; line-height: normal; mso-layout-grid-align: none;"&gt;.global _firstblock;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt 0.5in; line-height: normal; mso-layout-grid-align: none;"&gt;.var _firstblock[4] = 0xAD7BD006,0x20000020, 0x00000010, 0x00000010;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; margin-left: 0.5in; text-align: justify; mso-add-space: auto;"&gt;Changes in ldf:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; margin-left: 0.5in; text-align: justify; mso-add-space: auto;"&gt;RESOLVE(_firstblock,0x20000000)&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; margin-left: 0.5in; text-align: justify; mso-add-space: auto;"&gt;RESOLVE(_main,0x20000020)&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; margin-left: 0.5in; text-align: justify; mso-add-space: auto;"&gt;Ensure that all code is mapped to Flash-ROM type (Async space). Burn this LDR using Flash programming tools.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;span style="text-decoration: underline;"&gt;Called Application - exit:&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Since we are actually intending a return from the called application, it could just hardcode an address and return like this:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; asm("P0.L = LO(0xFFA04000);");&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; asm("P0.H = HI(0xFFA04000);");&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; asm("JUMP (P0);");&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Note that it is the responsibility of the called application to terminate Interrupts, DMA or anything with consequence to the calling application.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&lt;span style="text-decoration: underline;"&gt;Loader properties:&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;The Loader exe (elf-loader) can have the following options to generate the splitter output:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&amp;#8216;elfloader.exe" .\Debug\LED_BLink_BF527_EZ-KIT.dxe -romsplitter -f ASCII -Width 16 -maskaddr 29 -si-revision 0.2 -proc ADSP-BF527&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Use Project Options &amp;ndash; Splitter to define the correct properties. When using Flash boot, the output can be in intel hex and when using the SDRAM, the output can be in ASCII format.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;When using ASCII format, the generated file contains a sequence such as this:&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;00000010&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;000000DE&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;00010101&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;00000000&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;06&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;D0&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;5B&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;AD&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&amp;#160; ...&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;We only need to take the byte data stream, as the initial data is meant for post processing tools. So one can delete the following:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;00000010 /* 32-bit logical address field */&lt;/p&gt;&lt;p&gt;000000DE /* 32-bit logical length field */&lt;/p&gt;&lt;p&gt;00010101 /* 32-bit control word: 2x address multiply 02 bytes logical width, 01 byte physical width */&lt;/p&gt;&lt;p&gt;00000000 /* reserved */&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Use -meminit with basiccrt.s file for initializing data memory sections specified in the LDF.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="text-decoration: underline;"&gt;Using the pre-built LDRs with GCC:&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Use additional linker settings to map using a new use Loader Script: -T ldscript.ld -Wl,-Map=Linker.map&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;When the opcode are used directly, define the locations such that the application starts exactly at the location intended when preparing the LDR:&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;MEM_SDRAM&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : ORIGIN = 0x00000010, LENGTH = 1* 1024 * 1024&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Since the loaded application is returning to a hardcoded instruction address, make sure that this location has the instructions for returning back to the calling application.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&amp;#160; MEM_L1_CODE_CACHE : ORIGIN = 0xFFA04000, LENGTH = 0xC000&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160; .textspecial&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; :&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160; {&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160; *(.textspecial .textspecial.*)&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&amp;#160; } &amp;gt;MEM_L1_CODE_CACHE&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;When the LDR is already burnt to Flash, a direct jump to bootrom callable location 0xef000008 will do. When the LDR or application opcodes are residing in SDRAM, one would need to do:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&lt;strong&gt;__attribute__&lt;/strong&gt;((__section__(".sdram.data")))&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&lt;strong&gt;unsigned&lt;/strong&gt; &lt;strong&gt;char&lt;/strong&gt; ldr_dat [] =&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;{&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;#include&lt;/strong&gt; "led_blink.ldr"&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;};&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;SDRAM Controller must be programmed before using the SDRAM. Pre-boot inside bootrom can do this when using SDRAM-boot or user can also program like below:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; *pEBIU_SDRRC&amp;#160; = 0x0407;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; *pEBIU_SDBCTL = 0x25;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; *pEBIU_SDGCTL = 0x0091998D;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;Below are some implementations for calling the application and returning from called application gracefully:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;ret_from_boot() &amp;ndash; function for returning from boot-rom to the . It should be hardcoded at 0xFFA04000.&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;perform_boot_bfrom() - function for jumping in to boot-rom for SDRAM boot.&lt;/p&gt;&lt;p style="text-justify: inter-ideograph; text-align: justify;"&gt;perform_boot_direct() - function for jumping in to SDRAM location to execute code directly.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="width: 75.27%; height: 50%; border: #000000 1px solid;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align="center" style="border:1px solid black;border: #000000 1px solid;background-color: #6690bc;" valign="middle"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;Sample house-keeping routines in GCC &lt;/strong&gt;&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: #000000 1px solid;"&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&lt;strong&gt;unsigned&lt;/strong&gt; &lt;strong&gt;int&lt;/strong&gt;&amp;#160; sp_val;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&lt;strong&gt;__attribute__&lt;/strong&gt;((__section__(".&lt;span style="text-decoration: underline;"&gt;textspecial&lt;/span&gt;")))&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&lt;strong&gt;void&lt;/strong&gt; &lt;strong&gt;ret_from_boot&lt;/strong&gt;()&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;{&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&lt;strong&gt;asm&lt;/strong&gt;(" P0.L = _sp_val;&amp;#160; \&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; P0.H = _sp_val;&amp;#160; \&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; R0 = [P0];&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; \&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SP = R0;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; \&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; FP = [SP++];&amp;#160;&amp;#160;&amp;#160; \&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; RETS = [SP++];&amp;#160; \&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (R7:0, P5:0) = [ SP ++ ] \&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; RETS = R0;");&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;}&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&lt;strong&gt;__attribute__&lt;/strong&gt;((__section__(".&lt;span style="text-decoration: underline;"&gt;textspecial&lt;/span&gt;")))&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&lt;strong&gt;void&lt;/strong&gt; &lt;strong&gt;perform_boot_bfrom&lt;/strong&gt;()&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;{&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&lt;strong&gt;asm&lt;/strong&gt;("&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; UNLINK;\&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; LINK 64;\&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [ -- SP] = (R7:0, P5:0) \&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [ -- SP] = RETS; \&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [ -- SP] = FP;&amp;#160;&amp;#160;&amp;#160; \&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; P0.L = (_sp_val);\&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; P0.H = (_sp_val);\&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; R0 = SP;\&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [P0] = R0;\&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; R0.L = (0x6000);\&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; R0.H = (0xFF90);\&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SP = R0;\&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; FP = R0;\&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; R0.H = 0x0000;\&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; R0.L = 0x0010;\&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; R1 = 0;\&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; R2 = 0;\&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; P0.H = 0xEF00;\&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; P0.L = 0x0008;\&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; JUMP (P0);");&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;}&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&lt;strong&gt;__attribute__&lt;/strong&gt;((__section__(".&lt;span style="text-decoration: underline;"&gt;textspecial&lt;/span&gt;")))&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&lt;strong&gt;void&lt;/strong&gt; &lt;strong&gt;perform_boot_direct&lt;/strong&gt;()&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;{&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&lt;strong&gt;asm&lt;/strong&gt;("&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; UNLINK;\&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; LINK 64;\&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [ -- SP] = (R7:0, P5:0) \&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [ -- SP] = RETS; \&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [ -- SP] = FP;&amp;#160;&amp;#160;&amp;#160; \&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; P0.L = (_sp_val);\&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; P0.H = (_sp_val);\&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; R0 = SP;\&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [P0] = R0;\&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; R0.L = (0x6000);\&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; R0.H = (0xFF90);\&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SP = R0;\&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; FP = R0;\&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; P0.H = 0x0000;\&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; P0.L = 0x0020;\&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; JUMP (P0);");&lt;/p&gt;&lt;p style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none;"&gt;}&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="text-decoration: underline;"&gt;Using symbols from VDSP generated dxe:&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;To run code without symbols is tough, so the following might help in that case:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;1. Generate symbol table via elfdump -n .symtab test.dxe&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;2. Reuse the VDSP generated symbols by directly defining values of these symbols in GCC LDSCRIPT.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;3. Reuse the symbols (global data or functions) correctly as defined in the VDSP project.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;4. Return from VDSP app via RTS.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;One could extract just few required user-level symbols from the appropriate file mentioned in symbol table. Even then registers must be properly preserved.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="width: 55.46%; height: 50%; border: #000000 1px solid;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align="center" style="border:1px solid black;border: #000000 1px solid;background-color: #6690bc;" valign="middle"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;Example code calling function label&lt;/strong&gt;&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: #000000 1px solid;"&gt;&lt;p&gt; perform_store();&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt; load_vdsp_app(); // defined in ldscript - &lt;span style="font-size: 10pt;"&gt;PROVIDE (_test_led_func = 0x20);&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&amp;#160; &lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="width: 55.12%; height: 50%; border: #000000 1px solid;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align="center" style="border:1px solid black;border: #000000 1px solid;background-color: #6690bc;" valign="middle"&gt;&lt;span style="color: #ffffff;"&gt;operations required before calling application&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: #000000 1px solid;"&gt;__attribute__((__section__(".textspecial")))&lt;br/&gt;void perform_store()&lt;br/&gt;{&lt;br/&gt;asm("&amp;#160;&amp;#160; UNLINK;\&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; LINK 64;\&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [ -- SP] = (R7:0, P5:0) \&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [ -- SP] = RETS; \&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [ -- SP] = FP; \&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; P0.L = (_sp_val);\&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; P0.H = (_sp_val);\&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; R0 = SP;\&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [P0] = R0;\&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; R0.L = (0x6000);\&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; R0.H = (0xFF90);\&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SP = R0;\&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; FP = R0;\&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; RTS;");\&lt;br/&gt;}&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;div&gt; &lt;/div&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:5d9056e0-2454-4f65-ab92-3162dcddbbf5] --&gt;</description>
      <pubDate>Tue, 14 Feb 2012 18:55:17 GMT</pubDate>
      <author>analogvm-admin@analog-vm.hosted.jivesoftware.com</author>
      <guid>http://ez.analog.com/docs/DOC-1962</guid>
      <dc:date>2012-02-14T18:55:17Z</dc:date>
      <clearspace:dateToText>1 year, 3 months ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>How to Transfer Data Across Two EZ-KITs via USB</title>
      <link>http://ez.analog.com/docs/DOC-1886</link>
      <description>&lt;!-- [DocumentBodyStart:5d23ca2f-f70a-4cca-a063-01831b89c828] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;The attached code sets up two ADSP-BF527 EZ-KITs with one acting as&amp;#160; a USB Device and the other as a USB Host. This has been tested on revision 0.2 silicon with VisualDSP++ 5.0 Update 9. Application data transfer happens through BULK IN and OUT endpoints.You need to run the device first and then the host.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;The device code uses ADI Bulk Class and has two BULK endpoints for data in and data out. The descriptors are programmed through the VSBulkConfigure() function in the adi_usb_bulkadi.c file when the application calls the command: ADI_USB_CMD_CLASS_CONFIGURE.&amp;#160; The Device has to wait for a command block from the host to call the right API for write or read.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;The Device has the opened endpoints information, but the host doesn't. The following may be employed to retrieve this data at the Host end:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;1.&amp;#160; The Host reuses the known/published Endpoint IDs to communicate with the Device:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-left:.5in;"&gt;g_ReadEpID&amp;#160; = 0x5;&lt;br/&gt; g_WriteEpID = 0x6;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;2.&amp;#160; It is however possible to retrieve the complete descriptor info, including which endpoints are configured at the Device. During enumeration, the event adi_usb_otg_SetConfiguration(1) is called to set the configuration number to be used by the Device. This function uses adi_usb_GetObjectFromID&amp;#160; to get the configuration object which the Host is going to activate for the Device. The Host stores this configuration object as its active configuration Object. This configuration object can be used to find out which BULK Endpoints are currently used by the Device.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-left: 0.5in; text-indent: 4.5pt;"&gt;case ADI_USB_OTG_EVENT_ENUMERATION_COMPLETE:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; printf("\nenumeration event\n");&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; usberrorcheck(adi_usb_otg_SetConfiguration(1));&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;&lt;p style="margin-left: 0.5in; text-indent: 4.5pt;"&gt;&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; pDevO = (PDEVICE_OBJECT)pArg;&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; pCfgO = pDevO-&amp;gt;pConfigObj;&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; pEpO&amp;#160; = pCfgO-&amp;gt;pActiveEpObj;&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; pActiveEpO = pEpO;&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; while(pActiveEpO != NULL)&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /* BULK endpoints ONLY */&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if(pActiveEpO-&amp;gt;pEndpointDesc-&amp;gt;bAttributes == USB_BULK_MODE)&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if((pActiveEpO-&amp;gt;pEndpointDesc-&amp;gt;bEndpointAddress &amp;amp; 0x80))&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; g_ReadEpID&amp;#160;&amp;#160; = pActiveEpO-&amp;gt;ID;&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; else&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; g_WriteEpID&amp;#160;&amp;#160; = pActiveEpO-&amp;gt;ID;&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-left: 0.5in; text-indent: 4.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; pActiveEpO = pActiveEpO-&amp;gt;pNextActiveEpObj;&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; g_bUsbenumerated = TRUE; &lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; break;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;3.. Turn on the USB_OTG_PRINT_DESCRIPTOR and USB_DEBUG macros for USB driver libraries and rebuild them. This prints out the complete descriptor info to the console.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;4. If the object IDs and endpoints (see the function ParseConfigurationMemory() in the adi_usb_otg.c file) are already known, you could do something similar to what the above macros do. If the info is not known, use method #2 to retrieve it and pass it to adi_usb_PrintDeviceDescriptor();&lt;/p&gt;&lt;p&gt;&lt;br style="mso-special-character:line-break;"/&gt;&lt;/p&gt;&lt;p style="margin-left:.5in;"&gt;#ifdef DEBUG_DESCRIPTORS&lt;br/&gt;&amp;#160;&amp;#160; PDEVICE_OBJECT pDevO;&lt;br/&gt;&amp;#160;&amp;#160; PCONFIG_OBJECT pCo;&lt;br/&gt;&amp;#160;&amp;#160; PINTERFACE_OBJECT pIo;&lt;br/&gt;&amp;#160;&amp;#160; PENDPOINT_OBJECT pEpO1,pEpO2;&amp;#160;&amp;#160;&amp;#160; &lt;br/&gt;&amp;#160;&amp;#160; &lt;br/&gt;&amp;#160;&amp;#160; adi_usb_GetObjectFromID(1,USB_DEVICE_OBJECT_TYPE,(void*)&amp;amp;pDevO);&lt;br/&gt;&amp;#160;&amp;#160; adi_usb_PrintDeviceDescriptor(pDevO); printf("\n\n");&lt;br/&gt;&amp;#160;&amp;#160; adi_usb_GetObjectFromID(1,USB_CONFIGURATION_OBJECT_TYPE,(void*)&amp;amp;pCo);&lt;br/&gt;&amp;#160;&amp;#160; adi_usb_PrintConfigDescriptor(pCo);printf("\n\n");&lt;br/&gt;&amp;#160;&amp;#160; adi_usb_GetObjectFromID(0,USB_INTERFACE_OBJECT_TYPE,(void*)&amp;amp;pIo);&lt;br/&gt;&amp;#160;&amp;#160; adi_usb_PrintInterfaceDescriptor(pIo);printf("\n\n");&lt;br/&gt;&amp;#160;&amp;#160; adi_usb_GetObjectFromID(g_ReadEpID,USB_ENDPOINT_OBJECT_TYPE,(void*)&amp;amp;pEpO1);&lt;br/&gt;&amp;#160;&amp;#160; adi_usb_PrintEndpointDescriptor(pEpO1);printf("\n\n");&lt;br/&gt;&amp;#160;&amp;#160; adi_usb_GetObjectFromID(g_WriteEpID,USB_ENDPOINT_OBJECT_TYPE,(void*)&amp;amp;pEpO2);&lt;br/&gt;&amp;#160;&amp;#160; adi_usb_PrintEndpointDescriptor(pEpO2);printf("\n\n");&lt;br/&gt; #endif&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Common functions like WriteMemory() and ReadMemory() are used for data transfer. The Host uses SendCommand() while the Device uses ReadCommand().&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Please refer to the below references for further details and more accurate info of API usage.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;em&gt;--Prasanth. &lt;/em&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong style=": ; color: #333333; text-decoration: underline;"&gt;Further reference:&lt;/strong&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #333333;"&gt;Host example: ...\Blackfin\Examples\ADSP-BF527 EZ-KIT Lite\Services\File System\VDK\shell_browser&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&lt;span style="color: #333333;"&gt; &lt;/span&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #333333;"&gt;Device example: ...\Blackfin\Examples\ADSP-BF527 EZ-KIT Lite\Drivers\usb\bulk_loopback_app&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&lt;span style="color: #333333;"&gt; &lt;/span&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #333333;"&gt;Driver Docs: ...\Blackfin\docs\drivers\usb&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #333333;"&gt;USB Descriptors: &lt;a class="jive-link-external-small" href="http://www.beyondlogic.org/usbnutshell/usb5.shtml" target="_blank"&gt;http://www.beyondlogic.org/usbnutshell/usb5.shtml&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Here are some screenshots:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Device:&amp;#160; &lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://ez.analog.com/servlet/JiveServlet/showImage/2-29372-6004/Device.jpg"&gt;&lt;img alt="Device.jpg" class="jive-image-thumbnail jive-image" src="http://ez.analog.com/servlet/JiveServlet/downloadImage/2-29372-6004/Device.jpg" width="450"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Host:&lt;/strong&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="http://ez.analog.com/servlet/JiveServlet/showImage/2-29372-6005/Host.jpg"&gt;&lt;img alt="Host.jpg" class="jive-image-thumbnail jive-image" src="http://ez.analog.com/servlet/JiveServlet/downloadImage/2-29372-6005/Host.jpg" width="450"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Descriptors:&lt;/strong&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="http://ez.analog.com/servlet/JiveServlet/showImage/2-29372-6006/USB_Descriptors.jpg"&gt;&lt;img alt="USB_Descriptors.jpg" class="jive-image-thumbnail jive-image" src="http://ez.analog.com/servlet/JiveServlet/downloadImage/2-29372-6006/USB_Descriptors.jpg" width="450"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;This FAQ was generated from the following discussion: &lt;a class="jive-link-thread-small" data-containerId="2004" data-containerType="14" data-objectId="8497" data-objectType="1" href="http://ez.analog.com/thread/8497"&gt;How to transfer data across two EZ-KITs through USB?&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:5d23ca2f-f70a-4cca-a063-01831b89c828] --&gt;</description>
      <category domain="http://ez.analog.com/tags#/?containerType=14&amp;container=2004">usb</category>
      <pubDate>Wed, 21 Dec 2011 15:34:17 GMT</pubDate>
      <author>analogvm-admin@analog-vm.hosted.jivesoftware.com</author>
      <guid>http://ez.analog.com/docs/DOC-1886</guid>
      <dc:date>2011-12-21T15:34:17Z</dc:date>
      <clearspace:dateToText>1 year, 4 months ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>Is There A Recommended DHCP Server Test for Blackfin and LwIP?</title>
      <link>http://ez.analog.com/docs/DOC-1989</link>
      <description>&lt;!-- [DocumentBodyStart:c5dde90a-4ed5-4914-a842-b517c3c87c38] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;DHCP (dynamic IP assignment) requires a network server / router. For quick tests with DHCP, this GUI based free software seems ideal:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a class="jive-link-external-small" href="http://www.dhcpserver.de/dhcpsrv.htm" target="_blank"&gt;http://www.dhcpserver.de/dhcpsrv.htm&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a class="jive-link-external-small" href="http://www.dhcpserver.de/dhcpsetup.htm" target="_blank"&gt;http://www.dhcpserver.de/dhcpsetup.htm&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:c5dde90a-4ed5-4914-a842-b517c3c87c38] --&gt;</description>
      <category domain="http://ez.analog.com/tags#/?containerType=14&amp;container=2004">lwip</category>
      <category domain="http://ez.analog.com/tags#/?containerType=14&amp;container=2004">dhcp</category>
      <pubDate>Mon, 12 Dec 2011 16:44:34 GMT</pubDate>
      <author>analogvm-admin@analog-vm.hosted.jivesoftware.com</author>
      <guid>http://ez.analog.com/docs/DOC-1989</guid>
      <dc:date>2011-12-12T16:44:34Z</dc:date>
      <clearspace:dateToText>1 year, 5 months ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
  </channel>
</rss>

