<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[十年部落]]></title>
<link>http://www.shinian10.com/</link>
<description><![CDATA[51 AVR单片机|ARM开发|电子技术|protel学习|VC++编程|英语频道|软件资源分享]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog2 v2.4]]></copyright>
<webMaster><![CDATA[zcdelphi7@126.com(十年)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>十年部落</title> 
	<url>http://www.shinian10.com/images/logos.gif</url> 
	<link>http://www.shinian10.com/</link> 
	<description>十年部落</description> 
</image>

			<item>
			<link>http://www.shinian10.com/default.asp?id=564</link>
			<title><![CDATA[DSP编程中的volatile关键字]]></title>
			<author>zcdelphi7@126.com(zcjohnson)</author>
			<category><![CDATA[DSP技术]]></category>
			<pubDate>Sat,19 Jul 2008 08:48:16 +0800</pubDate>
			<guid>http://www.shinian10.com/default.asp?id=564</guid>	
		<description><![CDATA[来自CCS的help:<br/>The&nbsp;compiler&nbsp;analyzes&nbsp;data&nbsp;flow&nbsp;to&nbsp;avoid&nbsp;memory&nbsp;accesses&nbsp;whenever&nbsp;possible.&nbsp;If&nbsp;you&nbsp;have&nbsp;code&nbsp;that&nbsp;depends&nbsp;on&nbsp;memory&nbsp;accesses&nbsp;exactly&nbsp;as&nbsp;written&nbsp;in&nbsp;the&nbsp;C/C++&nbsp;code&nbsp;you&nbsp;must&nbsp;use&nbsp;the&nbsp;volatile&nbsp;keyword&nbsp;to&nbsp;identify&nbsp;these&nbsp;accesses.&nbsp;A&nbsp;variable&nbsp;qualified&nbsp;with&nbsp;a&nbsp;volatile&nbsp;keyword&nbsp;is&nbsp;allocated&nbsp;to&nbsp;an&nbsp;uninitialized&nbsp;section&nbsp;(as&nbsp;opposed&nbsp;to&nbsp;a&nbsp;register).&nbsp;The&nbsp;compiler&nbsp;does&nbsp;not&nbsp;optimize&nbsp;out&nbsp;any&nbsp;references&nbsp;to&nbsp;volatile&nbsp;variables.<br/><br/>In&nbsp;the&nbsp;following&nbsp;example,&nbsp;the&nbsp;loop&nbsp;waits&nbsp;for&nbsp;a&nbsp;location&nbsp;to&nbsp;be&nbsp;read&nbsp;as&nbsp;0xFF:<br/><br/>unsigned&nbsp;int&nbsp;*ctrl;<br/>while&nbsp;(*ctrl&nbsp;!=0xFF);<br/><br/>In&nbsp;this&nbsp;example,&nbsp;*ctrl&nbsp;is&nbsp;a&nbsp;loop-invariant&nbsp;expression,&nbsp;so&nbsp;the&nbsp;loop&nbsp;is&nbsp;optimized&nbsp;down&nbsp;to&nbsp;a&nbsp;single&nbsp;memory&nbsp;read.&nbsp;To&nbsp;correct&nbsp;this,&nbsp;define&nbsp;*ctrl&nbsp;as:<br/><br/>volatile&nbsp;unsigned&nbsp;int&nbsp;*ctrl;<br/><br/>Here&nbsp;the&nbsp;*ctrl&nbsp;pointer&nbsp;is&nbsp;intended&nbsp;to&nbsp;reference&nbsp;a&nbsp;hardware&nbsp;location,&nbsp;such&nbsp;as&nbsp;an&nbsp;interrupt&nbsp;flag.<br/><br/>volatile提醒编译器它后面所定义的变量随时都有可能改变，因此编译后的程序每次需要存储或读取这个变量的时候，都会直接从变量地址中读取数据。如果没有volatile关键字，则编译器可能优化读取和存储，可能暂时使用寄存器中的值，如果这个变量由别的程序更新了的话，将出现不一致的现象。下面举例说明。<br/><br/>在DSP开发中，经常需要等待某个事件的触发，所以经常会写出这样的程序：<br/>以下内容为程序代码:<br/>short&nbsp;flag;<br/>void&nbsp;test()<br/>{<br/>&nbsp;do1();<br/>&nbsp;while(flag==0);<br/>&nbsp;do2();<br/>}<br/><br/>这段程序等待内存变量flag的值变为1之后才运行do2()。变量&nbsp;flag的值由别的程序更改，这个程序可能是某个硬件中断服务程序，例如如果某个按钮按下的话，就会对DSP产生中断，在按键中断程序中修改flag为&nbsp;1，这样上面的程序就能够得以继续运行。<br/><br/>但是，编译器并不知道flag的值会被别的程序修改，因此在它进行优化的时候，可能会把flag的值先读入某个寄存器，然后等待那个寄存器变为&nbsp;1。如果不幸进行了这样的优化，那么while循环就变成了死循环，因为寄存器的内容不可能被中断服务程序修改。为了让程序每次都读取真正flag变量的值，就需要定义为如下形式：<br/><br/>volatile&nbsp;short&nbsp;flag;<br/><br/>需要注意的是，没有volatile也可能能正常运行，但是可能修改了编译器的优化级别之后就又不能正常运行了。因此经常会出现debug版本正常，但是release版本却不能正常的问题。所以为了安全起见，只要是等待别的程序修改某个变量的话，就加上volatile关键字。&nbsp;]]></description>
		</item>
		
			<item>
			<link>http://www.shinian10.com/default.asp?id=563</link>
			<title><![CDATA[合众达网站几年里的精华问答]]></title>
			<author>zcdelphi7@126.com(zcjohnson)</author>
			<category><![CDATA[DSP技术]]></category>
			<pubDate>Fri,18 Jul 2008 15:58:55 +0800</pubDate>
			<guid>http://www.shinian10.com/default.asp?id=563</guid>	
		<description><![CDATA[<img align="left" src="http://www.seeddsp.com/seed/image/aboutseed_03.gif" border="0" alt=""/>合众达网站几年里的精华问答<br/><br/>下载地址<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.shinian10.com/images/quote.gif" style="margin:0px 2px -3px 0px" alt="引用内容"/> 引用内容</div><div class="UBBContent">如果您第一次下载本站资源前请先观看本站<a target="_blank" href="http://www.shinian10.com/article.asp?id=89">本站下载资源说明</a>，否则可能无法下载</div></div><br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.shinian10.com/images/quote.gif" style="margin:0px 2px -3px 0px" alt="隐藏内容"/> 隐藏内容</div><div class="UBBContent">该内容已经被作者隐藏,只有会员才允许查阅 <a href="http://www.shinian10.com/login.asp">登录</a> | <a href="http://www.shinian10.com/register.asp">注册</a></div></div><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.shinian10.com/default.asp?id=562</link>
			<title><![CDATA[DSP编程中的几个关键问题]]></title>
			<author>zcdelphi7@126.com(zcjohnson)</author>
			<category><![CDATA[DSP技术]]></category>
			<pubDate>Fri,18 Jul 2008 11:13:08 +0800</pubDate>
			<guid>http://www.shinian10.com/default.asp?id=562</guid>	
		<description><![CDATA[DSP芯片凭其优异的性能在高速计算领域有着巨大的应用前景。但其应用所设计的知识非常庞杂。本文以TI公司的&nbsp;320C54X系列为蓝本进行提纯，所有认识都是笔者在实际工作中亲手实践所得。当程序调不通不知该从何处下手时，此文也许会有所帮助。这些关键点有些是TMS320C5409所独有而有些是与DSP所共有的。&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<strong>1&nbsp;McBSP&nbsp;(Multichannel&nbsp;Buffered&nbsp;Serial&nbsp;Port)串口利用DMA中的多帧(Multi-Frame)方式通信的中断处理</strong>&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;在实际通信应用中，一个突发之后，程序必须为下一个突发作准备。因此一般采用串口的DMA多帧方式进行发送，在中断处理程序中或停止发送或加载数据。但在串口以DMA方式传输数据时却有一些问题要讨论。首先DMA的传输同步事件应设为McBSP的传输事件即XEVT，这样一字节传输后会自动准备另一字节(McBSP的READY上升沿触发DMA传输)。中断发生时意味着一个块已传完，这时DMA的使能自动关闭，McBSP的READY将一直保持高状态。但是在下一次突发传输直接使能DMA时却启动不了传输(相信会有许多人遇到此类问题)。这是因为无法产生McBSP触发启动所需的READY上升沿。解决办法是在中断程序中先关闭McBSP的发送，使READY=0，随后在程序中发送使能DMA，再打开McBSP的发送既可。如先打开McBSP的发送后打开DMA，也是不会工作的。因为McBSP的READY已经由0变到1了，无法再产生READY上升沿。&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<strong>2&nbsp;关闭DMA与关闭McBSP的区别</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;在通信领域，为了充分利用&nbsp;DSP&nbsp;的片上外设资源，常常利用DMA把从串口来的数据或要发的数据放入缓冲区，再处理。对DMA而言，只要其在数据缓冲区的指针指向了中断应发生的位置，就产生中断。但此时最后一个数据只是进入了McBSP而并未真正发出去，所以在传送结束的中断程序中只能关闭DMA不能关闭McBSP。因为此时McBSP的发寄存器DXR中还有一个字没有发出。<br/>&nbsp;&nbsp;&nbsp;<strong>3&nbsp;McBSP串口配置的关键时序</strong>&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;主要是寄存器SPCR2的配置：在保持RRST、XRST、FRST各位为0的前提下，配置好其它串口控制寄存器。等待至少2个CLKR/T时钟以确保DSP内部的同步。&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;(1)可以向DXR装载DMA。&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;(2)使能GRST(GRST=1)(如果需要DSP内部产生采样时钟)。&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;(3)使能RRST或XRST，注意此时要保证SPCR中仅有此一位发生改变。&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;(4)使能FRST(FRST=1)(如果需要DSP内部产生帧同步)。&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;(5)等待2个R/T&nbsp;CLK时钟周期后，收或发端便会有效。&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>4&nbsp;汇编语言程序中的变量</strong>&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;汇编语言程序中的公用变量应在文件中定义，如.def&nbsp;carry。汇编语言程序中使用的局部变量不需要定义，可直接声明，例如trn_&nbsp;num.word&nbsp;00h。如果在两个asm文件中有两个都没有定义的同名变量，则编译程序会认为他们不是同一变量。在汇编程序的开头应有&nbsp;.mmregs宏语句。它一方面表示对默认定义的确认(ah,bh,trn等)，另一方面可以对所用寄存器重新定义。如：&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.mmregs&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DMPREC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.set&nbsp;54h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;；定义DMA优先和使能寄存器地址在54h&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DMSA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.set&nbsp;55h&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DMSDN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.set&nbsp;57h&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DXR10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.set&nbsp;23h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;；定义串口1的发送寄存器地址在23h&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<strong>5&nbsp;ST1寄存器中CPL位的影响</strong>&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;CPL位是编译模式控制位，它表示在相对直接寻址时采用哪种指针。当CPL=0时，使用页指针DP；当CPL=1时，使用堆栈指针SP。实际使用中二者没什么差别，但使用SP寻址的程序更易读。在程序中经常使用CPL=1。&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<strong>6&nbsp;指令的歧义</strong>&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/><span style="color:#993300">&nbsp;6.1&nbsp;比较下面指令</span><br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STLM&nbsp;B,&nbsp;AR4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;；把bl内容送入寄存器AR4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(错)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STLM&nbsp;B,&nbsp;*AR4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;；把bl内容送入寄存器AR4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(对)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;前者实际执行的是把bl内容送入一个系统用的缓冲区，后者也可用：&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MVDM&nbsp;BL,&nbsp;AR4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;；把bl内容送入寄存器AR4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(对)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;其他易导致歧义的语句还有：&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LD&nbsp;&nbsp;&nbsp;&nbsp;AR5,A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;；把AR5的内容送入寄存器A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(错)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDM&nbsp;&nbsp;&nbsp;AR5,A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;；把AR5的内容送入寄存器A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(对)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ANDM&nbsp;&nbsp;#0x107e,AR4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;；把#107e加到寄存器AR4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(错)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ANDM&nbsp;&nbsp;#0x107e,*AR4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;；把#107e加到寄存器AR4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(对)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;仅对某些寄存器有效的指令：&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MVDD&nbsp;*&nbsp;AR2+,&nbsp;*AR3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;；把以AR2为地址的内容拷入AR3的地址中&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;此类指令用作数据块搬移特别有效，但仅对AR2、AR3、AR4、AR5有效。&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;易错语句中对程序运行危害最大的是：&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ST&nbsp;#0,&nbsp;*(bsp0_out_sign)&nbsp;；bsp0_out_sign是一个变量名&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(对)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STM&nbsp;#0,&nbsp;(bsp0_out_sign)&nbsp;；此语句被编译为STM&nbsp;#0,PMST或STM&nbsp;#0,IMR&nbsp;&nbsp;(错)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;这种语句会导致程序运行中的随机故障，且极难发现。&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/><span style="color:#993300">6.2&nbsp;流水冲突</span><br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;分析以下程序：&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STM&nbsp;&nbsp;&nbsp;to-dce-buff,AR4&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDM&nbsp;&nbsp;&nbsp;AR4,B&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ADD&nbsp;&nbsp;&nbsp;A,B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;；B=AR4+AL&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MVDM&nbsp;&nbsp;BL,AR4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;；AR4=to-dce-buff+AL&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;实际上，上段程序得不到AR4=to-dce-buff+AL的结果。这是因为DSP一般采用深度为3～6级的流水结构，产生了无法解决的冲突，所以它不能被正确执行。解决的办法是在赋值和引用之间插入一条或几条其他的指令，或NOP语句即可。&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<strong>7&nbsp;汇编与C语言混合编程的关键问题</strong>&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/><span style="color:#993300">7.1&nbsp;C程序变量与汇编程序变量的共用</span><br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;为了使程序更易于接口和维护，可以在汇编程序中引用与C程序共享的变量：&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;.ref_to_dce_num,_to-dte_num,_to_dce_buff,_to_dte_buff&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;在汇编程序中引用而在C程序可直接定义的变量：&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;to_dte_buff[BUFF_SIZE]；&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//DSP发向PC机的数据&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;to_dte_num；&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;&nbsp;//缓冲区中存放的有效字节数&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;to_dte_store；&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;<br/>&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;to_dte_read；&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;//缓冲区的读取指针&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;这样经过链接就可以完成对应。&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/><span style="color:#993300">7.2&nbsp;程序入口问题</span><br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;在C程序中，程序的入口是main()函数。而在汇编程序中其入口由*.cmd文件中的命令决定，如：-e&nbsp;main_start；程序入口地址为&nbsp;main&nbsp;_start。这样，混合汇编出来的程序得不到正确结果。因为C到ASM的汇编有默认的入口c-int00，从这开始的一段程序为C程序的运行做准备工作。这些工作包括初始化变量、设置栈指针等，相当于系统壳不能跨越。这时可在*.cmd文件中去掉语句：-e&nbsp;main_start。如仍想执行某些汇编程序，可以C函数的形式执行，如：&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;main_start()；&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//其中含有其他汇编程序&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;但前提是在汇编程序中把_main_start作为首地址，程序以rete结尾(作为可调用的函数)的程序段，并在汇编程序中引用_main_start，即.ref&nbsp;_main_start。&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/><span style="color:#993300">7.3&nbsp;移位问题</span><br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;在C语言中把变量设为char型时，它是8位的，但在DSP汇编中此变量仍被作为16位处理。所以会出现在C程序中的移位结果与汇编程序移位结果不同的问题。解决的办法是在C程序中，把移位结果再用0X00FF去“与”一下即可。&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/><span style="color:#993300">7.4&nbsp;堆栈问题&nbsp;<br/></span><br/>&nbsp;&nbsp;&nbsp;&nbsp;在汇编程序中对堆栈的依赖很小，但在C程序中分配局部变量、变量初始化、传递函数变量、保存函数返回地址、保护临时结果功能都是靠堆栈完成。而C编译器无法检查程序运行时堆栈能否溢出。&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/><span style="color:#993300">7.5&nbsp;程序跑飞问题</span><br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;编译后的C程序跑飞一般是对不存在的存储区访问造成的。首先要查.MAP文件与memory&nbsp;map图对比，看是否超出范围。如果在有中断的程序中跑飞，应重点查在中断程序中是否对所用到的寄存器进行了压栈保护。如果在中断程序中调用了C程序，则要查汇编后的C程序中是否用到了没有被保护的寄存器并提供保护(在C程序的编译中是不对A、B等寄存器进行保护的)。&nbsp;<br/><strong>&nbsp;&nbsp;&nbsp;&nbsp;8&nbsp;命令文件的编写</strong>&nbsp;<br/>&nbsp;&nbsp;&nbsp;在编辑*.cmd文件时编译连接器默认：page&nbsp;0就是ROM区，page&nbsp;1就是RAM区。下列段必须放在ROM区。&nbsp;<br/>&nbsp;&nbsp;&nbsp;.text&nbsp;&nbsp;load&nbsp;=&nbsp;PROG&nbsp;PAGE&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;；程序段&nbsp;<br/>&nbsp;&nbsp;&nbsp;.const&nbsp;load&nbsp;=&nbsp;data&nbsp;PAGE&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;；常数段&nbsp;<br/>&nbsp;&nbsp;&nbsp;.cinit&nbsp;load&nbsp;=&nbsp;data&nbsp;PAGE&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;；初始化段&nbsp;<br/>&nbsp;&nbsp;&nbsp;.switch&nbsp;load&nbsp;=&nbsp;data&nbsp;PAGE&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;；switch指令常数表&nbsp;<br/>&nbsp;&nbsp;&nbsp;值得注意的是尽量不要用FILL选项，一旦进行填充会使生成的.out文件增大甚至超过内部的存储空间而无法Bootload。&nbsp;<br/>&nbsp;&nbsp;&nbsp;<strong>9&nbsp;Bootload问题</strong>&nbsp;<br/>&nbsp;&nbsp;&nbsp;一般都采用从EPROM引导，但通常很费脑筋。下面介绍一下可为54X系列DSP内部引导程序识别的EPROM存储结构，见下表：&nbsp;<br/>EPROM内容<br/>地址&nbsp;<br/>08AAh或10AAh&nbsp;<br/>SWWSR(等待状态产生寄存器)值16&nbsp;<br/>BSCR(页切换控制寄存器)值16&nbsp;<br/>入口点XPC(外部存储器映射寄存器)值7&nbsp;<br/>入口点PC(程序地址寄存器)值16&nbsp;<br/>第一块的大小16&nbsp;<br/>第一块的入口点XPC(外部存储器映射寄存器)值7&nbsp;<br/>第一块的入口点PC(程序地址寄存器)值16&nbsp;<br/>代码(1)16&nbsp;<br/>......&nbsp;<br/>代码(N)16&nbsp;<br/>最后一块的大小16&nbsp;<br/>最后一块的入口点XPC(外部存储器映射寄存器)值7&nbsp;<br/>最后一块的入口点PC(程序地址寄存器)值16&nbsp;<br/>代码(1)16&nbsp;<br/>......&nbsp;<br/>代码(N)16&nbsp;<br/>0000h(标志引导表结束)&nbsp;<br/>......&nbsp;<br/>......&nbsp;<br/>......&nbsp;<br/>EPROM的启始地址(如8000h)&nbsp;<br/>&nbsp;<br/>首地址&nbsp;&nbsp;<br/>&nbsp;<br/>&nbsp;<br/>&nbsp;<br/>&nbsp;<br/>&nbsp;<br/>&nbsp;<br/>&nbsp;<br/>&nbsp;<br/>FFFFh&nbsp;&nbsp;<br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;-BSCR&nbsp;0f800h&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;&nbsp;&nbsp;；设置4K为一页，页面切换时插入1个等待状态&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;-o&nbsp;cdpd.hex&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;&nbsp;&nbsp;&nbsp;；转换成cdpd.hex文件&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;-i&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;；intel格式&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;-boot&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;；把所有的程序块装入EPROM&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;-bootorg&nbsp;8000h&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;；从EPROM存储器的8000h处开始写入程序内容&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;-memwidth&nbsp;8&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;&nbsp;&nbsp;&nbsp;；系统数据宽度转为8位，以避免生成2个文件&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;-romwidth&nbsp;8&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;&nbsp;&nbsp;&nbsp;；EPROM&nbsp;数据宽度为8位&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;-e&nbsp;0840h&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;；从0840h开始执行程序&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;-map&nbsp;wfcdpd.mxp&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;；生成EPROM存储器占用映射&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;这时生成的cdpd.hex可以直接写入EPROM。需要说明320C5409的外部RAM范围是从8000h～FFFFh，所以设首地址为8000h。但是对C54X系列而言，其转换有个BUG，即它总是不能在0XFFFF处写入从外部&nbsp;EPROM&nbsp;存储器装载的开始地址，只好自己填入。对本例而言在0XFFFF处写0X80，在0XFFFF处写0X00。&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;&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;&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;&nbsp;&nbsp;&nbsp;]]></description>
		</item>
		
			<item>
			<link>http://www.shinian10.com/default.asp?id=561</link>
			<title><![CDATA[CCS查看DSP程序运行时间]]></title>
			<author>zcdelphi7@126.com(zcjohnson)</author>
			<category><![CDATA[DSP技术]]></category>
			<pubDate>Fri,18 Jul 2008 08:43:02 +0800</pubDate>
			<guid>http://www.shinian10.com/default.asp?id=561</guid>	
		<description><![CDATA[1．进入CCS环境，装载已有工程，并load生成的.out文件，并找到要察看代码执行周期的代码处。如图1所示。<br/><img src="http://www.dzkf.cn/upimg/allimg/0707/1_18124709.JPG" border="0" alt=""/><br/>&nbsp;&nbsp;<br/>图1<br/>1．&nbsp;选择ccs的菜单Profiler中的enable&nbsp;clock,如图所示。<br/>&nbsp;<br/><img src="http://www.dzkf.cn/upimg/allimg/0707/1_18124746.JPG" border="0" alt=""/><br/>&nbsp;<br/>图2<br/>2．&nbsp;选择Profiler菜单下的&nbsp;clock&nbsp;setup子菜单，并在Instruction&nbsp;Cycle中输入你的DSP时钟周期，它的单位为纳秒，例如，2407的系统时钟为40MHz,你就该填入25,如果是2812系统时钟为150MHz,就该填入6.67ns，其他配置不动，然后确定。如图3所示。<br/><img src="http://www.dzkf.cn/upimg/allimg/0707/1_18124807.JPG" border="0" alt=""/><br/>&nbsp;&nbsp;<br/>图3<br/>3．&nbsp;选择Profiler菜单下的Start&nbsp;New&nbsp;Session子菜单，出现如图4所示的对话框，可以改名字，也可以不改，本例中不修改，直接确定。<br/><img src="http://www.dzkf.cn/upimg/allimg/0707/1_18124827.JPG" border="0" alt=""/><br/>&nbsp;&nbsp;<br/>图4<br/>4．&nbsp;通过第四部设定后就出现了如图5所示的一个窗体。<br/><img src="http://www.dzkf.cn/upimg/allimg/0707/1_18124905.JPG" border="0" alt=""/><br/>&nbsp;<br/>这个窗体中，有四个选项卡，其中Files为以源文件列出统计数据，Functions选项卡用于剖析程序中的函数，Ranges用于剖析一段连续的代码，Setup用于设置开始点和结束点，用于剖析不连续的代码。<br/>窗体的左边按钮的含义为：（这里介绍主要的）<br/>&nbsp;<br/><img src="http://www.dzkf.cn/upimg/allimg/0707/1_18124931.JPG" border="0" alt=""/><br/>&nbsp;剖析所有的函数。<br/>&nbsp;<br/><img src="http://www.dzkf.cn/upimg/allimg/0707/1_18124948.JPG" border="0" alt=""/><br/>&nbsp;建立剖析区域。<br/>&nbsp;<br/><img src="http://www.dzkf.cn/upimg/allimg/0707/1_18125010.JPG" border="0" alt=""/><br/>&nbsp;设置开始点。<br/>&nbsp;<br/><img src="http://www.dzkf.cn/upimg/allimg/0707/1_18125026.JPG" border="0" alt=""/><br/>&nbsp;设置结束点。<br/>在窗体中剖析数据有一个表格，用红框圈起来的，每个表格的字段名的含义为：<br/>Code&nbsp;size:剖析代码的大小，以程序存储器最小可寻址单元为单位，此值在剖析过程中不会发生变化。&nbsp;<br/>Incl.&nbsp;Count:在统计过程中，程序运行进入剖析代码段的次数&nbsp;<br/>Incl.&nbsp;Total:&nbsp;在统计工程中剖析代码段消耗的所有时钟周期（如果是统计时钟周期的话，CCS还可以统计子程序调用等其他计数，统计其他特性则显示相应的值）。&nbsp;<br/>Incl.&nbsp;Maximum:&nbsp;执行剖析代码段一遍（包括在剖析代码段中对子程序的调用）消耗的最大时钟周期（由于每次进入剖析代码段的初始条件不同等原因，每次运行剖析代码段消耗的时钟周期可能不同）；&nbsp;<br/>Incl.&nbsp;Minimum:&nbsp;&nbsp;执行剖析代码段一遍（包括在剖析代码段中对子程序的调用）消耗的最小时钟周期&nbsp;<br/>Incl.&nbsp;Average:&nbsp;剖析代码段执行一遍（包括在剖析代码段中对子程序的调用）消耗的平均时钟周期。--<br/><span style="color:#ff0000">以上这三个就是用户关心的代码执行的时钟周期。</span><br/>&nbsp;<br/>Excl.&nbsp;Count:在统计过程中，程序运行进入剖析代码段的次数，与Incl.Count的值相同。&nbsp;<br/>Excl.&nbsp;Maximum:&nbsp;剖析代码段执行一遍（不包括在剖析代码段中对子程序的调用）消耗的最大时钟周期。&nbsp;<br/>Excl.&nbsp;Minimum:&nbsp;剖析代码段执行一遍（不包括在剖析代码段中对子程序的调用）消耗的最小时钟周期。&nbsp;<br/>Excl.&nbsp;Average:&nbsp;剖析代码段执行一遍（不包括在剖析代码段中对子程序的调用）消耗的平均时钟周期。&nbsp;<br/>5．&nbsp;以剖析函数为例，找到该函数，然后将光标放在该函数的函数名上，选择建立剖析区域按钮，图中用红框框起来的那个按钮。如图6所示。<br/>&nbsp;<br/><img src="http://www.dzkf.cn/upimg/allimg/0707/1_18125220.JPG" border="0" alt=""/><br/>&nbsp;<br/>图六。<br/>6．&nbsp;出现对话框，如图7所示，因为我们做的是function，所以不用修改，如果做的是一段代码，只要把下拉菜单里的function改成Range即可。<br/><img src="http://www.dzkf.cn/upimg/allimg/0707/1_18125244.JPG" border="0" alt=""/><br/>&nbsp;&nbsp;<br/>图7<br/>7．&nbsp;点击OK后出现，如图8所示，各个字段已经被赋予了初值。<br/><img src="http://www.dzkf.cn/upimg/allimg/0707/1_18125306.JPG" border="0" alt=""/><br/>&nbsp;&nbsp;<br/>图8<br/>8．&nbsp;接下来运行程序RUN,就可以剖析出你所选中的代码的执行周期了。如图所示。且这些值是随着程序运行的时间而变化的，动态显示。<br/><img src="http://www.dzkf.cn/upimg/allimg/0707/1_18125337.JPG" border="0" alt=""/><br/>&nbsp;<br/>&nbsp;图9<br/>&nbsp;&nbsp;&nbsp;&nbsp;值得注意的是，图中显示的是时钟周期，不是时间，要看时间的化，用时钟周期乘以前面设定的时钟周期ns值，如6.67ns，就是最终函数执行的时间了。]]></description>
		</item>
		
			<item>
			<link>http://www.shinian10.com/default.asp?id=560</link>
			<title><![CDATA[中断成功进入的一些心得]]></title>
			<author>zcdelphi7@126.com(zcjohnson)</author>
			<category><![CDATA[DSP技术]]></category>
			<pubDate>Thu,17 Jul 2008 16:59:30 +0800</pubDate>
			<guid>http://www.shinian10.com/default.asp?id=560</guid>	
		<description><![CDATA[1.首先，是在主函数里需要注意的一些步骤，以T1的周期中断为例：<br/><br/>void&nbsp;main(void)<br/>{<br/>&nbsp;&nbsp;.........<br/>&nbsp;&nbsp;.........<br/>&nbsp;&nbsp;//禁止和清除所有CPU中断<br/>&nbsp;&nbsp;&nbsp;DINT;<br/>&nbsp;&nbsp;&nbsp;IER=0x0000;<br/>&nbsp;&nbsp;&nbsp;IFR=0x0000;<br/>&nbsp;&nbsp;&nbsp;<br/>//初始化中断向量<br/>&nbsp;&nbsp;&nbsp;InitPieCtrl();<br/>&nbsp;&nbsp;&nbsp;<br/>//初始化中断向量表<br/>&nbsp;&nbsp;&nbsp;InitPieVectTable();<br/><br/>//使能PIE中断<br/>&nbsp;&nbsp;&nbsp;PieCtrlRegs.PIEIER2.bit.INTx4=1;&nbsp;&nbsp;&nbsp;//使能T1周期中断<br/><br/>//开CPU中断<br/>&nbsp;&nbsp;&nbsp;IER&nbsp;|=M_INT2;&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;//开中断2<br/><br/>EINT;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//使能全局中断<br/>&nbsp;&nbsp;ERTM;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//使能实时中断<br/><br/>}<br/><br/>2.中断函数<br/>TI的标准文件里都已经做好了中断函数，只要在DSP28_DefaultIsr.C里找到相应的中断函数，把所要实现的程序添加在里面就可以了。<br/>interrupt&nbsp;void&nbsp;T1PINT_ISR(void)&nbsp;&nbsp;&nbsp;&nbsp;<br/>{<br/>&nbsp;&nbsp;...........<br/>&nbsp;&nbsp;...........&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;EvaRegs.EVAIFRA.bit.T1PINT=1;&nbsp;&nbsp;&nbsp;//清除中断标志位<br/>&nbsp;&nbsp;PieCtrlRegs.PIEACK.bit.ACK2=1;&nbsp;&nbsp;//响应同组中断<br/>&nbsp;&nbsp;EINT;&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;&nbsp;//开全局中断<br/>}<br/><br/>在退出中断的时候，一定要注意需要清除相应的中断标志位和开放同组中断，这样才能保证下一次成功进入中断。CPU级的中断标志位是不需要人工清除的，而PIE级和外设级的中断标志位是需要人工清除的。]]></description>
		</item>
		
			<item>
			<link>http://www.shinian10.com/default.asp?id=559</link>
			<title><![CDATA[F2812中用C语言来实现中断的说明]]></title>
			<author>zcdelphi7@126.com(zcjohnson)</author>
			<category><![CDATA[DSP技术]]></category>
			<pubDate>Thu,17 Jul 2008 16:28:15 +0800</pubDate>
			<guid>http://www.shinian10.com/default.asp?id=559</guid>	
		<description><![CDATA[关于F2812中用C语言来实现中断的说明：<br/>1.首先在.cmd中定位系统中断表：<br/>MEMORY<br/>{<br/>PAGE&nbsp;0&nbsp;:&nbsp;<br/>&nbsp;......................................<br/>PAGE&nbsp;1&nbsp;:&nbsp;<br/>&nbsp;......................................<br/>&nbsp;&nbsp;&nbsp;PIE_VECT&nbsp;&nbsp;&nbsp;:&nbsp;o&#114;igin&nbsp;=&nbsp;0x000D00,&nbsp;length&nbsp;=&nbsp;0x000100<br/><br/>&nbsp;......................................&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>}<br/>&nbsp;<br/>&nbsp;<br/>SECTIONS<br/>{<br/>&nbsp;&nbsp;&nbsp;...................................&nbsp;<br/>&nbsp;&nbsp;&nbsp;PieVectTable&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&gt;&nbsp;PIE_VECT,&nbsp;&nbsp;&nbsp;PAGE&nbsp;=&nbsp;1<br/>&nbsp;.....................................<br/>}<br/>2.在C中制定该中断的结构体：<br/>#pragma&nbsp;DATA_SECTION(PieVectTable,&#34;PieVectTable&#34;);<br/>struct&nbsp;PIE_VECT_TABLE&nbsp;PieVectTable;（在DSP28_GlobalVariableDefs.C中初始化）<br/>3.用一组常数（按照中断向量的顺序）初始化该名字为PIE_VECT_TABLE的表：<br/>typedef&nbsp;interrupt&nbsp;void(*PINT)(void);<br/><br/>//&nbsp;Define&nbsp;Vector&nbsp;Table:<br/>struct&nbsp;PIE_VECT_TABLE&nbsp;{<br/><br/>//&nbsp;Reset&nbsp;is&nbsp;never&nbsp;fetched&nbsp;from&nbsp;this&nbsp;table.&nbsp;&nbsp;<br/>//&nbsp;It&nbsp;will&nbsp;always&nbsp;be&nbsp;fetched&nbsp;from&nbsp;0x3FFFC0&nbsp;in&nbsp;either<br/>//&nbsp;boot&nbsp;ROM&nbsp;o&#114;&nbsp;XINTF&nbsp;Zone&nbsp;7&nbsp;depending&nbsp;on&nbsp;the&nbsp;state&nbsp;of<br/>//&nbsp;the&nbsp;XMP/MC&nbsp;input&nbsp;signal.&nbsp;&nbsp;On&nbsp;the&nbsp;F2810&nbsp;it&nbsp;is&nbsp;always<br/>//&nbsp;fetched&nbsp;from&nbsp;boot&nbsp;ROM.&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PIE1_RESERVED;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PIE2_RESERVED;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PIE3_RESERVED;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PIE4_RESERVED;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PIE5_RESERVED;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PIE6_RESERVED;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PIE7_RESERVED;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PIE8_RESERVED;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PIE9_RESERVED;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PIE10_RESERVED;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PIE11_RESERVED;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PIE12_RESERVED;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PIE13_RESERVED;<br/><br/>//&nbsp;Non-Peripheral&nbsp;Interrupts:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XINT13;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;XINT13<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TINT2;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CPU-Timer2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DATALOG;&nbsp;&nbsp;&nbsp;//&nbsp;Datalogging&nbsp;interrupt<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RTOSINT;&nbsp;&nbsp;&nbsp;//&nbsp;RTOS&nbsp;interrupt<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMUINT;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Emulation&nbsp;interrupt<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XNMI;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Non-maskable&nbsp;interrupt<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ILLEGAL;&nbsp;&nbsp;&nbsp;//&nbsp;Illegal&nbsp;operation&nbsp;TRAP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USER0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;User&nbsp;Defined&nbsp;trap&nbsp;0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USER1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;User&nbsp;Defined&nbsp;trap&nbsp;1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USER2;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;User&nbsp;Defined&nbsp;trap&nbsp;2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USER3;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;User&nbsp;Defined&nbsp;trap&nbsp;3<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USER4;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;User&nbsp;Defined&nbsp;trap&nbsp;4<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USER5;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;User&nbsp;Defined&nbsp;trap&nbsp;5<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USER6;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;User&nbsp;Defined&nbsp;trap&nbsp;6<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USER7;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;User&nbsp;Defined&nbsp;trap&nbsp;7<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USER8;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;User&nbsp;Defined&nbsp;trap&nbsp;8<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USER9;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;User&nbsp;Defined&nbsp;trap&nbsp;9<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USER10;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;User&nbsp;Defined&nbsp;trap&nbsp;10<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USER11;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;User&nbsp;Defined&nbsp;trap&nbsp;11<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>//&nbsp;Group&nbsp;1&nbsp;PIE&nbsp;Peripheral&nbsp;Vectors:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PDPINTA;&nbsp;&nbsp;&nbsp;//&nbsp;EV-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PDPINTB;&nbsp;&nbsp;&nbsp;//&nbsp;EV-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd1_3;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XINT1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XINT2;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ADCINT;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;ADC<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TINT0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Timer&nbsp;0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WAKEINT;&nbsp;&nbsp;&nbsp;//&nbsp;WD<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>//&nbsp;Group&nbsp;2&nbsp;PIE&nbsp;Peripheral&nbsp;Vectors:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CMP1INT;&nbsp;&nbsp;&nbsp;//&nbsp;EV-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CMP2INT;&nbsp;&nbsp;&nbsp;//&nbsp;EV-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CMP3INT;&nbsp;&nbsp;&nbsp;//&nbsp;EV-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T1PINT;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;EV-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T1CINT;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;EV-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T1UFINT;&nbsp;&nbsp;&nbsp;//&nbsp;EV-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T1OFINT;&nbsp;&nbsp;&nbsp;//&nbsp;EV-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd2_8;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>//&nbsp;Group&nbsp;3&nbsp;PIE&nbsp;Peripheral&nbsp;Vectors:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T2PINT;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;EV-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T2CINT;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;EV-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T2UFINT;&nbsp;&nbsp;&nbsp;//&nbsp;EV-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T2OFINT;&nbsp;&nbsp;&nbsp;//&nbsp;EV-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CAPINT1;&nbsp;&nbsp;&nbsp;//&nbsp;EV-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CAPINT2;&nbsp;&nbsp;&nbsp;//&nbsp;EV-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CAPINT3;&nbsp;&nbsp;&nbsp;//&nbsp;EV-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd3_8;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>//&nbsp;Group&nbsp;4&nbsp;PIE&nbsp;Peripheral&nbsp;Vectors:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CMP4INT;&nbsp;&nbsp;&nbsp;//&nbsp;EV-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CMP5INT;&nbsp;&nbsp;&nbsp;//&nbsp;EV-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CMP6INT;&nbsp;&nbsp;&nbsp;//&nbsp;EV-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T3PINT;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;EV-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T3CINT;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;EV-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T3UFINT;&nbsp;&nbsp;&nbsp;//&nbsp;EV-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T3OFINT;&nbsp;&nbsp;&nbsp;//&nbsp;EV-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd4_8;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>//&nbsp;Group&nbsp;5&nbsp;PIE&nbsp;Peripheral&nbsp;Vectors:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T4PINT;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;EV-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T4CINT;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;EV-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T4UFINT;&nbsp;&nbsp;&nbsp;//&nbsp;EV-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T4OFINT;&nbsp;&nbsp;&nbsp;//&nbsp;EV-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CAPINT4;&nbsp;&nbsp;&nbsp;//&nbsp;EV-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CAPINT5;&nbsp;&nbsp;&nbsp;//&nbsp;EV-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CAPINT6;&nbsp;&nbsp;&nbsp;//&nbsp;EV-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd5_8;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/><br/>//&nbsp;Group&nbsp;6&nbsp;PIE&nbsp;Peripheral&nbsp;Vectors:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPIRXINTA;&nbsp;//&nbsp;SPI-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPITXINTA;&nbsp;//&nbsp;SPI-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd6_3;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd6_4;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MRINTA;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;McBSP-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MXINTA;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;McBSP-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd6_7;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd6_8;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>//&nbsp;Group&nbsp;7&nbsp;PIE&nbsp;Peripheral&nbsp;Vectors:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd7_1;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd7_2;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd7_3;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd7_4;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd7_5;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd7_6;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd7_7;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd7_8;<br/><br/>//&nbsp;Group&nbsp;8&nbsp;PIE&nbsp;Peripheral&nbsp;Vectors:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd8_1;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd8_2;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd8_3;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd8_4;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd8_5;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd8_6;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd8_7;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd8_8;&nbsp;<br/><br/>//&nbsp;Group&nbsp;9&nbsp;PIE&nbsp;Peripheral&nbsp;Vectors:&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RXAINT;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;SCI-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TXAINT;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;SCI-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RXBINT;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;SCI-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TXBINT;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;SCI-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECAN0INTA;&nbsp;//&nbsp;eCAN<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECAN1INTA;&nbsp;//&nbsp;eCAN<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd9_7;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd9_8;<br/><br/>//&nbsp;Group&nbsp;10&nbsp;PIE&nbsp;Peripheral&nbsp;Vectors:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd10_1;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd10_2;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd10_3;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd10_4;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd10_5;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd10_6;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd10_7;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd10_8;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>//&nbsp;Group&nbsp;11&nbsp;PIE&nbsp;Peripheral&nbsp;Vectors:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd11_1;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd11_2;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd11_3;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd11_4;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd11_5;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd11_6;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd11_7;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd11_8;<br/><br/>//&nbsp;Group&nbsp;12&nbsp;PIE&nbsp;Peripheral&nbsp;Vectors:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd12_1;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd12_2;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd12_3;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd12_4;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd12_5;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd12_6;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd12_7;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd12_8;<br/>};<br/>然后在使我们在.cmd文件中定义的表有以上属性：<br/>extern&nbsp;struct&nbsp;PIE_VECT_TABLE&nbsp;PieVectTable;(在.h文件中）<br/>4.初始化该表（在.c文件中）使之能够为主程序所使用：<br/>const&nbsp;struct&nbsp;PIE_VECT_TABLE&nbsp;PieVectTableInit&nbsp;=&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PIE_RESERVED,&nbsp;&nbsp;//&nbsp;Reserved&nbsp;space<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PIE_RESERVED,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PIE_RESERVED,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PIE_RESERVED,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PIE_RESERVED,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PIE_RESERVED,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PIE_RESERVED,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PIE_RESERVED,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PIE_RESERVED,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PIE_RESERVED,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PIE_RESERVED,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PIE_RESERVED,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PIE_RESERVED,&nbsp;&nbsp;&nbsp;<br/><br/><br/>//&nbsp;Non-Peripheral&nbsp;Interrupts<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INT13_ISR,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;XINT13&nbsp;o&#114;&nbsp;CPU-Timer&nbsp;1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INT14_ISR,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CPU-Timer2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DATALOG_ISR,&nbsp;&nbsp;&nbsp;//&nbsp;Datalogging&nbsp;interrupt<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RTOSINT_ISR,&nbsp;&nbsp;&nbsp;//&nbsp;RTOS&nbsp;interrupt<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMUINT_ISR,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Emulation&nbsp;interrupt<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NMI_ISR,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Non-maskable&nbsp;interrupt<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ILLEGAL_ISR,&nbsp;&nbsp;&nbsp;//&nbsp;Illegal&nbsp;operation&nbsp;TRAP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USER0_ISR,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;User&nbsp;Defined&nbsp;trap&nbsp;0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USER1_ISR,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;User&nbsp;Defined&nbsp;trap&nbsp;1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USER2_ISR,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;User&nbsp;Defined&nbsp;trap&nbsp;2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USER3_ISR,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;User&nbsp;Defined&nbsp;trap&nbsp;3<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USER4_ISR,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;User&nbsp;Defined&nbsp;trap&nbsp;4<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USER5_ISR,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;User&nbsp;Defined&nbsp;trap&nbsp;5<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USER6_ISR,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;User&nbsp;Defined&nbsp;trap&nbsp;6<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USER7_ISR,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;User&nbsp;Defined&nbsp;trap&nbsp;7<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USER8_ISR,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;User&nbsp;Defined&nbsp;trap&nbsp;8<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USER9_ISR,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;User&nbsp;Defined&nbsp;trap&nbsp;9<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USER10_ISR,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;User&nbsp;Defined&nbsp;trap&nbsp;10<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USER11_ISR,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;User&nbsp;Defined&nbsp;trap&nbsp;11<br/><br/>//&nbsp;Group&nbsp;1&nbsp;PIE&nbsp;Vectors<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PDPINTA_ISR,&nbsp;&nbsp;&nbsp;//&nbsp;EV-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PDPINTB_ISR,&nbsp;&nbsp;&nbsp;//&nbsp;EV-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XINT1_ISR,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XINT2_ISR,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ADCINT_ISR,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;ADC<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TINT0_ISR,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Timer&nbsp;0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WAKEINT_ISR,&nbsp;&nbsp;&nbsp;//&nbsp;WD<br/><br/>//&nbsp;Group&nbsp;2&nbsp;PIE&nbsp;Vectors<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CMP1INT_ISR,&nbsp;&nbsp;&nbsp;//&nbsp;EV-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CMP2INT_ISR,&nbsp;&nbsp;&nbsp;//&nbsp;EV-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CMP3INT_ISR,&nbsp;&nbsp;&nbsp;//&nbsp;EV-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T1PINT_ISR,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;EV-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T1CINT_ISR,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;EV-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T1UFINT_ISR,&nbsp;&nbsp;&nbsp;//&nbsp;EV-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T1OFINT_ISR,&nbsp;&nbsp;&nbsp;//&nbsp;EV-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>//&nbsp;Group&nbsp;3&nbsp;PIE&nbsp;Vectors<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T2PINT_ISR,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;EV-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T2CINT_ISR,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;EV-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T2UFINT_ISR,&nbsp;&nbsp;&nbsp;//&nbsp;EV-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T2OFINT_ISR,&nbsp;&nbsp;&nbsp;//&nbsp;EV-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CAPINT1_ISR,&nbsp;&nbsp;&nbsp;//&nbsp;EV-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CAPINT2_ISR,&nbsp;&nbsp;&nbsp;//&nbsp;EV-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CAPINT3_ISR,&nbsp;&nbsp;&nbsp;//&nbsp;EV-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>//&nbsp;Group&nbsp;4&nbsp;PIE&nbsp;Vectors<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CMP4INT_ISR,&nbsp;&nbsp;&nbsp;//&nbsp;EV-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CMP5INT_ISR,&nbsp;&nbsp;&nbsp;//&nbsp;EV-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CMP6INT_ISR,&nbsp;&nbsp;&nbsp;//&nbsp;EV-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T3PINT_ISR,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;EV-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T3CINT_ISR,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;EV-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T3UFINT_ISR,&nbsp;&nbsp;&nbsp;//&nbsp;EV-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T3OFINT_ISR,&nbsp;&nbsp;&nbsp;//&nbsp;EV-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>//&nbsp;Group&nbsp;5&nbsp;PIE&nbsp;Vectors<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T4PINT_ISR,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;EV-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T4CINT_ISR,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;EV-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T4UFINT_ISR,&nbsp;&nbsp;&nbsp;//&nbsp;EV-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T4OFINT_ISR,&nbsp;&nbsp;&nbsp;//&nbsp;EV-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CAPINT4_ISR,&nbsp;&nbsp;&nbsp;//&nbsp;EV-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CAPINT5_ISR,&nbsp;&nbsp;&nbsp;//&nbsp;EV-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CAPINT6_ISR,&nbsp;&nbsp;&nbsp;//&nbsp;EV-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/><br/>//&nbsp;Group&nbsp;6&nbsp;PIE&nbsp;Vectors<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPIRXINTA_ISR,&nbsp;&nbsp;&nbsp;//&nbsp;SPI-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPITXINTA_ISR,&nbsp;&nbsp;&nbsp;//&nbsp;SPI-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MRINTA_ISR,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;McBSP-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MXINTA_ISR,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;McBSP-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>//&nbsp;Group&nbsp;7&nbsp;PIE&nbsp;Vectors<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/><br/>//&nbsp;Group&nbsp;8&nbsp;PIE&nbsp;Vectors<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>//&nbsp;Group&nbsp;9&nbsp;PIE&nbsp;Vectors&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SCIRXINTA_ISR,&nbsp;//&nbsp;SCI-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SCITXINTA_ISR,&nbsp;//&nbsp;SCI-A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SCIRXINTB_ISR,&nbsp;//&nbsp;SCI-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SCITXINTB_ISR,&nbsp;//&nbsp;SCI-B<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECAN0INTA_ISR,&nbsp;//&nbsp;eCAN<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECAN1INTA_ISR,&nbsp;//&nbsp;eCAN<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>//&nbsp;Group&nbsp;10&nbsp;PIE&nbsp;Vectors<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>//&nbsp;Group&nbsp;11&nbsp;PIE&nbsp;Vectors<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/><br/>//&nbsp;Group&nbsp;12&nbsp;PIE&nbsp;Vectors<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsvd_ISR,&nbsp;&nbsp;&nbsp;<br/>};<br/><br/><br/>//---------------------------------------------------------------------------<br/>//&nbsp;InitPieVectTable:&nbsp;<br/>//---------------------------------------------------------------------------<br/>//&nbsp;This&nbsp;function&nbsp;initializes&nbsp;the&nbsp;PIE&nbsp;vector&nbsp;table&nbsp;to&nbsp;a&nbsp;known&nbsp;state.<br/>//&nbsp;This&nbsp;function&nbsp;must&nbsp;be&nbsp;executed&nbsp;after&nbsp;boot&nbsp;time.<br/>//<br/><br/>void&nbsp;InitPieVectTable(void)<br/>{<br/>&nbsp;int16&nbsp;i;<br/>&nbsp;Uint32&nbsp;*Source&nbsp;=&nbsp;(void&nbsp;*)&nbsp;&amp;PieVectTableInit;<br/>&nbsp;Uint32&nbsp;*Dest&nbsp;=&nbsp;(void&nbsp;*)&nbsp;&amp;PieVectTable;<br/>&nbsp;&nbsp;<br/>&nbsp;EALLOW;&nbsp;<br/>&nbsp;for(i=0;&nbsp;i&nbsp;&lt;&nbsp;128;&nbsp;i++)<br/>&nbsp;&nbsp;*Dest++&nbsp;=&nbsp;*Source++;&nbsp;<br/>&nbsp;EDIS;<br/><br/>&nbsp;//&nbsp;Enable&nbsp;the&nbsp;PIE&nbsp;Vector&nbsp;Table<br/>&nbsp;PieCtrl.PIECRTL.bit.ENPIE&nbsp;=&nbsp;1;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>}<br/>5.中断服务程序：<br/>让以上的数值指向你所要的服务程序，例如：<br/>PieVectTable.TINT2&nbsp;=&nbsp;&amp;ISRTimer2;<br/>那么，ISRTimer2也就成了中断服务程序，<br/>×××切记：一定要在主程序的开始先声明该程序：<br/>interrupt&nbsp;void&nbsp;ISRTimer2(void);<br/><br/>.............<br/>.............<br/>然后按照您的需要编制该程序：<br/>interrupt&nbsp;void&nbsp;ISRTimer2(void)<br/>{<br/>&nbsp;CpuTimer2.InterruptCount++;<br/>}]]></description>
		</item>
		
			<item>
			<link>http://www.shinian10.com/default.asp?id=558</link>
			<title><![CDATA[Matlab图像函数大全]]></title>
			<author>zcdelphi7@126.com(zcjohnson)</author>
			<category><![CDATA[DSP技术]]></category>
			<pubDate>Thu,17 Jul 2008 16:22:04 +0800</pubDate>
			<guid>http://www.shinian10.com/default.asp?id=558</guid>	
		<description><![CDATA[<img src="http://kom.aau.dk/~persa/matlab_pic.png" border="0" alt=""/><br/>matlab&nbsp;函数大全<br/>abs&nbsp;绝对值、模、字符的ASCII码值&nbsp;<br/>acos&nbsp;反余弦&nbsp;<br/>acosh&nbsp;反双曲余弦&nbsp;<br/>acot&nbsp;反余切&nbsp;<br/>acoth&nbsp;反双曲余切&nbsp;<br/>acsc&nbsp;反余割&nbsp;<br/>acsch&nbsp;反双曲余割&nbsp;<br/>align&nbsp;启动图形对象几何位置排列工具&nbsp;<br/>all&nbsp;所有元素非零为真&nbsp;<br/>angle&nbsp;相角&nbsp;<br/>ans&nbsp;表达式计算结果的缺省变量名&nbsp;<br/>any&nbsp;所有元素非全零为真&nbsp;<br/>area&nbsp;面域图&nbsp;<br/>argnames&nbsp;函数M文件宗量名&nbsp;<br/>asec&nbsp;反正割&nbsp;<br/>asech&nbsp;反双曲正割&nbsp;<br/>asin&nbsp;反正弦&nbsp;<br/>asinh&nbsp;反双曲正弦&nbsp;<br/>assignin&nbsp;向变量赋值&nbsp;<br/>atan&nbsp;反正切&nbsp;<br/>atan2&nbsp;四象限反正切&nbsp;<br/>atanh&nbsp;反双曲正切&nbsp;<br/>autumn&nbsp;红黄调秋色图阵&nbsp;<br/>axes&nbsp;创建轴对象的低层指令&nbsp;<br/>axis&nbsp;控制轴刻度和风格的高层指令&nbsp;<br/><br/><br/>B&nbsp;b&nbsp;<br/><br/>bar&nbsp;二维直方图&nbsp;<br/>bar3&nbsp;三维直方图&nbsp;<br/>bar3h&nbsp;三维水平直方图&nbsp;<br/>barh&nbsp;二维水平直方图&nbsp;<br/>base2dec&nbsp;X进制转换为十进制&nbsp;<br/>bin2dec&nbsp;二进制转换为十进制&nbsp;<br/>blanks&nbsp;创建空格串&nbsp;<br/>bone&nbsp;蓝色调黑白色图阵&nbsp;<br/>box&nbsp;框状坐标轴&nbsp;<br/>break&nbsp;while&nbsp;或for&nbsp;环中断指令&nbsp;<br/>brighten&nbsp;亮度控制&nbsp;<br/><br/><br/>C&nbsp;c&nbsp;<br/><br/>capture&nbsp;（3版以前）捕获当前图形&nbsp;<br/>cart2pol&nbsp;直角坐标变为极或柱坐标&nbsp;<br/>cart2sph&nbsp;直角坐标变为球坐标&nbsp;<br/>cat&nbsp;串接成高维数组&nbsp;<br/>caxis&nbsp;色标尺刻度&nbsp;<br/>cd&nbsp;指定当前目录&nbsp;<br/>cdedit&nbsp;启动用户菜单、控件回调函数设计工具&nbsp;<br/>cdf2rdf&nbsp;复数特征值对角阵转为实数块对角阵&nbsp;<br/>ceil&nbsp;向正无穷取整&nbsp;<br/>cell&nbsp;创建元胞数组&nbsp;<br/>cell2struct&nbsp;元胞数组转换为构架数组&nbsp;<br/>celldisp&nbsp;显示元胞数组内容&nbsp;<br/>cellplot&nbsp;元胞数组内部结构图示&nbsp;<br/>char&nbsp;把数值、符号、内联类转换为字符对象&nbsp;<br/>chi2cdf&nbsp;分布累计概率函数&nbsp;<br/>chi2inv&nbsp;分布逆累计概率函数&nbsp;<br/>chi2pdf&nbsp;分布概率密度函数&nbsp;<br/>chi2rnd&nbsp;分布随机数发生器&nbsp;<br/>chol&nbsp;Cholesky分解&nbsp;<br/>clabel&nbsp;等位线标识&nbsp;<br/>cla&nbsp;清除当前轴&nbsp;<br/>class&nbsp;获知对象类别或创建对象&nbsp;<br/>clc&nbsp;清除指令窗&nbsp;<br/>clear&nbsp;清除内存变量和函数&nbsp;<br/>clf&nbsp;清除图对象&nbsp;<br/>clock&nbsp;时钟&nbsp;<br/>colorcube&nbsp;三浓淡多彩交叉色图矩阵&nbsp;<br/>colordef&nbsp;设置色彩缺省值&nbsp;<br/>colormap&nbsp;色图&nbsp;<br/>colspace&nbsp;列空间的基&nbsp;<br/>close&nbsp;关闭指定窗口&nbsp;<br/>colperm&nbsp;列排序置换向量&nbsp;<br/>comet&nbsp;彗星状轨迹图&nbsp;<br/>comet3&nbsp;三维彗星轨迹图&nbsp;<br/>compass&nbsp;射线图&nbsp;<br/>compose&nbsp;求复合函数&nbsp;<br/>cond&nbsp;（逆）条件数&nbsp;<br/>condeig&nbsp;计算特征值、特征向量同时给出条件数&nbsp;<br/>condest&nbsp;范&nbsp;-1条件数估计&nbsp;<br/>conj&nbsp;复数共轭&nbsp;<br/>contour&nbsp;等位线&nbsp;<br/>contourf&nbsp;填色等位线&nbsp;<br/>contour3&nbsp;三维等位线&nbsp;<br/>contourslice&nbsp;四维切片等位线图&nbsp;<br/>conv&nbsp;多项式乘、卷积&nbsp;<br/>cool&nbsp;青紫调冷色图&nbsp;<br/>copper&nbsp;古铜调色图&nbsp;<br/>cos&nbsp;余弦&nbsp;<br/>cosh&nbsp;双曲余弦&nbsp;<br/>cot&nbsp;余切&nbsp;<br/>coth&nbsp;双曲余切&nbsp;<br/>cplxpair&nbsp;复数共轭成对排列&nbsp;<br/>csc&nbsp;余割&nbsp;<br/>csch&nbsp;双曲余割&nbsp;<br/>cumsum&nbsp;元素累计和&nbsp;<br/>cumtrapz&nbsp;累计梯形积分&nbsp;<br/>cylinder&nbsp;创建圆柱&nbsp;<br/><br/><br/>D&nbsp;d&nbsp;<br/><br/>dblquad&nbsp;二重数值积分&nbsp;<br/>deal&nbsp;分配宗量&nbsp;<br/>deblank&nbsp;删去串尾部的空格符&nbsp;<br/>dec2base&nbsp;十进制转换为X进制&nbsp;<br/>dec2bin&nbsp;十进制转换为二进制&nbsp;<br/>dec2hex&nbsp;十进制转换为十六进制&nbsp;<br/>deconv&nbsp;多项式除、解卷&nbsp;<br/>delaunay&nbsp;Delaunay&nbsp;三角剖分&nbsp;<br/>del2&nbsp;离散Laplacian差分&nbsp;<br/>demo&nbsp;Matlab演示&nbsp;<br/>det&nbsp;行列式&nbsp;<br/>diag&nbsp;矩阵对角元素提取、创建对角阵&nbsp;<br/>diary&nbsp;Matlab指令窗文本内容记录&nbsp;<br/>diff&nbsp;数值差分、符号微分&nbsp;<br/>digits&nbsp;符号计算中设置符号数值的精度&nbsp;<br/>dir&nbsp;目录列表&nbsp;<br/>disp&nbsp;显示数组&nbsp;<br/>display&nbsp;显示对象内容的重载函数&nbsp;<br/>dlinmod&nbsp;离散系统的线性化模型&nbsp;<br/>dmperm&nbsp;矩阵Dulmage-Mendelsohn&nbsp;分解&nbsp;<br/>dos&nbsp;执行DOS&nbsp;指令并返回结果&nbsp;<br/>double&nbsp;把其他类型对象转换为双精度数值&nbsp;<br/>drawnow&nbsp;更新事件队列强迫Matlab刷新屏幕&nbsp;<br/>dsolve&nbsp;符号计算解微分方程&nbsp;<br/><br/><br/>E&nbsp;e&nbsp;<br/><br/>echo&nbsp;M文件被执行指令的显示&nbsp;<br/>edit&nbsp;启动M文件编辑器&nbsp;<br/>eig&nbsp;求特征值和特征向量&nbsp;<br/>eigs&nbsp;求指定的几个特征值&nbsp;<br/>end&nbsp;控制流FOR等结构体的结尾元素下标&nbsp;<br/>eps&nbsp;浮点相对精度&nbsp;<br/>error&nbsp;显示出错信息并中断执行&nbsp;<br/>errortrap&nbsp;错误发生后程序是否继续执行的控制&nbsp;<br/>erf&nbsp;误差函数&nbsp;<br/>erfc&nbsp;误差补函数&nbsp;<br/>erfcx&nbsp;刻度误差补函数&nbsp;<br/>erfinv&nbsp;逆误差函数&nbsp;<br/>errorbar&nbsp;带误差限的曲线图&nbsp;<br/>etreeplot&nbsp;画消去树&nbsp;<br/>eval&nbsp;串演算指令&nbsp;<br/>evalin&nbsp;跨空间串演算指令&nbsp;<br/>exist&nbsp;检查变量或函数是否已定义&nbsp;<br/>exit&nbsp;退出Matlab环境&nbsp;<br/>exp&nbsp;指数函数&nbsp;<br/>expand&nbsp;符号计算中的展开操作&nbsp;<br/>expint&nbsp;指数积分函数&nbsp;<br/>expm&nbsp;常用矩阵指数函数&nbsp;<br/>expm1&nbsp;Pade法求矩阵指数&nbsp;<br/>expm2&nbsp;Taylor法求矩阵指数&nbsp;<br/>expm3&nbsp;特征值分解法求矩阵指数&nbsp;<br/>eye&nbsp;单位阵&nbsp;<br/>ezcontour&nbsp;画等位线的简捷指令&nbsp;<br/>ezcontourf&nbsp;画填色等位线的简捷指令&nbsp;<br/>ezgraph3&nbsp;画表面图的通用简捷指令&nbsp;<br/>ezmesh&nbsp;画网线图的简捷指令&nbsp;<br/>ezmeshc&nbsp;画带等位线的网线图的简捷指令&nbsp;<br/>ezplot&nbsp;画二维曲线的简捷指令&nbsp;<br/>ezplot3&nbsp;画三维曲线的简捷指令&nbsp;<br/>ezpolar&nbsp;画极坐标图的简捷指令&nbsp;<br/>ezsurf&nbsp;画表面图的简捷指令&nbsp;<br/>ezsurfc&nbsp;画带等位线的表面图的简捷指令&nbsp;<br/><br/>&nbsp;<br/><br/>F&nbsp;f&nbsp;<br/><br/>factor&nbsp;符号计算的因式分解&nbsp;<br/>feather&nbsp;羽毛图&nbsp;<br/>feedback&nbsp;反馈连接&nbsp;<br/>feval&nbsp;执行由串指定的函数&nbsp;<br/>fft&nbsp;离散Fourier变换&nbsp;<br/>fft2&nbsp;二维离散Fourier变换&nbsp;<br/>fftn&nbsp;高维离散Fourier变换&nbsp;<br/>fftshift&nbsp;直流分量对中的谱&nbsp;<br/>fieldnames&nbsp;构架域名&nbsp;<br/>figure&nbsp;创建图形窗&nbsp;<br/>fill3&nbsp;三维多边形填色图&nbsp;<br/>find&nbsp;寻找非零元素下标&nbsp;<br/>findobj&nbsp;寻找具有指定属性的对象图柄&nbsp;<br/>findstr&nbsp;寻找短串的起始字符下标&nbsp;<br/>findsym&nbsp;机器确定内存中的符号变量&nbsp;<br/>finverse&nbsp;符号计算中求反函数&nbsp;<br/>fix&nbsp;向零取整&nbsp;<br/>flag&nbsp;红白蓝黑交错色图阵&nbsp;<br/>fliplr&nbsp;矩阵的左右翻转&nbsp;<br/>flipud&nbsp;矩阵的上下翻转&nbsp;<br/>flipdim&nbsp;矩阵沿指定维翻转&nbsp;<br/>floor&nbsp;向负无穷取整&nbsp;<br/>flops&nbsp;浮点运算次数&nbsp;<br/>flow&nbsp;Matlab提供的演示数据&nbsp;<br/>fmin&nbsp;求单变量非线性函数极小值点（旧版）&nbsp;<br/>fminbnd&nbsp;求单变量非线性函数极小值点&nbsp;<br/>fmins&nbsp;单纯形法求多变量函数极小值点（旧版）&nbsp;<br/>fminunc&nbsp;拟牛顿法求多变量函数极小值点&nbsp;<br/>fminsearch&nbsp;单纯形法求多变量函数极小值点&nbsp;<br/>fnder&nbsp;对样条函数求导&nbsp;<br/>fnint&nbsp;利用样条函数求积分&nbsp;<br/>fnval&nbsp;计算样条函数区间内任意一点的值&nbsp;<br/>fnplt&nbsp;绘制样条函数图形&nbsp;<br/>fopen&nbsp;打开外部文件&nbsp;<br/>for&nbsp;构成for环用&nbsp;<br/>format&nbsp;设置输出格式&nbsp;<br/>fourier&nbsp;Fourier&nbsp;变换&nbsp;<br/>fplot&nbsp;返函绘图指令&nbsp;<br/>fprintf&nbsp;设置显示格式&nbsp;<br/>fread&nbsp;从文件读二进制数据&nbsp;<br/>fsolve&nbsp;求多元函数的零点&nbsp;<br/>full&nbsp;把稀疏矩阵转换为非稀疏阵&nbsp;<br/>funm&nbsp;计算一般矩阵函数&nbsp;<br/>funtool&nbsp;函数计算器图形用户界面&nbsp;<br/>fzero&nbsp;求单变量非线性函数的零点&nbsp;<br/><br/><br/>G&nbsp;g&nbsp;<br/><br/>gamma&nbsp;函数&nbsp;<br/>gammainc&nbsp;不完全&nbsp;函数&nbsp;<br/>gammaln&nbsp;函数的对数&nbsp;<br/>gca&nbsp;获得当前轴句柄&nbsp;<br/>gcbo&nbsp;获得正执行&#34;回调&#34;的对象句柄&nbsp;<br/>gcf&nbsp;获得当前图对象句柄&nbsp;<br/>gco&nbsp;获得当前对象句柄&nbsp;<br/>geomean&nbsp;几何平均值&nbsp;<br/>get&nbsp;获知对象属性&nbsp;<br/>getfield&nbsp;获知构架数组的域&nbsp;<br/>getframe&nbsp;获取影片的帧画面&nbsp;<br/>ginput&nbsp;从图形窗获取数据&nbsp;<br/>global&nbsp;定义全局变量&nbsp;<br/>gplot&nbsp;依图论法则画图&nbsp;<br/>gradient&nbsp;近似梯度&nbsp;<br/>gray&nbsp;黑白灰度&nbsp;<br/>grid&nbsp;画分格线&nbsp;<br/>griddata&nbsp;规则化数据和曲面拟合&nbsp;<br/>gtext&nbsp;由鼠标放置注释文字&nbsp;<br/>guide&nbsp;启动图形用户界面交互设计工具&nbsp;<br/><br/><br/>H&nbsp;h&nbsp;<br/><br/>harmmean&nbsp;调和平均值&nbsp;<br/>help&nbsp;在线帮助&nbsp;<br/>helpwin&nbsp;交互式在线帮助&nbsp;<br/>helpdesk&nbsp;打开超文本形式用户指南&nbsp;<br/>hex2dec&nbsp;十六进制转换为十进制&nbsp;<br/>hex2num&nbsp;十六进制转换为浮点数&nbsp;<br/>hidden&nbsp;透视和消隐开关&nbsp;<br/>hilb&nbsp;Hilbert矩阵&nbsp;<br/>hist&nbsp;频数计算或频数直方图&nbsp;<br/>histc&nbsp;端点定位频数直方图&nbsp;<br/>histfit&nbsp;带正态拟合的频数直方图&nbsp;<br/>hold&nbsp;当前图上重画的切换开关&nbsp;<br/>horner&nbsp;分解成嵌套形式&nbsp;<br/>hot&nbsp;黑红黄白色图&nbsp;<br/>hsv&nbsp;饱和色图&nbsp;<br/><br/><br/>I&nbsp;i&nbsp;<br/><br/>if-else-elseif&nbsp;条件分支结构&nbsp;<br/>ifft&nbsp;离散Fourier反变换&nbsp;<br/>ifft2&nbsp;二维离散Fourier反变换&nbsp;<br/>ifftn&nbsp;高维离散Fourier反变换&nbsp;<br/>ifftshift&nbsp;直流分量对中的谱的反操作&nbsp;<br/>ifourier&nbsp;Fourier反变换&nbsp;<br/>i,&nbsp;j&nbsp;缺省的&#34;虚单元&#34;变量&nbsp;<br/>ilaplace&nbsp;Laplace反变换&nbsp;<br/>imag&nbsp;复数虚部&nbsp;<br/>image&nbsp;显示图象&nbsp;<br/>imagesc&nbsp;显示亮度图象&nbsp;<br/>imfinfo&nbsp;获取图形文件信息&nbsp;<br/>imread&nbsp;从文件读取图象&nbsp;<br/>imwrite&nbsp;把&nbsp;<br/>imwrite&nbsp;把图象写成文件&nbsp;<br/>ind2sub&nbsp;单下标转变为多下标&nbsp;<br/>inf&nbsp;无穷大&nbsp;<br/>info&nbsp;MathWorks公司网点地址&nbsp;<br/>inline&nbsp;构造内联函数对象&nbsp;<br/>inmem&nbsp;列出内存中的函数名&nbsp;<br/>input&nbsp;提示用户输入&nbsp;<br/>inputname&nbsp;输入宗量名&nbsp;<br/>int&nbsp;符号积分&nbsp;<br/>int2str&nbsp;把整数数组转换为串数组&nbsp;<br/>interp1&nbsp;一维插值&nbsp;<br/>interp2&nbsp;二维插值&nbsp;<br/>interp3&nbsp;三维插值&nbsp;<br/>interpn&nbsp;N维插值&nbsp;<br/>interpft&nbsp;利用FFT插值&nbsp;<br/>intro&nbsp;Matlab自带的入门引导&nbsp;<br/>inv&nbsp;求矩阵逆&nbsp;<br/>invhilb&nbsp;Hilbert矩阵的准确逆&nbsp;<br/>ipermute&nbsp;广义反转置&nbsp;<br/>isa&nbsp;检测是否给定类的对象&nbsp;<br/>ischar&nbsp;若是字符串则为真&nbsp;<br/>isequal&nbsp;若两数组相同则为真&nbsp;<br/>isempty&nbsp;若是空阵则为真&nbsp;<br/>isfinite&nbsp;若全部元素都有限则为真&nbsp;<br/>isfield&nbsp;若是构架域则为真&nbsp;<br/>isglobal&nbsp;若是全局变量则为真&nbsp;<br/>ishandle&nbsp;若是图形句柄则为真&nbsp;<br/>ishold&nbsp;若当前图形处于保留状态则为真&nbsp;<br/>isieee&nbsp;若计算机执行IEEE规则则为真&nbsp;<br/>isinf&nbsp;若是无穷数据则为真&nbsp;<br/>isletter&nbsp;若是英文字母则为真&nbsp;<br/>islogical&nbsp;若是逻辑数组则为真&nbsp;<br/>ismember&nbsp;检查是否属于指定集&nbsp;<br/>isnan&nbsp;若是非数则为真&nbsp;<br/>isnumeric&nbsp;若是数值数组则为真&nbsp;<br/>isobject&nbsp;若是对象则为真&nbsp;<br/>isprime&nbsp;若是质数则为真&nbsp;<br/>isreal&nbsp;若是实数则为真&nbsp;<br/>isspace&nbsp;若是空格则为真&nbsp;<br/>issparse&nbsp;若是稀疏矩阵则为真&nbsp;<br/>isstruct&nbsp;若是构架则为真&nbsp;<br/>isstudent&nbsp;若是Matlab学生版则为真&nbsp;<br/>iztrans&nbsp;符号计算Z反变换&nbsp;<br/><br/><br/>J&nbsp;j&nbsp;,&nbsp;K&nbsp;k&nbsp;<br/><br/>jacobian&nbsp;符号计算中求Jacobian&nbsp;矩阵&nbsp;<br/>jet&nbsp;蓝头红尾饱和色&nbsp;<br/>jordan&nbsp;符号计算中获得&nbsp;Jordan标准型&nbsp;<br/>keyboard&nbsp;键盘获得控制权&nbsp;<br/>kron&nbsp;Kronecker乘法规则产生的数组&nbsp;<br/><br/><br/>L&nbsp;l&nbsp;<br/><br/>laplace&nbsp;Laplace变换&nbsp;<br/>lasterr&nbsp;显示最新出错信息&nbsp;<br/>lastwarn&nbsp;显示最新警告信息&nbsp;<br/>leastsq&nbsp;解非线性最小二乘问题（旧版）&nbsp;<br/>legend&nbsp;图形图例&nbsp;<br/>lighting&nbsp;照明模式&nbsp;<br/>line&nbsp;创建线对象&nbsp;<br/>lines&nbsp;采用plot&nbsp;画线色&nbsp;<br/>linmod&nbsp;获连续系统的线性化模型&nbsp;<br/>linmod2&nbsp;获连续系统的线性化精良模型&nbsp;<br/>linspace&nbsp;线性等分向量&nbsp;<br/>ln&nbsp;矩阵自然对数&nbsp;<br/>load&nbsp;从MAT文件读取变量&nbsp;<br/>log&nbsp;自然对数&nbsp;<br/>log10&nbsp;常用对数&nbsp;<br/>log2&nbsp;底为2的对数&nbsp;<br/>loglog&nbsp;双对数刻度图形&nbsp;<br/>logm&nbsp;矩阵对数&nbsp;<br/>logspace&nbsp;对数分度向量&nbsp;<br/>lookfor&nbsp;按关键字搜索M文件&nbsp;<br/>lower&nbsp;转换为小写字母&nbsp;<br/>lsqnonlin&nbsp;解非线性最小二乘问题&nbsp;<br/>lu&nbsp;LU分解&nbsp;<br/><br/><br/>M&nbsp;m&nbsp;<br/><br/>mad&nbsp;平均绝对值偏差&nbsp;<br/>magic&nbsp;魔方阵&nbsp;<br/>maple&nbsp;&amp;nb,&nbsp;sp;&nbsp;运作&nbsp;Maple格式指令&nbsp;<br/>mat2str&nbsp;把数值数组转换成输入形态串数组&nbsp;<br/>material&nbsp;材料反射模式&nbsp;<br/>max&nbsp;找向量中最大元素&nbsp;<br/>mbuild&nbsp;产生EXE文件编译环境的预设置指令&nbsp;<br/>mcc&nbsp;创建MEX或EXE文件的编译指令&nbsp;<br/>mean&nbsp;求向量元素的平均值&nbsp;<br/>median&nbsp;求中位数&nbsp;<br/>menuedit&nbsp;启动设计用户菜单的交互式编辑工具&nbsp;<br/>mesh&nbsp;网线图&nbsp;<br/>meshz&nbsp;垂帘网线图&nbsp;<br/>meshgrid&nbsp;产生&#34;格点&#34;矩阵&nbsp;<br/>methods&nbsp;获知对指定类定义的所有方法函数&nbsp;<br/>mex&nbsp;产生MEX文件编译环境的预设置指令&nbsp;<br/>mfunlis&nbsp;能被mfun计算的MAPLE经典函数列表&nbsp;<br/>mhelp&nbsp;引出&nbsp;Maple的在线帮助&nbsp;<br/>min&nbsp;找向量中最小元素&nbsp;<br/>mkdir&nbsp;创建目录&nbsp;<br/>mkpp&nbsp;逐段多项式数据的明晰化&nbsp;<br/>mod&nbsp;模运算&nbsp;<br/>more&nbsp;指令窗中内容的分页显示&nbsp;<br/>movie&nbsp;放映影片动画&nbsp;<br/>moviein&nbsp;影片帧画面的内存预置&nbsp;<br/>mtaylor&nbsp;符号计算多变量Taylor级数展开&nbsp;<br/><br/><br/>N&nbsp;n&nbsp;<br/><br/>ndims&nbsp;求数组维数&nbsp;<br/>NaN&nbsp;非数（预定义）变量&nbsp;<br/>nargchk&nbsp;输入宗量数验证&nbsp;<br/>nargin&nbsp;函数输入宗量数&nbsp;<br/>nargout&nbsp;函数输出宗量数&nbsp;<br/>ndgrid&nbsp;产生高维格点矩阵&nbsp;<br/>newplot&nbsp;准备新的缺省图、轴&nbsp;<br/>nextpow2&nbsp;取最接近的较大2次幂&nbsp;<br/>nnz&nbsp;矩阵的非零元素总数&nbsp;<br/>nonzeros&nbsp;矩阵的非零元素&nbsp;<br/>norm&nbsp;矩阵或向量范数&nbsp;<br/>normcdf&nbsp;正态分布累计概率密度函数&nbsp;<br/>normest&nbsp;估计矩阵2范数&nbsp;<br/>norminv&nbsp;正态分布逆累计概率密度函数&nbsp;<br/>normpdf&nbsp;正态分布概率密度函数&nbsp;<br/>normrnd&nbsp;正态随机数发生器&nbsp;<br/>notebook&nbsp;启动Matlab和Word的集成环境&nbsp;<br/>null&nbsp;零空间&nbsp;<br/>num2str&nbsp;把非整数数组转换为串&nbsp;<br/>numden&nbsp;获取最小公分母和相应的分子表达式&nbsp;<br/>nzmax&nbsp;指定存放非零元素所需内存&nbsp;<br/><br/><br/>O&nbsp;o&nbsp;<br/><br/>ode1&nbsp;非Stiff&nbsp;微分方程变步长解算器&nbsp;<br/>ode15s&nbsp;Stiff&nbsp;微分方程变步长解算器&nbsp;<br/>ode23t&nbsp;适度Stiff&nbsp;微分方程解算器&nbsp;<br/>ode23tb&nbsp;Stiff&nbsp;微分方程解算器&nbsp;<br/>ode45&nbsp;非Stiff&nbsp;微分方程变步长解算器&nbsp;<br/>odefile&nbsp;ODE&nbsp;文件模板&nbsp;<br/>odeget&nbsp;获知ODE&nbsp;选项设置参数&nbsp;<br/>odephas2&nbsp;ODE&nbsp;输出函数的二维相平面图&nbsp;<br/>odephas3&nbsp;ODE&nbsp;输出函数的三维相空间图&nbsp;<br/>odeplot&nbsp;ODE&nbsp;输出函数的时间轨迹图&nbsp;<br/>odeprint&nbsp;在Matlab指令窗显示结果&nbsp;<br/>odeset&nbsp;创建或改写&nbsp;ODE选项构架参数值&nbsp;<br/>ones&nbsp;全1数组&nbsp;<br/>optimset&nbsp;创建或改写优化泛函指令的选项参数值&nbsp;<br/>o&#114;ient&nbsp;设定图形的排放方式&nbsp;<br/>o&#114;th&nbsp;值空间正交化&nbsp;<br/><br/><br/>P&nbsp;p&nbsp;<br/><br/>pack&nbsp;收集Matlab内存碎块扩大内存&nbsp;<br/>pagedlg&nbsp;调出图形排版对话框&nbsp;<br/>patch&nbsp;创建块对象&nbsp;<br/>path&nbsp;设置Matlab搜索路径的指令&nbsp;<br/>pathtool&nbsp;搜索路径管理器&nbsp;<br/>pause&nbsp;暂停&nbsp;<br/>pcode&nbsp;创建预解译P码文件&nbsp;<br/>pcolor&nbsp;伪彩图&nbsp;<br/>peaks&nbsp;Matlab提供的典型三维曲面&nbsp;<br/>permute&nbsp;广义转置&nbsp;<br/>pi&nbsp;（预定义变量）圆周率&nbsp;<br/>pie&nbsp;二维饼图&nbsp;<br/>pie3&nbsp;三维饼图&nbsp;<br/>pink&nbsp;粉红色图矩阵&nbsp;<br/>pinv&nbsp;伪逆&nbsp;<br/>plot&nbsp;平面线图&nbsp;<br/>plot3&nbsp;三维线图&nbsp;<br/>plotmatrix&nbsp;矩阵的散点图&nbsp;<br/>plotyy&nbsp;双纵坐标图&nbsp;<br/>poissinv&nbsp;泊松分布逆累计概率分布函数&nbsp;<br/>poissrnd&nbsp;泊松分布随机数发生器&nbsp;<br/>pol2cart&nbsp;极或柱坐标变为直角坐标&nbsp;<br/>polar&nbsp;极坐标图&nbsp;<br/>poly&nbsp;矩阵的特征多项式、根集对应的多项式&nbsp;<br/>poly2str&nbsp;以习惯方式显示多项式&nbsp;<br/>poly2sym&nbsp;双精度多项式系数转变为向量符号多项式&nbsp;<br/>polyder&nbsp;多项式导数&nbsp;<br/>polyfit&nbsp;数据的多项式拟合&nbsp;<br/>polyval&nbsp;计算多项式的值&nbsp;<br/>polyvalm&nbsp;计算矩阵多项式&nbsp;<br/>pow2&nbsp;2的幂&nbsp;<br/>ppval&nbsp;计算分段多项式&nbsp;<br/>pretty&nbsp;以习惯方式显示符号表达式&nbsp;<br/>print&nbsp;打印图形或SIMULINK模型&nbsp;<br/>printsys&nbsp;以习惯方式显示有理分式&nbsp;<br/>prism&nbsp;光谱色图矩阵&nbsp;<br/>procread&nbsp;向MAPLE输送计算程序&nbsp;<br/>profile&nbsp;函数文件性能评估器&nbsp;<br/>propedit&nbsp;图形对象属性编辑器&nbsp;<br/>pwd&nbsp;显示当前工作目录&nbsp;<br/><br/><br/>Q&nbsp;q&nbsp;<br/><br/>quad&nbsp;低阶法计算数值积分&nbsp;<br/>quad8&nbsp;高阶法计算数值积分(QUADL)&nbsp;<br/>quit&nbsp;推出Matlab&nbsp;环境&nbsp;<br/>quiver&nbsp;二维方向箭头图&nbsp;<br/>quiver3&nbsp;三维方向箭头图&nbsp;<br/><br/><br/>R&nbsp;r&nbsp;<br/><br/>rand&nbsp;产生均匀分布随机数&nbsp;<br/>randn&nbsp;产生正态分布随机数&nbsp;<br/>randperm&nbsp;随机置换向量&nbsp;<br/>range&nbsp;样本极差&nbsp;<br/>rank&nbsp;矩阵的秩&nbsp;<br/>rats&nbsp;有理输出&nbsp;<br/>rcond&nbsp;矩阵倒条件数估计&nbsp;<br/>real&nbsp;复数的实部&nbsp;<br/>reallog&nbsp;在实数域内计算自然对数&nbsp;<br/>realpow&nbsp;在实数域内计算乘方&nbsp;<br/>realsqrt&nbsp;在实数域内计算平方根&nbsp;<br/>realmax&nbsp;最大正浮点数&nbsp;<br/>realmin&nbsp;最小正浮点数&nbsp;<br/>rectangle&nbsp;画&#34;长方框&#34;&nbsp;<br/>rem&nbsp;求余数&nbsp;<br/>repmat&nbsp;铺放模块数组&nbsp;<br/>reshape&nbsp;改变数组维数、大小&nbsp;<br/>residue&nbsp;部分分式展开&nbsp;<br/>return&nbsp;返回&nbsp;<br/>ribbon&nbsp;把二维曲线画成三维彩带图&nbsp;<br/>rmfield&nbsp;删去构架的域&nbsp;<br/>roots&nbsp;求多项式的根&nbsp;<br/>rose&nbsp;数扇形图&nbsp;<br/>rot90&nbsp;矩阵旋转90度&nbsp;<br/>rotate&nbsp;指定的原点和方向旋转&nbsp;<br/>rotate3d&nbsp;启动三维图形视角的交互设置功能&nbsp;<br/>round&nbsp;向最近整数圆整&nbsp;<br/>rref&nbsp;简化矩阵为梯形形式&nbsp;<br/>rsf2csf&nbsp;实数块对角阵转为复数特征值对角阵&nbsp;<br/>rsums&nbsp;Riemann和&nbsp;<br/><br/>S&nbsp;s&nbsp;<br/><br/>save&nbsp;把内存变量保存为文件&nbsp;<br/>scatter&nbsp;散点图&nbsp;<br/>scatter3&nbsp;三维散点图&nbsp;<br/>sec&nbsp;正割&nbsp;<br/>sech&nbsp;双曲正割&nbsp;<br/>semilogx&nbsp;X轴对数刻度坐标图&nbsp;<br/>semilogy&nbsp;Y轴对数刻度坐标图&nbsp;<br/>series&nbsp;串联连接&nbsp;<br/>set&nbsp;设置图形对象属性&nbsp;<br/>setfield&nbsp;设置构架数组的域&nbsp;<br/>setstr&nbsp;将ASCII码转换为字符的旧版指令&nbsp;<br/>sign&nbsp;根据符号取值函数&nbsp;<br/>signum&nbsp;符号计算中的符号取值函数&nbsp;<br/>sim&nbsp;运行SIMULINK模型&nbsp;<br/>simget&nbsp;获取SIMULINK模型设置的仿真参数&nbsp;<br/>simple&nbsp;寻找最短形式的符号解&nbsp;<br/>simplify&nbsp;符号计算中进行简化操作&nbsp;<br/>simset&nbsp;对SIMULINK模型的仿真参数进行设置&nbsp;<br/>simulink&nbsp;启动SIMULINK模块库浏览器&nbsp;<br/>sin&nbsp;正弦&nbsp;<br/>sinh&nbsp;双曲正弦&nbsp;<br/>size&nbsp;矩阵的大小&nbsp;<br/>slice&nbsp;立体切片图&nbsp;<br/>solve&nbsp;求代数方程的符号解&nbsp;<br/>spalloc&nbsp;为非零元素配置内存&nbsp;<br/>sparse&nbsp;创建稀疏矩阵&nbsp;<br/>spconvert&nbsp;把外部数据转换为稀疏矩阵&nbsp;<br/>spdiags&nbsp;稀疏对角阵&nbsp;<br/>spfun&nbsp;求非零元素的函数值&nbsp;<br/>sph2cart&nbsp;球坐标变为直角坐标&nbsp;<br/>sphere&nbsp;产生球面&nbsp;<br/>spinmap&nbsp;色图彩色的周期变化&nbsp;<br/>spline&nbsp;样条插值&nbsp;<br/>spones&nbsp;用1置换非零元素&nbsp;<br/>sprandsym&nbsp;稀疏随机对称阵&nbsp;<br/>sprank&nbsp;结构秩&nbsp;<br/>spring&nbsp;紫黄调春色图&nbsp;<br/>sprintf&nbsp;把格式数据写成串&nbsp;<br/>spy&nbsp;画稀疏结构图&nbsp;<br/>sqrt&nbsp;平方根&nbsp;<br/>sqrtm&nbsp;方根矩阵&nbsp;<br/>squeeze&nbsp;删去大小为1的&#34;孤维&#34;&nbsp;<br/>sscanf&nbsp;按指定格式读串&nbsp;<br/>stairs&nbsp;阶梯图&nbsp;<br/>std&nbsp;标准差&nbsp;<br/>stem&nbsp;二维杆图&nbsp;<br/>step&nbsp;阶跃响应指令&nbsp;<br/>str2double&nbsp;串转换为双精度值&nbsp;<br/>str2mat&nbsp;创建多行串数组&nbsp;<br/>str2num&nbsp;串转换为数&nbsp;<br/>strcat&nbsp;接成长串&nbsp;<br/>strcmp&nbsp;串比较&nbsp;<br/>strjust&nbsp;串对齐&nbsp;<br/>strmatch&nbsp;搜索指定串&nbsp;<br/>strncmp&nbsp;串中前若干字符比较&nbsp;<br/>strrep&nbsp;串替换&nbsp;<br/>strtok&nbsp;寻找第一间隔符前的内容&nbsp;<br/>struct&nbsp;创建构架数组&nbsp;<br/>struct2cell&nbsp;把构架转换为元胞数组&nbsp;<br/>strvcat&nbsp;创建多行串数组&nbsp;<br/>sub2ind&nbsp;多下标转换为单下标&nbsp;<br/>subexpr&nbsp;通过子表达式重写符号对象&nbsp;<br/>subplot&nbsp;创建子图&nbsp;<br/>subs&nbsp;符号计算中的符号变量置换&nbsp;<br/>subspace&nbsp;两子空间夹角&nbsp;<br/>sum&nbsp;元素和&nbsp;<br/>summer&nbsp;绿黄调夏色图&nbsp;<br/>superiorto&nbsp;设定优先级&nbsp;<br/>surf&nbsp;三维着色表面图&nbsp;<br/>surface&nbsp;创建面对象&nbsp;<br/>surfc&nbsp;带等位线的表面图&nbsp;<br/>surfl&nbsp;带光照的三维表面图&nbsp;<br/>surfnorm&nbsp;空间表面的法线&nbsp;<br/>svd&nbsp;奇异值分解&nbsp;<br/>svds&nbsp;求指定的若干奇异值&nbsp;<br/>switch-case-otherwise&nbsp;多分支结构&nbsp;<br/>sym2poly&nbsp;符号多项式转变为双精度多项式系数向量&nbsp;<br/>symmmd&nbsp;对称最小度排序&nbsp;<br/>symrcm&nbsp;反向Cuthill-McKee排序&nbsp;<br/>syms&nbsp;创建多个符号对象&nbsp;<br/><br/><br/>T&nbsp;t&nbsp;<br/><br/>tan&nbsp;正切&nbsp;<br/>tanh&nbsp;双曲正切&nbsp;<br/>taylortool&nbsp;进行Taylor逼近分析的交互界面&nbsp;<br/>text&nbsp;文字注释&nbsp;<br/>tf&nbsp;创建传递函数对象&nbsp;<br/>tic&nbsp;启动计时器&nbsp;<br/>title&nbsp;图名&nbsp;<br/>toc&nbsp;关闭计时器&nbsp;<br/>trapz&nbsp;梯形法数值积分&nbsp;<br/>treelayout&nbsp;展开树、林&nbsp;<br/>treeplot&nbsp;画树图&nbsp;<br/>tril&nbsp;下三角阵&nbsp;<br/>trim&nbsp;求系统平衡点&nbsp;<br/>trimesh&nbsp;不规则格点网线图&nbsp;<br/>trisurf&nbsp;不规则格点表面图&nbsp;triu&nbsp;上三角阵&nbsp;try-catch&nbsp;控制流中的Try-catch结构&nbsp;type&nbsp;显示M文件&nbsp;<br/>U&nbsp;u&nbsp;<br/>uicontextmenu&nbsp;创建现场菜单&nbsp;<br/>uicontrol&nbsp;创建用户控件&nbsp;<br/>uimenu&nbsp;创建用户菜单&nbsp;<br/>unmkpp&nbsp;逐段多项式数据的反明晰化&nbsp;<br/>unwrap&nbsp;自然态相角&nbsp;<br/>upper&nbsp;转换为大写字母&nbsp;<br/><br/><br/>V&nbsp;v&nbsp;<br/><br/>var&nbsp;方差&nbsp;<br/>varargin&nbsp;变长度输入宗量&nbsp;<br/>varargout&nbsp;变长度输出宗量&nbsp;<br/>vectorize&nbsp;使串表达式或内联函数适于数组运算&nbsp;<br/>ver&nbsp;版本信息的获取&nbsp;<br/>view&nbsp;三维图形的视角控制&nbsp;<br/>voronoi&nbsp;Voronoi多边形&nbsp;<br/>vpa&nbsp;任意精度（符号类）数值&nbsp;<br/><br/><br/>W&nbsp;w&nbsp;<br/><br/>warning&nbsp;显示警告信息&nbsp;<br/>what&nbsp;列出当前目录上的文件&nbsp;<br/>whatsnew&nbsp;显示Matlab中&nbsp;Readme文件的内容&nbsp;<br/>which&nbsp;确定函数、文件的位置&nbsp;<br/>while&nbsp;控制流中的While环结构&nbsp;<br/>white&nbsp;全白色图矩阵&nbsp;<br/>whitebg&nbsp;指定轴的背景色&nbsp;<br/>who&nbsp;列出内存中的变量名&nbsp;<br/>whos&nbsp;列出内存中变量的详细信息&nbsp;<br/>winter&nbsp;蓝绿调冬色图&nbsp;<br/>workspace&nbsp;启动内存浏览器&nbsp;<br/><br/><br/>X&nbsp;x&nbsp;,&nbsp;Y&nbsp;y&nbsp;,&nbsp;Z&nbsp;z&nbsp;<br/><br/>xlabel&nbsp;X轴名&nbsp;<br/>xor&nbsp;或非逻辑&nbsp;<br/>yesinput&nbsp;智能输入指令&nbsp;<br/>ylabel&nbsp;Y轴名&nbsp;<br/>zeros&nbsp;全零数组&nbsp;<br/>zlabel&nbsp;Z轴名&nbsp;<br/>zoom&nbsp;图形的变焦放大和缩小&nbsp;<br/>ztrans&nbsp;符号计算Z变换]]></description>
		</item>
		
			<item>
			<link>http://www.shinian10.com/default.asp?id=557</link>
			<title><![CDATA[TMS320F2812的CMD文件配置详解]]></title>
			<author>zcdelphi7@126.com(zcjohnson)</author>
			<category><![CDATA[DSP技术]]></category>
			<pubDate>Thu,17 Jul 2008 15:46:01 +0800</pubDate>
			<guid>http://www.shinian10.com/default.asp?id=557</guid>	
		<description><![CDATA[DSP芯片以其极高的精度,性能及运算速度等无与伦比的优点使它得到了十分广泛的应用，TMS320F2812是TI公司生产的到目前为止用于数字控制领域的最好的DSP芯片，在对它的仿真开发过程中，编译器生成的代码和数据要由链接器分配到合适的存储空间，通常链接器的命令文件.cmd文件是由用户自己编写的，编写不当，就会使仿真开发不能进行，TI公司虽然在《TMS320C28x&nbsp;Optimizing&nbsp;C/C++&nbsp;Compiler&nbsp;User’s&nbsp;Guide&nbsp;6》和《TMS320C28x&nbsp;Assembly&nbsp;Language&nbsp;Tools&nbsp;User’s&nbsp;Guide&nbsp;6》做了介绍，但内容却比较散乱而且要求读者对整个开发系统要有较全面的认识，这对于初学者来说是比较困难的。下面以TMS320F2812芯片为例，结合具体的仿真调试实例加以说明使大家能够既快速又准确的掌握.cmd文件的分配方法。<br/><br/>1存储空间的配置<br/><br/>TMS320F2812的DSP存储器分为三个独立选择的空间-程序空间、数据空间和I/O空间,其中程序存储器存放待执行的指令和执行中所用的系数(常数)，可使用片内或片外的RAM、ROM或EPROM等来构成；数据存储器存放指令执行中产生的数据，可使用片内或片外<br/>的RAM和ROM来构成；I/O存储器存放与映象外围接口相关的数据，也可以作为附加的数据存储空间使用。表1是TMS320F2812的存储空间分布。<br/><br/><br/><br/>2CMD文件的分配方法<br/>TI公司新的汇编器和链接器创建的目标文件采用一种COFF(通用目标文件格式)，该目标文件格式更利于模块化编程，为管理代码段和目标系统存储器提供了强有力和灵活的编程方法。用户可以通过编写链接命令文件(.cmd文件)将链接信息放在一个文件中，以便在多次使用同样的链接信息时调用。在命令文件中使用两个十分有用的伪指令MEMORY和SECTIONS，来指定实际应用中的存储器结构和进行地址的映射。Memory用来指定目标存储器结构，Memory下可以通过PAGE选项配置地址空间，链接器把每一页都当作一个独立的存储空间。通常情况下，PAGE0代表程序存储器用来存放程序，PAGE1代表数据存储器，用来存放数据。由编译器生成的可重定位的代码和数据块叫做“SECTIONS”(段)，SECTIONS用来控制段的构成与地址分配。对于不同的系统配置，“SECTION”的分配方式也不相同，链接器通过“SECTIONS”来控制地址的分配，所以“SECTIONS”的分配就成了配置.cmd文件的重要环节。以下是对“SECTIONS”的定义及分配的详细介绍。<br/>（1）<br/>被初始化的“SECTIONS”(包括数据表和可执行代码)<br/>.text它包括所有的可执行代码和常数，必须放在程序页；<br/>.cinit它包括初始化的变量和常量表,要求放在程序页；<br/>.pinit它包括全局构造器(C++)初始化的变量和常量表，要求放在程序页；<br/>.const它包括字符串、声明、以及被明确初始化过的全局和静态变量，要求放在低地址的数据页；<br/>.econst它是在使用大存储器模式时使用的，包括字符串、声明、以及被明确初始化过的全局变量和静态变量，可以放在数据页的任何地方。<br/>.switch它包括为转换声明设置的表格，可以放在程序页也可以放在低地址的数据页。<br/>（2）未被初始化的“SECTIONS”（为程序运行中创建和存放的变量在存储器中保留空间)<br/>.bss它为全局变量和静态变量保留空间。在程序开始运行时，C导入路径把数据从.cinit节复制出去然后存在.bss节中，要求放在低地址的数据页；<br/>.ebss它是在远(far)访问(只用于C)和大存储模式下使用，它为全局变量和静态变量保留空间。在程序开始运行时，C导入路径把数据从.cinit段复制出去然后存在.ebss节中，可以放在数据页的任何地方；<br/>.stack为C系统堆栈保留空间，这部分存储器为用来将声明传给函数及为局部变量留出空间，要求放在低地址的数据页；<br/>.system动态存储器分配保留空间。这个空间用于malloc函数，如果不使用malloc函数，这个段的大小就是0，要求放在低地址的数据页；<br/>.esystem动态存储器分配保留空间，这个空间用于外部malloc函数，如果不使用外部malloc函数，这个段的大小就是0，可以放在数据页的任何地方。<br/><br/><br/>3举例说明.cmd文件的分配方法<br/>&nbsp;&nbsp;以下是仿真调试串行通信接口SCI时的.cmd文件的分配，已经在TMS320F2812仿真调试中得到了很好的应用。<br/>MEMORY<br/><br/>{PAGE0：<br/>/*ProgramMemory*/<br/><br/>RAMH0：origin=0x3F8000，length=0x001000<br/><br/>RAML0：origin=0x008000，length=0x001000<br/><br/>RAML1：origin=0x009000，length=0x001000<br/><br/>ROM：<br/>o&#114;igin=0x3FF000，length=0x000FC0<br/><br/>RESET：&nbsp;o&#114;igin=&#34;0x3FFFC0&#34;，length=0x000002M<br/><br/>VECTORS：origin=0x3FFFC2，length=0x00003EM<br/><br/>PAGE1：/*DataMemory*/<br/><br/>RAMM0：origin=0x000000，length=0x000400<br/><br/>RAMM1：origin=0x000400，length=0x000400<br/><br/>RAMH0：origin=0x3F9000，length=0x001000<br/>,,,<br/>}<br/><br/>SECTIONS<br/>{/*Allocateprogramareas:*/<br/><br/>.cinit<br/>：&gt;RAMH0<br/>PAGE=0<br/><br/>.pinit<br/>：&gt;RAMH0<br/>PAGE=0<br/><br/>.text<br/>：&gt;RAMH0<br/>PAGE=0<br/><br/>.reset<br/>：&gt;RESET，PAGE=0，TYPE=DSECT<br/><br/>Vectors&nbsp;：&gt;VECTORS，PAGE=0，TYPE=DSEC<br/><br/>/*Allocateuninitalizeddatasections:*/<br/><br/>.stack<br/>：&gt;RAMM0<br/>PAGE=1<br/><br/>.ebss<br/>：&gt;RAMH0<br/>PAGE=1<br/><br/>.esysmem&nbsp;：&gt;RAMH0<br/>PAGE=1<br/><br/>.econst&nbsp;：&gt;RAMM1<br/>PAGE=1<br/><br/>.switch&nbsp;：&gt;RAMM1<br/>PAGE=1<br/><br/><br/>,,,<br/>}<br/><br/>&nbsp;&nbsp;为充分利用18k×16位的SARAM，本例将高地址的8k×16位的H0&nbsp;SARAM区分成两部分，一部分用做存放程序放在PAGE0里，一部分用做存放数据放在PAGE1中以达到合理的分配；对实际仿真调试过程中的外围帧frame0，frame1，frame2等的分配因为篇幅问题就不做具体介绍了。<br/><br/>4查看段的分配及使用情况<br/>&nbsp;&nbsp;在cmd文件中包括各种各样的链接器选项，每种选项代表不同的含义。其中，使用-m选项可以创建一个扩展名为.map的链接器（存储器）分配映射文件，其语法为：-m&nbsp;filename(文件名)。链接器的map文件描述以下内容：<br/>存储器结构<br/>输入和输出段的定位<br/>在重新定位后外部符号的地址<br/>&nbsp;&nbsp;通过map文件可以查看各段的分配情况，包括段的起始地址，使用的字节数等配合cmd文件的使用，可确定各个段的使用情况，从而保证程序的正常运行和最小的空间使用。<br/><br/>5&nbsp;VisualLinker可视化链接器<br/><br/>TI公司出品的DSP软件开发环境CCS还提供了一种可视化生成存储器配置文件的工具：VisualLinker可视化链接器。如果程序原来包含了一个链接器命令文件(.cmd文件)，则当创<br/>建可视化链接文件的时候，原来cmd文件中的内存配置仍然会被使用。如果读者想修改内存配置，双击.rcp文件就会在CCS中打开可视化链接器的图形界面，调整每个内存模块的大小，直到认为合适，然后只需要重新连编，程序即可生成新的输出文件，重复上面的步<br/>骤，直到出现满意的结果。<br/><br/>6总结<br/>&nbsp;&nbsp;不同的DSP芯片内集成的存储器大小各异，但其配置方式是类似的。大家可通过查阅DSP芯片的数据手册，了解芯片内部存储空间大小。在实际的配置过程中，可根据开发程序的实际代码，正确的划分程序和数据空间中各段的大小，使其空间配置达到最优。]]></description>
		</item>
		
			<item>
			<link>http://www.shinian10.com/default.asp?id=556</link>
			<title><![CDATA[F2812与F2407的区别总结]]></title>
			<author>zcdelphi7@126.com(zcjohnson)</author>
			<category><![CDATA[DSP技术]]></category>
			<pubDate>Thu,17 Jul 2008 08:43:03 +0800</pubDate>
			<guid>http://www.shinian10.com/default.asp?id=556</guid>	
		<description><![CDATA[2407和2812是dsp2000系列性能最让人关注的两款芯片，在使用过两种芯片后，特将两款芯片的异同来作一比较。&nbsp;<br/><br/>都是对于电机控制开发使用。由此，在外设上的配备上有较多的相似之处。&nbsp;<br/><br/>&nbsp;&nbsp;相同点：&nbsp;&nbsp;<br/><br/>1&nbsp;时间管理器，来管理定时器和pwm，及电机光电码盘的接口，&nbsp;<br/><br/>2&nbsp;多路ad来接受传感器的信号&nbsp;<br/><br/>3&nbsp;&nbsp;通讯接口&nbsp;spi&nbsp;can&nbsp;sci&nbsp;使得可以方便的通讯&nbsp;<br/><br/>4&nbsp;程序存储器和内部ram都有一定的容量满足不同的需求&nbsp;<br/><br/>5&nbsp;3。3V电压供电，突出了低功耗的节电功能&nbsp;<br/><br/>6&nbsp;可以进行程序和数据空间的外扩&nbsp;<br/><br/>7&nbsp;jtag接口相同&nbsp;<br/><br/>8&nbsp;内核相同&nbsp;，方便程序移植&nbsp;<br/><br/>不同：&nbsp;<br/><br/>1&nbsp;电压&nbsp;2407&nbsp;3。3V内核和IO供电，flash烧写电压5V&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;2812&nbsp;&nbsp;1。8V或者1.9V内核和3。3VIO供电，flash烧写电压3.3V&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;上电次序，2407没有关系&nbsp;，2812&nbsp;io先上电，核后上电&nbsp;&nbsp;<br/><br/>2&nbsp;clk&nbsp;&nbsp;2407最大40M&nbsp;&nbsp;&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2812&nbsp;最大150M（内核电压1.9V）或者&nbsp;135M（内核电压&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.8V）&nbsp;<br/><br/>3&nbsp;下载程序方式&nbsp;2407&nbsp;编程器下载&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2812&nbsp;&nbsp;编程器下载&nbsp;串口&nbsp;spi&nbsp;&nbsp;<br/><br/>4&nbsp;cpu&nbsp;2407为16位处理器&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2812为32处理器&nbsp;<br/><br/>5&nbsp;程序和数据空间&nbsp;2407&nbsp;flash32k&nbsp;ram2。5K可扩展196K&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2812&nbsp;flash&nbsp;16×128K&nbsp;&nbsp;&nbsp;ram&nbsp;16×18K可扩展4M空间&nbsp;<br/><br/>6&nbsp;时间管理器&nbsp;2407&nbsp;定时器16位&nbsp;一个光电码盘接口&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2812&nbsp;定期器32位&nbsp;有两个光电码盘接口&nbsp;<br/><br/>7&nbsp;ad&nbsp;&nbsp;2407&nbsp;10位&nbsp;&nbsp;2812&nbsp;12位&nbsp;&nbsp;<br/><br/>8&nbsp;sci&nbsp;2407&nbsp;1个&nbsp;没有缓冲单元&nbsp;2812&nbsp;两个&nbsp;具有缓冲单元&nbsp;<br/><br/>8&nbsp;can&nbsp;2407标准can符合2。0B协议&nbsp;2812增强can和标准can&nbsp;符合2。0B&nbsp;<br/><br/>9&nbsp;mcbsp&nbsp;2407&nbsp;没有&nbsp;&nbsp;2812&nbsp;有&nbsp;<br/><br/>10&nbsp;语言&nbsp;2407&nbsp;汇编&nbsp;c&nbsp;&nbsp;&nbsp;&nbsp;2812&nbsp;汇编&nbsp;c&nbsp;c＋＋&nbsp;<br/><br/>&nbsp;&nbsp;11&nbsp;TI支持&nbsp;&nbsp;2407没有提供较多的例程支持&nbsp;2812&nbsp;提供完整的模块例程支持&nbsp;<br/><br/>&nbsp;&nbsp;12&nbsp;编程风格&nbsp;2407倾向于模块编程&nbsp;2812&nbsp;类编程，并且结构性更强&nbsp;<br/><br/>&nbsp;&nbsp;13&nbsp;寄存器的保护。2407没有对系统寄存器的保护，2812提供了保护机制&nbsp;<br/><br/>&nbsp;&nbsp;14&nbsp;在开发环境的帮助文件上看，2407比2812要好点，&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2812的寄存器的设置和定&nbsp;义帮助文件基本没有说明&nbsp;<br/><br/>&nbsp;&nbsp;对dsp及其开发环境及支持的一点建议：&nbsp;<br/><br/>&nbsp;&nbsp;1&nbsp;dsp没有象arm一样把用于外扩的数据地址线和IO功能复用，这对io管脚使用较多的人来讲不方便，还要进行扩展，如果不需要外扩的话，这些线就浪费了&nbsp;<br/><br/>&nbsp;&nbsp;2&nbsp;对于现在3。3V和5V共存的时期，如果管脚能和5V兼容，那是最好不过了&nbsp;<br/><br/>&nbsp;&nbsp;3&nbsp;不明白为什么把管脚的电源和地总是放在相邻的位置上，焊不好很容易短路&nbsp;<br/><br/>&nbsp;&nbsp;4&nbsp;用程序下载器，下载程序速度很慢，耽误时间&nbsp;<br/><br/>&nbsp;&nbsp;5&nbsp;开发环境如果能实现软件仿真那就好了，不用非要硬件板了，调试起来那就方便多了&nbsp;<br/><br/>&nbsp;&nbsp;6&nbsp;作为芯片开发商，最了解自己的芯片的功能，如果能够免费为大家提供各种芯片，尤其是处理器的外设例程，无论对于大家对芯片的上手速度和开发进度来讲都是好事，而且对于芯片的推销也是很好的事情。&nbsp;<br/><br/>&nbsp;&nbsp;大家有什么好的想法，尽可补充，共同进步！&nbsp;<br/><br/><br/>实际上对开发带来最大影响的不同点是2812程序，数据，I/O空间统一编址，在同一个地址空间，并且带bootloader，2407程序，数据，I/O空间分开编址，不在同一个地址空间，不带bootloader，这导致了2812程序必须用一段汇编代码才能跳转到用户的c程序。而2407不需要这样做。&nbsp;]]></description>
		</item>
		
			<item>
			<link>http://www.shinian10.com/default.asp?id=555</link>
			<title><![CDATA[自制DSP2812开发板的原理图和PCB图下载]]></title>
			<author>zcdelphi7@126.com(zcjohnson)</author>
			<category><![CDATA[DSP技术]]></category>
			<pubDate>Thu,17 Jul 2008 08:24:58 +0800</pubDate>
			<guid>http://www.shinian10.com/default.asp?id=555</guid>	
		<description><![CDATA[<img src="http://www.shinian10.com/attachments/month_0807/tysonbeck_paugasol_february.jpg" border="0" alt=""/><br/><img src="http://www.shinian10.com/attachments/month_0807/2008-07-17_081719.jpg" border="0" alt=""/><br/>下载地址<br/><img src="http://www.shinian10.com/images/download.gif" alt="只允许会员下载" style="margin:0px 2px -4px 0px"/> 该文件只允许会员下载! <a href="http://www.shinian10.com/login.asp">登录</a> | <a href="http://www.shinian10.com/register.asp">注册</a>]]></description>
		</item>
		
</channel>
</rss>