⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c6000软件优化经验总结(2).htm

📁 dsp优化方法以及实际例程,ti dsp c6000系列
💻 HTM
📖 第 1 页 / 共 4 页
字号:
            <P>&nbsp;dm0 = dm1 = 0x7fff;</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;d0&nbsp; = 
            (Word16 *)&amp;d[0];</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;d1&nbsp; = 
            (Word16 *)&amp;d[1];</P>
            <P>&nbsp;#pragma MUST_ITERATE(32,256,64);</P>
            <P>&nbsp;for (j = 0; j &lt; Nsiz; j+=2)</P>
            <P>&nbsp;{</P>
            <P>&nbsp;&nbsp;n0 = *d0;</P>
            <P>&nbsp;&nbsp;d0 += 2;</P>
            <P>&nbsp;&nbsp;n1 = *d1;&nbsp;&nbsp; </P>
            <P>&nbsp;&nbsp;d1 += 2;</P>
            <P>&nbsp;&nbsp;if (n0 &lt;= dm0)</P>
            <P>&nbsp;&nbsp;{</P>
            <P>&nbsp;&nbsp;&nbsp;dm0 = n0;</P>
            <P>&nbsp;&nbsp;&nbsp;jj0 = j;</P>
            <P>&nbsp;&nbsp;}</P>
            <P>&nbsp;&nbsp;if (n1 &lt;= dm1)</P>
            <P>&nbsp;&nbsp;{</P>
            <P>&nbsp;&nbsp;&nbsp;dm1 = n1;</P>
            <P>&nbsp;&nbsp;&nbsp;jj1 = j+1;</P>
            <P>&nbsp;&nbsp;}</P>
            <P>&nbsp;}</P>
            <P>&nbsp;if (dm1 != dm0)</P>
            <P>&nbsp;{</P>
            <P>&nbsp;&nbsp;index[m] = (dm1 &lt; dm0)? jj1:jj0;</P>
            <P>&nbsp;}</P>
            <P>&nbsp;else</P>
            <P>&nbsp;{</P>
            <P>&nbsp;&nbsp;index[m] = (jj1 &gt; jj0)? jj1:jj0;</P>
            <P>&nbsp;}</P>
            <P>3、优化说明</P>
            <P>&nbsp;求数组的最小值程序,优化时为了提高程序效率在一个循环之内计算N=1,3,5..和n=2,4,6...的最小值,然后在比较二者的大小以求得整个数组的最小值。</P>
            <P>八、</P>
            <P>1、源程序</P>
            <P>&nbsp;for (k = 0; k &lt; NB_PULSE; k++)</P>
            <P>&nbsp;{</P>
            <P>&nbsp;&nbsp;i = codvec[k];</P>
            <P>&nbsp;&nbsp;j = sign[i];&nbsp;</P>
            <P>&nbsp;&nbsp;index = mult(i, Q15_1_5);</P>
            <P>&nbsp;&nbsp;track = sub(i, extract_l(L_shr(L_mult(index, 5), 
            1)));</P>
            <P>&nbsp;&nbsp;if (j &gt; 0)</P>
            <P>&nbsp;&nbsp;{</P>
            <P>&nbsp;&nbsp;&nbsp;if (i &lt; l_subfr) code[i] = add(code[i], 
            4096);&nbsp;</P>
            <P>&nbsp;&nbsp;&nbsp;codvec[k] += (2 * L_SUBFR);</P>
            <P>&nbsp;&nbsp;}</P>
            <P>&nbsp;&nbsp;else</P>
            <P>&nbsp;&nbsp;{</P>
            <P>&nbsp;&nbsp;&nbsp;if (i &lt; l_subfr) code[i] = sub(code[i], 
            4096);&nbsp;</P>
            <P>&nbsp;&nbsp;&nbsp;index = add(index, 16);</P>
            <P>&nbsp;&nbsp;}</P>
            <P>&nbsp;&nbsp;if (indx[track] &lt; 0)</P>
            <P>&nbsp;&nbsp;{</P>
            <P>&nbsp;&nbsp;&nbsp;indx[track] = index;</P>
            <P>&nbsp;&nbsp;}</P>
            <P>&nbsp;&nbsp;else</P>
            <P>&nbsp;&nbsp;{</P>
            <P>&nbsp;&nbsp;&nbsp;if (((index ^ indx[track]) &amp; 16) == 0)</P>
            <P>&nbsp;&nbsp;&nbsp;{</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;if (sub(indx[track], index) &lt;= 0)</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;{</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;indx[track] = shl((indx[track] 
            &amp; 16), 3)</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            + shr(extract_l(L_mult((indx[track] &amp; 
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            15), NB_POS)), 1) + (index &amp; 15);</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;}</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;else</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;{</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;indx[track] = shl((index &amp; 16), 
            3)</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            + shr(extract_l(L_mult((index &amp; 15), 
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            NB_POS)), 1) + (indx[track] &amp; 15);</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;}</P>
            <P>&nbsp;&nbsp;&nbsp;}</P>
            <P>&nbsp;&nbsp;&nbsp;else</P>
            <P>&nbsp;&nbsp;&nbsp;{</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;if (sub((indx[track] &amp; 15), (index 
            &amp; 15)) &lt;= 0)</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;{</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;indx[track] = shl((index &amp; 16), 
            3)</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            + shr(extract_l(L_mult((index &amp; 15), 
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            NB_POS)), 1) + (indx[track] &amp; 15);</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;}</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;else</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;{</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;indx[track] = shl((indx[track] 
            &amp; 16), 3)</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            + shr(extract_l(L_mult((indx[track] &amp; 15), 
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            NB_POS)), 1) + (index &amp; 15);</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;}</P>
            <P>&nbsp;&nbsp;&nbsp;}</P>
            <P>&nbsp;&nbsp;}</P>
            <P>&nbsp;}</P>
            <P>2、优化后的程序</P>
            <P>&nbsp;for (k = 0; k &lt; 8; k++)</P>
            <P>&nbsp;{</P>
            <P>&nbsp;&nbsp;i &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 
            codvec[k];</P>
            <P>&nbsp;&nbsp;j &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = sign[i];</P>
            <P>&nbsp;&nbsp;index&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            = _smpy(i, 6554)&gt;&gt;16;</P>
            <P>&nbsp;&nbsp;track &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = i - 
            index*5;</P>
            <P>&nbsp;&nbsp;con&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            = (j &gt; 0);</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            &nbsp;&nbsp;codvec[k]&nbsp;&nbsp;&nbsp; = codvec[k] + 110*con;</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            index&nbsp;&nbsp;&nbsp;&nbsp; = index + (!con)*16; </P>
            <P>&nbsp;&nbsp;conn&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = (i &lt; 
            l_subfr);</P>
            <P>&nbsp;&nbsp;cono&nbsp;= (j &gt; 0)? 1:-1;</P>
            <P>&nbsp;&nbsp;code[i]&nbsp; = code[i] + 4096*conn*cono;&nbsp;</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            n0 &nbsp;= index;</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            t0&nbsp;= indx[track];</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            n1 &nbsp;= n0&amp;16;</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            t1 &nbsp;= t0&amp;16;</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            n2 &nbsp;= n0&amp;15;</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            t2 &nbsp;= t0&amp;15;</P>
            <P>&nbsp;&nbsp;tmp0 &nbsp;= (_sshl(n1,19)&gt;&gt;16) + n2*NB_POS + 
            t2;</P>
            <P>&nbsp;&nbsp;tmp1 &nbsp;= (_sshl(t1,19)&gt;&gt;16) + t2*NB_POS + 
            n2;</P>
            <P>&nbsp;&nbsp;conp &nbsp;= (((n1 == t1)&amp;&amp;(t0 &gt; 
            n0))||((n1 != t1)&amp;&amp;(t2 &lt;= n2)));</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            tmp&nbsp; &nbsp;= conp*tmp0 + (!conp)*tmp1;</P>
            <P>&nbsp;&nbsp;if (t0 &lt; 0)</P>
            <P>&nbsp;&nbsp;&nbsp;indx[track] = n0;</P>
            <P>&nbsp;&nbsp;else</P>
            <P>&nbsp;&nbsp;&nbsp;indx[track] = tmp;</P>
            <P>&nbsp;}</P>
            <P>3、优化说明</P>
            <P>&nbsp;源程序中在循环中含有许多的if结构,在优化时对if结构首先进行化简,再将化简后的if结构用条件运算表达式进行改写,最后使循环可以Pipeline。</P><BR></TD></TR></TBODY></TABLE><BR>
      <TABLE class=hight1 cellSpacing=0 cellPadding=0 width="100%" 
      bgColor=#cccccc border=0>
        <TBODY>
        <TR>
          <TD>&nbsp;</TD></TR></TBODY></TABLE><BR>
      <TABLE 
      style="BORDER-RIGHT: #cccccc 1px solid; BORDER-TOP: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; BORDER-BOTTOM: #cccccc 1px solid" 
      height=29 cellSpacing=0 cellPadding=0 width="100%" border=0>
        <TBODY>
        <TR bgColor=#ffa45b>
          <TD class=hight2>&nbsp;</TD></TR>
        <TR bgColor=#ff7300>
          <TD class=font13 style="PADDING-LEFT: 10px" height=20><IMG 
            src="C6000软件优化经验总结(2).files/icon06.gif" align=absMiddle> <FONT 
            color=#ffffff><STRONG>相关文章</STRONG></FONT></TD></TR>
        <TR bgColor=#f29800>
          <TD class=hight2>&nbsp;</TD></TR>
        <TR>
          <TD style="PADDING-LEFT: 10px; LINE-HEIGHT: 24px">· <A class=link13 
            title="文章标题:TMS320VC5509的工作流程&#13;&#10;作    者:佚名&#13;&#10;更新时间:2006-2-22 15:30:34&#13;&#10;点击次数:90" 
            href="http://www.icembed.com/info.asp?ArticleID=1421">TMS320VC5509的工作流程</A>[<FONT 
            color=red>90</FONT>]<BR>· <A class=link13 
            title="文章标题:TI-MSP430F149在TCP/IP上的扩展&#13;&#10;作    者:佚名&#13;&#10;更新时间:2006-2-22 15:25:00&#13;&#10;点击次数:95" 
            href="http://www.icembed.com/info.asp?ArticleID=1419">TI-MSP430F149在TCP/IP上的扩展</A>[<FONT 
            color=red>95</FONT>]<BR>· <A class=link13 
            title="文章标题:AVR芯片的ISP全攻略&#13;&#10;作    者:佚名&#13;&#10;更新时间:2006-2-22 15:22:52&#13;&#10;点击次数:67" 
            href="http://www.icembed.com/info.asp?ArticleID=1418">AVR芯片的ISP全攻略</A>[<FONT 
            color=red>67</FONT>]<BR>· <A class=link13 
            title="文章标题:pci卡设计心得&#13;&#10;作    者:佚名&#13;&#10;更新时间:2006-2-22 15:18:04&#13;&#10;点击次数:81" 
            href="http://www.icembed.com/info.asp?ArticleID=1416">pci卡设计心得</A>[<FONT 
            color=red>81</FONT>]<BR>· <A class=link13 
            title="文章标题:C6000软件优化经验总结(3)&#13;&#10;作    者:佚名&#13;&#10;更新时间:2006-2-22 15:10:46&#13;&#10;点击次数:95" 
            href="http://www.icembed.com/info.asp?ArticleID=1413">C6000软件优化经验总结(3)</A>[<FONT 
            color=red>95</FONT>]<BR></TD></TR></TBODY></TABLE><BR>
      <TABLE 
      style="BORDER-RIGHT: #cccccc 1px solid; BORDER-TOP: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; BORDER-BOTTOM: #cccccc 1px solid" 
      cellSpacing=0 cellPadding=0 width="100%" border=0>
        <TBODY>
        <TR bgColor=#ffa45b>
          <TD class=hight2>&nbsp;</TD></TR>
        <TR bgColor=#ff7300>
          <TD class=font13 style="PADDING-LEFT: 10px" height=20><IMG 
            src="C6000软件优化经验总结(2).files/icon06.gif" align=absMiddle> <FONT 
            color=#ffffff><STRONG>文章评论</STRONG></FONT></TD></TR>
        <TR bgColor=#f29800>
          <TD class=hight2>&nbsp;</TD></TR>
        <TR>
          <TD 
          style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; LINE-HEIGHT: 24px; PADDING-TOP: 10px">&nbsp;&nbsp;&nbsp;&nbsp;没有任何评论 
          </TD></TR></TBODY></TABLE><BR>(*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。) <BR><BR>
      <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
        <TBODY>
        <TR>
          <TD 
          style="PADDING-LEFT: 8px; FONT-WEIGHT: bold; FONT-SIZE: 13px; COLOR: #ffffff; LINE-HEIGHT: normal; FONT-STYLE: normal; FONT-VARIANT: normal" 
          width="32%" bgColor=#666666 height=26><IMG height=14 
            src="C6000软件优化经验总结(2).files/icon11.gif" width=14> 发表评论</TD>
          <TD class=table-r-b style="PADDING-LEFT: 10px" width="68%" 
          bgColor=#cccccc>
            <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
              <TBODY>
              <TR>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -