第6章 DSP系统初始化及中断
- 格式:ppt
- 大小:1.22 MB
- 文档页数:49
DSP学习记录(存储器与中断)//第⼀章 EMIF的控制//07.09.06 昨天发⼯资了。
//sdram.prj 向sdram中写数再读数,之后灯闪烁。
//csl库: csl.h / csl_irq.h / csl_chip.h / csl_emifa.h1.烧写Flash改动想要学习烧写flash,于是把程序改成闪烁。
while(1){for(i=0 ; i < 0x100000 ; i++){for(j=0;j<40;j++){asm(" Nop ");}}* LED = (~(* LED))&0x03;}A)直接写到内部RAM中去通过Load Program就⾏了,不过要注意的是,在线修改程序后,⼀定要把正在运⾏着的程序停掉之后重新Load Program,那个ReLoad Program好像不太好使。
另外,板⼦上的复位键是⽤来复位板⼦的,复位之后,Ram中的程序还是以前那个,于重新下载没有任何帮助。
在程序运⾏阶段,不要对板⼦突然停电,这样的话,⼜要重新启动CCS;也不要在板⼦停电之后运⾏程序,不然程序铁定死在那⾥。
B)烧写到flash中去。
B1)使⽤FlashBurn参见⽂档《烧写步骤》。
z经验:1.flashBurn装不上很有可能是因为以前CCS3.1没有删⼲净,如果那样,只好重装系统。
2.最后⼀步program memory如果报错,那么reset⼀下就可以下载了,不⽤downloadfbtc,也不⽤erase memory,不过作了也没什么影响。
z在烧写过程中有三个⽂件需要⾃⼰编写,分别是:C641x_SDRAM.cmd , Boot.asm , load_sdram.cmd 在编译源程序时,Cmd⽂件⽤来分配rom和ram空间,告诉链接程序怎样计算地址和分配空间。
Cmd⽂件由三部分组成:1.输⼊/输出定义:这⼀部分,可以通过ccs的“Build Option........”菜单设置-l xx.lib 连接系统⽂件xx.lib(rtsxx.lib包括ANSI C标准库、系统启动程序c int00、允许C访问特殊指令的函数和宏)(cslxx.lib)包括使⽤CSL库编程时的链接。
[DSP+ARM] [转载]DSP中断设置简明教程定时器, 工作, 寄存器, 通用, 程序一、简述本文介绍TMS320C6000系列中断设置的简明方法。
通过示例定时器中断,MCBSP串口接收中断及外部中断这三种中断实现过程,介绍如何实现中断各个寄存器的配置,中断向量表书写以及中断服务函数。
最后提供一个简要的示例程序可供大家下载使用。
此示例在DSK6416的TI官方实验板上通过测试。
由于定时器和串口工作模式较繁,因此对中断无关部分不做介绍。
二、实现DSP中断需要做哪些通用工作设置允许哪些非屏蔽中断设置各个允许的非屏蔽中断的中断来源设置开启总中断设计中断向量表将中断向量表通过cmd文件挂载到指令内存提供中断处理函数如果中断向量表首地址挂载的不是0地址,那么需要设置中断向量表地址寄存器对于不同的中断源,需要做各个自己的工作,比如如果是外部中断,那么需要设置管脚极性,即由高->低产生中断抑或反之。
为了照顾知识较少的读者,下面将从一个新工程出发,引导大家建立一个中断示例程序。
如果您对建立工程很熟悉,可以跳过此步。
三、建立新工程1.点击Project->New,设置Project Name为intexample,Project Type为Executable,Target选择您需要的器件,在此由于本人使用的是DSK6416评估板。
因此选择TMS320C64XX。
2.添加标准库rts6400.lib,以便自动产生c_int00等函数。
右击当前工程,选择“Add Files to Project”,选择库所在路径,一般为CCS安装自带,可参考本CCS3.1版本的路径地址:CCStudio_v3.1C6000cgtoolslibrts6400.lib如果您使用的是其他器件类型,请在lib文件夹内选择其他器件库。
添加源文件,选择File->New->Source File,保存为main.c到工程路径下。
学习一个芯片的功能时,我的建议是先学会如何用C语言点亮一个LED灯,然后就是学习一下使用他的中断,因为在做芯片的时候,各个厂家有自己的一套自己的方法。
所以使用中断的就必须了解很多概念,比如如何打开中断,如何安装自己的中断子服务程序,等等!先介绍一下什么叫中断:你在下象棋,突然电话响了,你回屋接电话,然后回来继续下象棋,这个过程就叫做中断响应过程(中断过程)。
CPU执行正常任务———————下象棋保护现场———————————-你已经想好要―将军‖,先在脑海中记下来。
中断发生———————————-电话响-中断服务程序—————————-接电话恢复现场———————————-回来后恢复刚才想法中断返回———————————-你回来继续下象棋中断屏蔽———————————-Boss 正在训话,要求所有电话关机,你不能接电话了。
非屏蔽中断——————————-你内急,即使是Boss 在训话,你还是得到外面去嘘嘘。
可屏蔽中断——————————-你在―闭关修炼‖,可以不受外界干扰所以我们在使用中断之前先得告诉CPU,我们要使用那个中断,当中断发生的时候,你的执行程序的去向(也就是中断服务子程序),最后在返回我们被中断的函数。
这样就完成了我们的中断历程!看看6713执行中断的流程:一、使能了全局中断和子中断,那么CPU每执行一条指令之前就去查询一下有没有中断被置位,如果有产生的,那么CPU就要跳转!二、软件把CPU内部的寄存器A0~A15,B0~B15,等等这些寄存器的值推入堆栈保存,把当前PC寄存器的值放入IRP寄存器中以备中断返回能找到当前被打断的位置(保存现场,中断函数前面得加interrupt关键字)三、CPU的PC指针读出中断向量表的地址,也就是把(ISTP寄存器的值+子中断向量偏移量)装入PC寄存器,这样就执行跳转。
四、在中断向量表里一般有就用跳转指令,这样就可以跳转到我们用C语言编写的中断服务子程序中。
第2章系统配置和中断介绍系统的配置寄存器和有关中断,并介绍用于增加中断请求容量的外设中断扩展(PIE寄存器。
2.1 系统配置概述系统配置和中断操作的内容包括:系统配置寄存器、中断优先级和中断向量表、外设中断扩展控制器(PIE、中断向量、中断响应的流程、中断响应的时间、CPU中断寄存器、外设中断寄存器、复位、无效地址检测、外部中断控制寄存器。
LF2407大部分的I/O口是多路复用的,复位时会被上拉为数字输入的模式。
2.2 系统配置寄存器对功能模块进行配置。
2.2.1 系统控制和状态寄存器(1)系统控制和状态寄存器-SCSR1,映射到数据存储器空间7018h 。
位15:保留位14:CLKSRC,CLKOUT引脚输出源选择0-CLKOUT引脚输出CPU时钟;1-CLKOUT引脚输出WDCLK时钟位13-12:LPM低功耗模式选择,指明在执行IDLE 指令后进入哪一种低功耗模式。
00-进入IDLE1(LPM0)模式;01-进入IDLE2(LPM1)模式;1x -进入HALT (LPM2)模式。
位11-9:PLL时钟预定标选择,对输入时钟选择倍频系数。
000-4;001-2;010-1.33;011-1;100-0.8;101-0.66;110-0.57;111-0.5位8:保留位7:ADC CLKEN,ADC模块时钟使能控制位位6:SCICLKEN, SCI模块时钟使能控制位位5:SPICLKEN, SPI模块时钟使能控制位位4:CANCLKEN, CAN模块时钟使能控制位位3:EVBCLKEN, EVB模块时钟使能控制位位2:EVACLKEN, EVA模块时钟使能控制位0:禁止模块时钟(节能);1:使能模块时钟,且运行位1:保留位0:ILLADR, 无效地址检测位当检测到一个无效地址时,该位被置1,该位需软件清除,写0即可。
初始化时该位写0。
注意:任何无效的地址会导致NMI事件发生。
(2)系统控制和状态寄存器2-SCSR2映射到数据存储器空间7019h 。
DSP中断概述及中断源
C28x DSP内核总计有16个中断线,其中包括2个不可屏蔽中断(RESET和NMI)与14个可屏蔽中断。
可屏蔽中断通过相应的中断使能寄存器使能或禁止产生的中断,如图1所示。
图1 281x处理器中断源及其连接关系
在F281O和F2812处理器中,定时器1和定时器2预留给实时操作系统使用,其中断分配给INT14和INT13。
两个不可屏蔽中断RESET和NMI各自占用独立的专用中断,同时NMI中断也可以选择同定时器1复用INT13。
其余12个可屏蔽中断直接连接在外设中断扩展模块,供外部中断和处理器内部的外设单元使用。
图2给出了F281O和F2812处理器的中断源和复用情况。
所有16个中断线都连接到“中断向量表”上,每个中断对应一个JL位的中断人口地址,应用程序利用这些入口地址可以跳转到相应的中断服务程序。
图2 F2810和F2812的中断源和复用情况
欢迎转载,信息来源维库电子市场网()。
DSP复习要点第一章绪论1、数的定标:Qn表示。
例如:16进制数2000H=8192,用Q0表示16进制数2000H=0.25,用Q15表示2、‟C54x小数的表示方法:采用2的补码小数;.word 32768 *707/10003、定点算术运算:乘法:解决冗余符号位的办法是在程序中设定状态寄存器STl中的FRCT位为1,让相乘的结果自动左移1位。
第二章CPU结构和存储器设置一、思考题:1、C54x DSP的总线结构有哪些特点?答:TMS320C54x的结构是围绕8组16bit总线建立的。
(1)、一组程序总线(PB):传送从程序存储器的指令代码和立即数。
(2)、三组数据总线(CB,DB和EB):连接各种元器件,(3)、四组地址总线(PAB,CAB,DAB和EAB)传送执行指令所需要的地址。
2、C54x DSP的CPU包括哪些单元?答:'C54X 芯片的CPU包括:(1)、40bit的算术逻辑单元(2)、累加器A和B(3)、桶形移位寄存器(4)、乘法器/加法器单元(5)、比较选择和存储单元(6)、指数编码器(7)、CPU状态和控制寄存器(8)、寻址单元。
1)、累加器A和B分为三部分:保护位、高位字、地位字。
保护位保存多余高位,防止溢出。
2)、桶形移位寄存器:将输入数据进行0~31bits的左移(正值)和0~15bits的右移(负值)3)、乘法器/加法器单元:能够在一个周期内完成一次17*17bit的乘法和一次40位的加法4)、比较选择和存储单元:用维比特算法设计的进行加法/比较/选择运算。
5)、CPU状态和控制寄存器:状态寄存器ST0和ST1,由置位指令SSBX和复位指令RSBX控制、处理器模式状态寄存器PMST2-3、简述’C54x DSP的ST1,ST0,PMST的主要功能。
答:’C54x DSP的ST1,ST0,PMST的主要功能是用于设置和查看CPU的工作状态。
•ST0主要反映处理器的寻址要求和计算机的运行状态。