1.2812芯片定点32位。
2.2000系列用于自动化的原因功能比较强。
2812 IO口供电电压3.3V,内核供电电压1.8V或1.9V2812 编译时.CMD是什么文件,.out是什么文件.obj是什么文件? .CMD是链接命令文件,.out 是最终可执行文件,.obj是目标文件。
2812 3个通用定时器是多少位,DSP采用段的概念,各个段的都有什么意思?32位;已初始化的断:包含真实的指令跟数据,存放在程序存储空间;未初始化的段:包含变量的地址空间,存放在数据存储空间。
2812 时钟150M时,低速、高速外设时钟是多少M?低速37.5M,高速75MDSP总线结构是什么样子? 改进型哈弗结构2812 CPU的中断有可屏蔽中断和不可屏蔽中断,分别是哪些?可屏蔽中断:1~14 14个通用中断;DLOGINT数据标志中断;RTOSINT实时操作系统中断。
不可屏蔽中断:软件中断(INTR指令和TRAP指令);硬件中断,非法指令陷阱;硬件复位中断;用户自定义中断。
2812实际寻址空间是多少? 00000~3FFFF(4M)2812 1个事件管理器能产生8路PWM波。
注意老师多半出的2个事件管理器16路DSP有3组数据总线,分别是什么?程序数据总线、数据读数据总线、数据写数据总线。
ADC模块有多少组采样通道?8*2=16路SCI和SPI口哪一个需要设置波特率?SCI把目标文件下载到实验板怎么操作?File→load programCAN通讯的最大带宽是多少?1M加上看门狗,2812cpu定时器一共有多少个?3个通用定时器,4个事件管理定时器,1个看门狗,总共8个。
2812DSP流水线深度为8。
TI公司生产的最牛dsp是667x有8个核,320G mac /s。
注:mac是乘法累加G=1092812AD满量程转换时,转换寄存器的值是多少?0xFFF02812CPU最小系统:主芯片,电源模块,时钟电路,复位电路,JTAG。
DSP生产厂家是TI公司,ADI公司,飞思卡尔公司。
TI公司的DSP芯片类型有C2000,C5000,C6000。
系列DSP工程开发,需要编写4个文件:头文件,库文件,源文件,CMD链接文件。
2812有2个事件管理器EVA、EVB,每一个事件管理器包含哪几个功能?通用定时器;比较单元;捕获单元;正交编码电路。
2812通用定时器计数周期怎么算?T=(TDDRH:TDDR+1)*(PRDH:PRD+1) /150 μs2812在什么情况下工作于微处理器模式?MP/=12812中断系统有一部分挂在PIE上面,这些都属于可屏蔽中断,那么能够响应中断的条件是什么?INTM置0响应总中断,其他的置1响应。
(INTM=0,IFR=1,IER=1,PIEIFR=1,PIEIER=1,PIEACR=1)2812在进行引导时第一条程序在什么位置?0x3FFFC0 注:就是程序运行的起始地址,2^20byte=1M2812AD转换器的输入电压0~3V。
2812片内flash有128k*16位。
2812的OTP模块是可编程模块可以多次擦写吗?不可以,是一次擦写。
2812 ROM是不可编程的,flash是可以多次擦写的。
2812的供电电压?当时钟频率为135MHz时,内核电压1.8V;时钟频率为150MHz时,内核电压1.9V。
memory sections是CMD文件里面的。
这2个意思是通过memory伪指令来指示存储空间,通过sections伪指令来分配到存储空间。
PIE支持多少个外部中断,实际上使用了多少个?最大支持96个,实际使用45个,其他都保留。
看门狗是干什么的?通过软件,给看门狗计数器的密钥周期性的写明哪两个数?为DSP的运行情况进行“把脉”,如果发现程序跑飞或者状态不正常,便立即使DSP复位,提高系统的可靠性,密钥周期性写明0x55,0xAA。
SPI口和SCI口是干嘛的?SPI是串行外设接口,是一种高速的,全双工,同步的通信总线。
SCI是相对于并行通信的,是串行通信技术的一种总称。
SCI口可以设计成rs232接口,也可以设计成rs485接口?对2812有多少个通用IO口?56个2812的乘法器是多少位?32位6000系列更适合处理图像。
2812下载的程序是在片外flash跑。
片内RAM 18K*16位CCS用什么命令打开什么窗口显示存储器的数据?view-memory2812的AD的最高的采样速率是多少?12.5M2812有4种工作模式:正常模式;空闲模式;待机模式;暂停模式。
最省电的是?暂停模式2812的DSP用多少个字节的地址空间用于存放中断服务程序的地址?4字节CAN的抗通讯距离可以达到多远?10KMCMD文件下面有memory sections,其中memory下面的括号要写什么?PAGE0(程序空间),PAGE1(数据空间)CCS建立工程到下载程序分成哪三步?新建工程→添加源文件、库文件、CMD链接文件→编译2812的DSP可以实现倍频或者分频的是什么?PLL(锁相环)最大倍频系数52812一个周期内能算多少位的乘法?16x16位能算几个,32x32位能算几个?32位;2个;1个。
2812的RAM多大?18K*16位使用厂家的bootloader进行引导时MP/MC应该怎么设置?MP/=0SCI口是串口时,地址是什么?0x00007050~0x0000705F,0x00007750~0x0000775F2812的高速外部时钟是不是一定比低速外部时钟快?不一定2812的中断向量的地址是不是不能改变?不是,能改变DSP在编程时流水线是有冲突的。
如,下一条指令在用上一条指令的结果时,上一条指令还没有计算完,这就引起了流水线冲突,必须打断。
C语言写程序时有流水线冲突吗?C语言写的程序没有流水线冲突,汇编写程序时有流水线冲突。
DSP比51快,为什么?因为DSP有改进型哈弗结构,多路数据总线,指令流水线,地址发生器,硬件的乘法器,零开销循环。
第一个实验1.系统初始化函数*文件名:DSP28_SysCtrl.c*功能:对2812的系统控制模块进行初始化#include "DSP28_Device.h"*名称:InitSysCtrl()*功能:该函数对2812的系统控制寄存器进行初始化void InitSysCtrl(void){Uint16 i;EALLOW;// 对于TMX产品,为了能够使得片内RAM模块M0/M1/L0/L1LH0能够获得最好的性能,控制寄存器的位// 必须使能,这些位在设备硬件仿真寄存器内。
TMX是TI的试验型产品DevEmuRegs.M0RAMDFT = 0x0300;DevEmuRegs.M1RAMDFT = 0x0300;DevEmuRegs.L0RAMDFT = 0x0300;DevEmuRegs.L1RAMDFT = 0x0300;DevEmuRegs.H0RAMDFT = 0x0300;// 禁止看门狗模块SysCtrlRegs.WDCR= 0x0068;// 初始化PLL模块SysCtrlRegs.PLLCR = 0xA;//如果外部晶振为30M,则SYSCLKOUT=30*10/2=150MHz// 延时,使得PLL模块能够完成初始化操作for(i= 0; i< 5000; i++){}// 高速时钟预定标器和低速时钟预定标器,产生高速外设时钟HSPCLK和低速外设时钟LSPCLKSysCtrlRegs.HISPCP.all = 0x0001; // HSPCLK=150/2=75MHzSysCtrlRegs.LOSPCP.all = 0x0002; // LSPCLK=150/4=37.5MHz// 对工程中使用到的外设进行时钟使能// SysCtrlRegs.PCLKCR.bit.EVAENCLK=1;// SysCtrlRegs.PCLKCR.bit.EVBENCLK=1;// SysCtrlRegs.PCLKCR.bit.SCIENCLKA=1;// SysCtrlRegs.PCLKCR.bit.SCIENCLKB=1;EDIS;}2.GPIO初始化函数*文件名:DSP28_Gpio.c*功能:2812通用输入输出口GPIO的初始化函数#include "DSP28_Device.h"*名称:InitGpio()*功能:初始化Gpio,使得Gpio的引脚处于已知的状态,例如确定其功能是特定功能还是通用I/O。
如果是通用I/O,是输入还是输出,等等。
void InitGpio(void){EALLOW;GpioMuxRegs.GPFMUX.bit.XF_GPIOF14=0; //设置XF引脚为通用数字I/O口GpioMuxRegs.GPFDIR.bit.GPIOF14=1; //设置XF引脚为输出口EDIS;}3.主函数*文件名:GpioLed.c*功能:使用XF引脚作为通用的I/O口来控制LED灯的闪烁#include "DSP28_Device.h"#include "DSP28_Globalprototypes.h"void delay_loop(); //延时函数*名称:main()*功能:通过引脚XF_XPLLDIS作为I/O口来控制LED灯的亮和灭void main(){int kk=0;InitSysCtrl(); //初始化系统函数DINT;IER=0x0000; //禁止CPU中断IFR=0x0000; //清除CPU中断标志InitPieCtrl(); //初始化PIE控制寄存器InitPieVectTable(); //初始化PIE中断向量表InitGpio(); //初始化GPIO口while(1){GpioDataRegs.GPFCLEAR.bit.GPIOF14=1; //XF引脚输出低电平,D1灯亮for(kk=0; kk<100; kk++)delay_loop(); //延迟保持GpioDataRegs.GPFSET.bit.GPIOF14=1; //XF引脚输出高电平,D1灯灭for(kk=0; kk<100; kk++)delay_loop(); //延迟保持}}*名称:delay_loop()*功能:延时函数,使得LED灯点亮或者熄灭的状态保持一定的时间void delay_loop(){short i;for(i=0; i<30000; i++){}}CMD文件MEMORY{PAGE 0 :PRAMH0 : origin = 0x3f8000, length = 0x001000 PAGE 1 :/* SARAM */RAMM0 : origin = 0x000000, length = 0x000400 RAMM1 : origin = 0x000400, length = 0x000400 /* 外设帧0: */DEV_EMU : origin = 0x000880, length = 0x000180 FLASH_REGS : origin = 0x000A80, length = 0x000060 CSM : origin = 0x000AE0, length = 0x000010 XINTF : origin = 0x000B20, length = 0x000020 CPU_TIMER0 : origin = 0x000C00, length = 0x000008 CPU_TIMER1 : origin = 0x000C08, length = 0x000008 CPU_TIMER2 : origin = 0x000C10, length = 0x000008 PIE_CTRL : origin = 0x000CE0, length = 0x000020 PIE_VECT : origin = 0x000D00, length = 0x000100 /* 外设帧1: */ECAN_A : origin = 0x006000, length = 0x000100 ECAN_AMBOX : origin = 0x006100, length = 0x000100 /* 外设帧2: */SYSTEM : origin = 0x007010, length = 0x000020 SPI_A : origin = 0x007040, length = 0x000010 SCI_A : origin = 0x007050, length = 0x000010 XINTRUPT : origin = 0x007070, length = 0x000010 GPIOMUX : origin = 0x0070C0, length = 0x000020 GPIODAT : origin = 0x0070E0, length = 0x000020 ADC : origin = 0x007100, length = 0x000020 EV_A : origin = 0x007400, length = 0x000040 EV_B : origin = 0x007500, length = 0x000040 SPI_B : origin = 0x007740, length = 0x000010 SCI_B : origin = 0x007750, length = 0x000010 MCBSP_A : origin = 0x007800, length = 0x000040 /* 代码安全模块密码区所在位置*/CSM_PWL : origin = 0x3F7FF8, length = 0x000008 /* SARAM */DRAMH0 : origin = 0x3f9000, length = 0x001000 }SECTIONS{/* 存放程序: */.reset : > PRAMH0, PAGE = 0.text : > PRAMH0, PAGE = 0.cinit : > PRAMH0, PAGE = 0/* 存放数据区: */.stack : > RAMM1, PAGE = 1.bss : > DRAMH0, PAGE = 1 .ebss : > DRAMH0, PAGE = 1 .const : > DRAMH0, PAGE = 1 .econst : > DRAMH0, PAGE = 1 .sysmem : > DRAMH0, PAGE = 1 /* 存放外设0相关寄存器的结构: */ DevEmuRegsFile : > DEV_EMU, PAGE = 1 FlashRegsFile : > FLASH_REGS, PAGE = 1 CsmRegsFile : > CSM, PAGE = 1 XintfRegsFile : > XINTF, PAGE = 1 CpuTimer0RegsFile : > CPU_TIMER0, PAGE = 1 CpuTimer1RegsFile : > CPU_TIMER1, PAGE = 1 CpuTimer2RegsFile : > CPU_TIMER2, PAGE = 1 PieCtrlRegsFile : > PIE_CTRL, PAGE = 1 PieVectTable : > PIE_VECT, PAGE = 1/* 存放外设2相关寄存器的结构: */ ECanaRegsFile : > ECAN_A, PAGE = 1 ECanaMboxesFile : > ECAN_AMBOX PAGE = 1 /* 存放外设1相关寄存器的结构: */ SysCtrlRegsFile : > SYSTEM, PAGE = 1 SpiaRegsFile : > SPI_A, PAGE = 1 SciaRegsFile : > SCI_A, PAGE = 1 XIntruptRegsFile : > XINTRUPT, PAGE = 1 GpioMuxRegsFile : > GPIOMUX, PAGE = 1 GpioDataRegsFile : > GPIODAT PAGE = 1 AdcRegsFile : > ADC, PAGE = 1 EvaRegsFile : > EV_A, PAGE = 1 EvbRegsFile : > EV_B, PAGE = 1 ScibRegsFile : > SCI_B, PAGE = 1 McbspaRegsFile : > MCBSP_A, PAGE = 1 /* 代码安全模块密码区所在的位置*/ CsmPwlFile : > CSM_PWL, PAGE = 1。