下面的创建中断向量表的代码,可以将段vecs(存储中段向量表的段)重定位到某个地址,如DSP的L2起始地址(对于core1,是0x10800000),同时要将ISTP指向这个地址。
;create interrupt vector table for C6000 DSP
;-------------------------------------------------------------...
分类:
其他好文 时间:
2014-07-20 10:27:36
阅读次数:
202
电机系统标幺化的好处:对于不同功率、电压值的设备标幺值在一定范围内,具有可比性,而测量值则随之变化;定点DSP控制:可有效防止数据溢出。各个基值的选取方式如下:
分类:
其他好文 时间:
2014-07-19 23:38:36
阅读次数:
559
自从用了C++,他的方便快捷一直用着屡试不爽,但是越用越觉得程序不够清晰,
项目使用DSP,不得不把C++重写成C
速度没得说,非常快
记录下看到的文章
少走弯路,学好C语言的推荐途径...
分类:
编程语言 时间:
2014-07-18 11:07:38
阅读次数:
145
最近查DM814x上两个M3莫名其妙挂掉的问题查了将近两周,最后发现居然是各个模块的dma乱用引起的。A8上的音频mcasp用了两个dma通道……TI给的simcop里面imx实现的swosd又用了一串的dma通道……M3上面的cover业务又用了一个……后面dsp上加跑的算法又用了两个,然后就开始...
分类:
其他好文 时间:
2014-07-18 09:36:01
阅读次数:
248
ISFP是服务中断的指令包,创建ISR的三种情况:
1,一个ISFP包的14/8条指令就可以满足ISR
2,ISR可以占用多个连续的ISFP(前提是下面的中断没有使用)
3,ISR位于IST之外...
分类:
其他好文 时间:
2014-07-14 13:37:35
阅读次数:
234
RESET中断的获取包必须位于0地址处,然后其他中断的获取包可以位于任何256字(1k字节边界)对齐的程序空间。IST的位置由ISTP寄存器中的ISTB字段决定。
IST重新定位举例:
1,将IST重新定位到800h:
将地址0h~200h的源IST拷贝到800h~A00h中;
将800h写到ISTP寄存器中:
MVK 800h,B2...
分类:
其他好文 时间:
2014-07-13 18:41:03
阅读次数:
279
中断服务表指针ISTP(Interrupt Service Table Pointer)寄存器用于定位中断服务程序的位置,即ISTP指明中断发生后去哪里找要执行的程序,ISTP就是指向IST表的寄存器。ISTP中的一个字段ISTB确定IST的地址基数部分;另一个字段HPEINT确定特定的中断并定位特定的取指包在IST中的位置。图6-4所示为ISTP的各字段,表6-2描述了各字段及其如何使用。
下...
分类:
其他好文 时间:
2014-07-13 18:07:22
阅读次数:
213
C66x DSP执行中断的简要流程:
1、使能了全局中断和子中断,如果硬件检测到中断发生,那么CPU就要跳转。
2、软件把CPU内部的A,B类寄存器的值等推入堆栈保存,把当前PC寄存器的值放入IRP/NRP寄存器中以备中断返回能找到当前被打断的位置。
3、CPU的PC指针读出中断向量表的地址,也就是把“ISTP寄存器的ISTB值+子中断向量偏移量”装入PC寄存器,这样就执行跳转。
4、在中...
分类:
其他好文 时间:
2014-07-13 17:59:56
阅读次数:
244
系统event 0~127(包括了eventCombiner的输出event 0~3)与CPU支持的12个可屏蔽中断是通过INTMUX寄存器进行映射的(不包括NMI,RESET)。可以选择将系统event 0~127中的event通过INTMUX映射到某一个可屏蔽中断(INT4~15)。
TI C66x DSP每个CPU有3个INTMUX寄存器(INTMUX 1~3),下图中的Interrupt...
分类:
其他好文 时间:
2014-07-13 16:06:47
阅读次数:
220
当CPU开始处理一个中断(INT4~15)时,它将引用中断服务表(IST)。IST是一个获取包含中断服务代码的包的表。IST包含16个连续的获取包。每一个中断服务获取包(ISFP)包含最多14条指令(8个32bit nonheader-based 指令或者14个header-based
指令)。一个简单的中断服务程序可以放入一个独立的获取包中(也就是不用另外跳转到ISR了,14条指令足够了),若...
分类:
其他好文 时间:
2014-07-13 15:34:26
阅读次数:
195