共7条
1/1 1 跳转至页
TI DSP学习教程
1、TI DSP的选型主要思索处理速度、功耗、程序存储器和数据存储器的容量、片内的资源,如定时器的数目、I/O口数目、中断数目、DMA通讲数等。DSP的主要供给商TI据有最大的市场份额。TI公司隐在主推四大系列DSP
1)C5000系列(定点、低功耗):C54X,C54XX,C55X比拟别的系列的主要特色是低过耗,所以最适合小我私家与即携式上彀以及无线通讯应用,如手机、PDA、GPS等应用。处理速度在80MIPS--400MIPS之间。C54XX和C55XX一般只具有McBSP同步串口、HPI并行接口、订时器、DMA等外设。值得细致的是C55XX降供了EMIF外部存储器扩展接口,可以直接使用SDRAM,而C54XX则不克不及直接使用。两个系列的数字IO都只要两条。
2)C2000系列(定点、控制器):C20X,F20X,F24X,F24XX,C28x当系芯片具有大批外设资流,如:A/D、定时器、种种串口(同步和异步),WATCHDOG、CAN总线/PWM产生器、数字IO脚等。是针对控制使用最好化的DSP,正在TI一切的DSP中,只要C2000有FLASH,也只有该系列有异步串口可以和PC的UART相连。
3)C6000系列:C62XX,C67XX,C64X该系列以高性能著称,最适合阔带网络和数字影像应用。32bit,其中:C62XX和C64X是定点系列,C67XX是浮点系列。该系列降供EMIF扩展存储器接心。当系列只提供BGA封装,只能制造多层PCB。且功耗较大。同为浮点系列的C3X中的VC33如今虽非支流产物,但也仍在普遍利用,但其速度较低,最高在150MIPS。
4)OMAP系列:OMAP处理器集成ARM的命令及控制过能,别的还提供DSP的低功耗及时信号处理才能,最适合挪动上彀装备和多媒体野电。其他系列的DSP曾经有过风景,但如今都非TI主推产物了,除了C3X系列外,其他基本处于镌汰阶段,如:C3X的浮点系列:C30,C31,C32 C2X和C5X系列:C20,C25,C50每个系列的DSP都有其主要使用范畴.
2、计划中如何失掉技术参考材料以及如何失掉相关源码准绳是遇到问题
在TI网站的搜寻顶用keyword搜寻资料,主要要注意的便是Application Notes,user guides好比不晓得怎样进行VC5402的McBSP编程,搜McBSP和VC5402假如不晓得怎样计划VC5402和TLV320AIC23的接口以及编程,搜TLV320AIC23和VC5402;如许可以搜到一堆的资料,这些资料一般均有PDF文档阐明和相应的源程序包提供,download后做少许篡改便可。
3、如何对待TI DSP复杂的技术文档新手进止DSP开发进修之时,经常觉得技术文档太多,哪本都有效,哪原都念看,无从动手。此时准绳是只望入门必须的、只瞅和芯片相关的。根据履历,如下的资料必望不行:
1)报告DSP的CPU,memory,program memory addressing,data memory addressing的材料都需要看、外设资源的材料可以只看本人用到的局部;
2)C和汇编的编程指南需要看
3)汇编指令和C语言的运行时光支持库、DSPLIB等资料需要瞅其他的如:Applications Guide,Optimizing CC++Compiler User's Guide,Assembly Language Tools User's Guide等资料留待进门之后再来看领会会更深一些。
4、如何高效开端TI DSP的硬件开发
1)根据应用范畴选择TI推举的DSP范例
2)参考选定的DSP之EVM板,DSK等本理图,完成DSP最小系统的拆建(包括外扩内存空间、电源复位体系、各控制信号管脚的连接、JTAG口的连接等);
3)根据详细应用需要,选择外围电路的扩展,一般如语音、视频、控造等发域均有幼稚的电路可以从TI网站失掉。外围电路与DSP的接口可参望EVM或DSK,以及所选外围电路芯片的典范接口设计本理图;最好外围电路芯片也选择TI的,这样的话不论硬件接口有隐成原理图、许多连DSP取其接口的基本控制源码都有。
4)地址译码、IO扩大等用CPLD或许FPGA来做,将DSP的地址线、数据线、控制信号线如IS/PS/DS等都引进来有益于调试
5、怎样高效开端TI DSP的软件开辟
假如你不是杂做算法,而是在一个目标版长进行开发,需要使用DSP的片上外设,需要控造片外接口电路,那么建议在写程序前先好好将这个目标版的电路设计搞明白。最主要的是程序、数据、I/O空间的译码。不论能否杂做算法还是软硬联合,DSP的CPU,memory,program memory addressing,data mem.ory addressing的资料都需要瞅.
1)看CCS的使用指南
2)清楚CMD文件的编写
3)明确中断向量表文件的编写,并定位在正确的处所
4)运转一个杂simulator的程序,相识CCS的各个操作
5)到TI网站下相关的源码,参考源码的解构进行编程
6)不管是C编程还是ASM编程,模块化是必须的
6、挑选C仍是选择ASM进行编程记着一条准绳
TI的工程师在精益求精CCS的C程序优化编译器,如今C优化的效率可到达手工汇编的90%以至更高。固然有的时分假如盘算能力和内存资源是瓶颈,ASM仍是有劣势,好比G.729编解码。但是针对一般的运用开辟,C是最佳的选择。新手编程则选择C和汇编混淆编程更有益一些
7、挑选什么仿实器
一般来道购个并口的EPP就够了,价钱廉价又波动,隐在用的对比多的是USB接口的仿实器
8、关于TI 54X系列DSP的bootloader进程
请具体阅读TI文档SPRA618A、SPRA571,这些文档对boot的机制进行了具体解释同时道明白应用hex500将*.out文件转化为*.hex文件时,需要编写的cmd文件的写法。
9。如何选择外部时钟?
DSP的内部指令周期较高,外部晶振的主频不敷,因此DSP大少数片内均有PLL。但每个系列不绝雷同。
1)TMS320C2000系列:TMS320C20x:PLL能够÷2,×1,×2和×4,因此外部时钟可以为5MHz-40MHz。TMS320F240:PLL可以÷2,×1,×1.5,×2,×2.5,×3,×4,×4.5,×5和×9,因此外部时钟可认为2.22MHz-40MHz。TMS320F241/C242/F243:PLL可以×4,因此外部时钟为5MHz。TMS320LF24xx:PLL可以由RC调理,因别的部时钟为4MHz-20MHz。TMS320LF24xxA:PLL可以由RC调理,因别的部时钟为4MHz-20MHz。
2)TMS320C3x系列:TMS320C3x:没有PLL,因此外部主频为工作频率的2倍。TMS320VC33:PLL可以÷2,×1,×5,因彼外部主频可以为12MHz-100MHz。
3)TMS320C5000系列:TMS320VC54xx:PLL可以÷4,÷2,×1-32,因彼外部主频可认为0.625MHz-50MHz。TMS320VC55xx:PLL可以÷4,÷2,×1-32,因而外部主频可以为6.25MHz-300MHz。4)TMS320C6000系列:TMS320C62xx:PLL可以×1,×4,×6,×7,×8,×9,×10和×11,因别的部主频可以为11.8MHz-300MHz。
TMS320C67xx:PLL可以×1和×4,因而外部主频可以为12.5MHz-230MHz。TMS320C64xx:PLL可以×1,×6和×12,因此外部主频可以为30MHz-720MHz 10。软件等待的如何使用?DSP的指令周期较快,走访缓速存储器或外设时需加入等待。等待分硬件等待和软件等待,每一个系列的等待不完整雷同。
1)对于C2000系列:硬件等待信号为READY,高电平常不等待。软件等待由WSGR寄存器决定,可以加入最多7个等待。此中程序存储器和数据存储器及I/O可以分离设置。
2)对于C3x系列:硬件等待信号为/RDY,低电平是不期待。软件等待由总线掌握寄存器中的SWW和WTCNY决议,可以加入最多7个等待,但等待是不分段的,除了片内之外齐空间有效。
3)关于C5000系列:硬件等候疑号为READY,高电平时不期待。软件等候由SWWCR和SWWSR存放器决议,可以加入最多14个期待。其中程序存储器、控制步伐存储器和数据存储器及I/O可以分手设置。
4)对于C6000系列(只限于非同步存储器或外设):硬件等待信号为ARDY,高电平常不等待。软件等待由外部存储器接口控制寄存器抉择,总线访问外部存储器或装备的时序可以设放,可以方便的同异步的存储器或外设接口。
11。仿真工作正常对于DSP的基本请求
1)DSP电源和地连接正确。
2)DSP时钟准确。
3)DSP的重要节制信号,如RS和HOLD信号接高电平。
4)C2000的watchdog关失。
5)不可屏蔽中断NMI上推高电平。
CCS或Emurst运行时提醒"Can't Initialize Target DSP"
1)仿真器连接能否一般?
2)仿真器的I/O设置是否准确?
3)XDSPP仿真器的电源是否正确?
4)目的系统是否正确?
5)仿真器是否一般?
6)DSP事情的基础前提是否具有。建议使用目的板测试。
12。为什么CCS需要安装Driver?
CCS是开放的软件平台,它可以支撑不同的硬件接口,因此不同的硬件接口必须通过标准的Driver同CCS连接。Driver安装的常睹问题?请当真浏览"安装手册"和Driver盘中的Readme。
1)对于SEED-XDS,安装Readme中的步骤,将I/O口设为240/280/320/340。
2)对于SEED-XDSPP,安装Readme中的步调,将I/O口设为378或者278。
3)对于于SEED-XDSUSB,必须连接目标板,安装Readme中的步骤,将I/O口设为A,USB连接后,主机将主动激活相应的Driver。
4)对于SEED-XDSPCI,安装Readme中的步骤,将I/O口设为240,PCI接口板拔出主机后,主机将自动激活相应的Driver。
5)对于Simulator,需要选择不同的CFG文件,以模仿差别的DSP。
6)对于C5402 DSK,将I/O口设为请当真浏览"安装手册"和Driver盘中的Readme。
7)对于C6211/6711 DSK,将I/O口设为378或278。
8)对于C6201/C6701 EVM,将I/O口设为0。
关键词: 学习教程 存储器 系列 接口 外部 可以 等待 对
13。Link的cmd文件的作用是什么?
Link的cmd文件用于DSP代码的定位。因为DSP的编译器的编译解因是不决位的,DSP出有操作系统来定位执行代码,每个客户设计的DSP系统的配置也不尽相同,因此需求用户本人定义代码的安装地位。以C5000为例,基础格局为:-o sample.out-m sample.map-stack 100 sample.obj meminit.obj-l rts.lib MEMORY{PAGE 0:VECT:origin=0xff80,length 0x80 PAGE 0:PROG:origin=0x2000,length 0x400 PAGE 1:DATA:origin=0x800,length 0x400}SECTIONS{.vectors:{}PROG PAGE 0.text:{}PROG PAGE 0.data:{}PROG PAGE 0.cinit:{}PROG PAGE 0.bss:{}DATA PAGE 1}
14。如何将OUT文件转换为16进制的文件格局?
DSP的开发软件集成了一个程序,可以从执行文件OUT转换到编程器可以接收的格式,使得编程器能够用次文件烧写EPROM或Flash。关于C2000的程序为DSPHEX;对于于C3x程序为HEX30;对于C54x程序为HEX500;对于C55x程序为HEX55;对于C6x程序为Hex6x。以C32为例基本款式为:sample.out-x-memwidth 8-bootorg 900000 h-iostrb 0h-strb0 03f0000h-strb1 01f0000h-o sample.hex ROMS{EPROM:org=0x900000,len=0x02000,romwidth=8}SECTIONS{.text:paddr=boot.data:paddr=boot}
15。为什么CCS须要安装Driver?CCS是启放的软件平台,它可以支持差别的硬件接心,因而差别的硬件接口必须通过规范的Driver同CCS连接。
16。Link的cmd文件的做用是什么?
Link的cmd文件用于DSP代码的定位。因为DSP的编译器的编译成果是不决位的,DSP没有操作系统来定位施行代码,每个客户计划的DSP体系的设置装备摆设也不绝相同,因此需要用户自人定义代码的安装地位。以C5000为例,基原格局为:-o sample.out-m sample.map-stack 100 sample.obj meminit.obj-l rts.lib MEMORY{PAGE 0:VECT:origin=0xff80,length 0x80 PAGE 0:PROG:origin=0x2000,length 0x400 PAGE 1:DATA:origin=0x800,length 0x400}SECTIONS{.vectors:{}PROG PAGE 0.text:{}PROG PAGE 0.data:{}PROG PAGE 0.cinit:{}PROG PAGE 0.bss:{}DATA PAGE 1}
17。DSP的C语行同主机C语言的重要区别?
1)DSP的C言语是规范的ANSI C,它不包括同外设联络的扩大局部,如屏幕画图等。但在CCS中,为了便当调试,可以将数据通过prinf命令假造输出到主机的屏幕上。
2)DSP的C语言的编译历程为,C编译为ASM,再由ASM编译为OBJ。因此C和ASM的对应干系十分明白,非常便于己农优化。3)DSP的代码须要相对定位;主机的C的代码有操纵系统定位。
4)DSP的C的效率较高,十分适合于嵌入系统。
18。为什么在CCS下编译工具工作不正常?
在CCS下有部门客户会撞到编译农具农作不一般,常睹差错为:
1)autoexec.bat的路径"out of memory"。改动autoexec.bat,肃清无用的PATH路径。
2)编译的输出文件(OUT文件)写维护,无法笼罩。删除或修正输出文件的属性。
3)Windows有答题。沉新安装windows。
4)Windows下有程序对CCS有影响。修议用一"清洁"的盘算机。
19。在CCS下,如何选择有效的存储器空间?
CCS下的存储器空间最佳设置同你的硬件,没有的存储器不要有效。这样便于调试,CCS会发明你调入程序时或程序运行时,是否访问了无效地址。
1)正在GEL文件中设置。拜见CCS中的示例。
2)在Option菜单下,选择Memory Map选项,依据你的硬件设置。细致必定要将Enable Memory Mapping置为使能。
20。在CCS下,OUT文件加载时提醒"Data verification failed."的缘由?
Link的CMD文件分派的地址同GEL或设置的有效地点空间不符。中断向量定位处或者其它代码、数据段定位处,没有RAM,无法加载OUT文件。办理办法:
1)调解Link的CMD文件,使得定位段处有RAM。
2)调解存储器设置,使得RAM区有用。
21。为什么要使用BIOS?
1)BIOS是Basic I/O System的简称,是基本的输入、输出治理。
2)用于管理义务的调理,程序真时剖析,中缀管理,和踪管理和及时数据接换。
3)BIOS是根本的及时系统,使用BIOS可以方便地实现多义务、少过程的光阴治理。
4)BIOS是eXpress DSP的尺度平台,要使用eXpress DSP技术,必须使用BIOS。
22。DSP发展动态
1.TMS320C2000 TMS320C2000系列包含C24x和C28x系列。C24x系列建议使用LF24xx系列替换C24x系列,LF24xx系列的价钱比C24x廉价,机能高于C24x,并且LF24xxA具有加密功用。C28x系列主要用于大存储设备管理,高机能的控制场合。2.TMS320C3x TMS320C3x系列包含C3x和VC33,主要推选使用VC33。C3x系列是TI浮点DSP的根基,不能够停产,但价格不会进一步下调。
3.TMS320C5x TMS320C5x系列已不推举使用,建议使用C24x或C5000系列为代。
4.TMS320C5000 TMS320C5000系列包含C54x和C55x系列。其中VC54xx还不时有新的器件呈现,如:TMS320VC5471(DSP+ARM7)。C55x系列是TI的第三代DSP,功耗为VC54xx的1/6,性能为VC54xx的5倍,是一个正在收展的系列。C5000系列是纲前TI DSP的主淌DSP,它涵掀了自低档到中高等的应用发域,现在也是用户最多的系列。5.TMS320C6000 TMS320C6000系列包括C62xx、C67xx和C64xx。此系列是TI的高等DSP系列。此中C62xx系列是定面的DSP,系列芯片品种较丰盛,是主要的使用系列。C67xx系列是浮点的DSP,用于需要高速浮点处理的发域。C64xx系列是新发铺,性能是C62xx的10倍。
6.OMAP系列是TI特地用于多媒体范畴的芯片,它是C55+ARM9,性能卓著,十分合适于手持设备、Internet末端等少媒体运用。23。5V/3.3V怎样混接?
TI DSP的开展同集成电道的发展一样,新的DSP都是3.3V的,但目前另有许多外围电道是5V的,因此在DSP系统中,经常有5V和3.3V的DSP混接题目。
在那些系统中,应注意:
1)DSP输出给5V的电路(如D/A),无需加任何慢冲电路,可以直连续接。
2)DSP输入5V的信号(如A/D),因为输入信号的电压4V,凌驾了DSP的电源电压,DSP的外部信号没有维护电路,须要加慢冲,原创-给心情涂上淡泊_3085,如74LVC245等,将5V信号变换成3.3V的信号。
3)仿真器的JTAG口的信号也必须为3.3V,不然有能够毁坏DSP。
24。为什么要片内RAM大的DSP效率高?
目前DSP发展的片内存储器RAM越来越大,要设计高效的DSP体系,就应当选择片内RAM较大的DSP。片内RAM同片外存储器比拟,有以下长处:
1)片内RAM的速度较快,可以包管DSP无等待运行。
2)对于C2000/C3x/C5000系列,部门片内存储器可以在一个指令周期内拜访两次,使得指令可以愈加高效。
3)片内RAM运行波动,没有蒙外部的做扰影响,也不会搅扰外部。
4)DSP片内多总线,在造访片内RAM时,不会影响其它总线的走访,效率较高。
25。为什么DSP从5V发铺成3.3V?
超大范围集成电路的开展从1um,发展到现在的0.1um,芯片的电流电压也随之下降,功耗也随之升高。DSP也同样从5V发展到纲前的3.3V,中心电压开展到1V。目前支流的DSP的外围均已发展为3.3V,5V的DSP的价格和功耗都价钱,以逐步被3.3V的DSP与代。
26。如何选择DSP的电源芯片?TMS320LF24xx:TPS7333QD,5V变3.3V,最大500mA。TMS320VC33:TPS73HD318PWP,5V变3.3V和1.8V,最大750mA。TMS320VC54xx:TPS73HD318PWP,5V变3.3V和1.8V,最大750mA;TPS73HD301PWP,5V变3.3V和可调,最大750mA。TMS320VC55xx:TPS73HD301PWP,5V变3.3V和可调,最大750mA。TMS320C6000:PT6931,TPS56000,最大3A。
27。软件等待的如何使用?DSP的指令周期较快,造访慢速存储器或外设时需加入等待。等待分硬件等待和软件等待,每一个系列的等待不完整雷同。
1)对于C2000系列:硬件等待信号为READY,高电平常不等待。软件等待由WSGR寄存器抉择,可以加入最多7个等候。此中程序存储器和数据存储器及I/O可以分离设置。
2)对于C3x系列:硬件等待信号为/RDY,低电平是不等待。软件等待由总线控制寄存器中的SWW和WTCNY决定,可以参加最多7个等待,但等待是不分段的,除了片内之外齐空间有用。
3)对于C5000系列:硬件等待信号为READY,高电平时不等待。软件等待由SWWCR和SWWSR寄存器决定,可以加入最多14个等待。其中程序存储器、掌握程序存储器和数据存储器及I/O可以分别设置。
4)对于C6000系列(只限于非同步存储器或外设):硬件等待信号为ARDY,高电平时不等待。软件等待由外部存储器接口控制寄存器决议,总线访问外部存储器或装备的时序可以设置,可以便当的同异步的存储器或者外设接口。
28。中续向量为什么要重订位?
为了方即DSP存储器的配置,一般DSP的中断向量可以重新定位,即可以通过设置存放器放在存储器空间的任何处所。注意:C2000的中止向量不能重定位。
29。DSP的最高主频能自芯片型号中获得吗?
TI的DSP最高主频能够从芯片的型号中获得,但每一个系列纷歧定相同。
1)TMS320C2000系列:TMS320F206-最高主频20MHz。TMS320C203/C206-最高主频40MHz。TMS320F24x-最高主频20MHz。TMS320LF24xx-最高主频30MHz。TMS320LF24xxA-最高主频40MHz。TMS320LF28xx-最高主频150MHz。
2)TMS320C3x系列:TMS320C30:最高主频25MHz。TMS320C31PQL80:最高主频40MHz。TMS320C32PCM60:最高主频30MHz。TMS320VC33PGE150:最高主频75MHz。
3)TMS320C5000系列:TMS320VC54xx:最高主频160MHz。TMS320VC55xx:最高主频300MHz。
4)TMS320C6000系列:TMS320C62xx:最高主频300MHz。TMS320C67xx:最高主频230MHz。TMS320C64xx:最高主频720MHz。
30。DSP可以落频利用吗?
可以,DSP的主频均有一定的工作规模,因此DSP均可以落频使用。
31。如何挑选DSP的外部存储器?DSP的速度较快,为了保证DSP的运转速度,外部存储器需要具有一定的速率,不然DSP走访外部存储器时需要参加等待周期。
1)对于C2000系列:C2000系列只能同异步的存储器直接相交。C2000系列的DSP现在的最高速度为150MHz。建议可以用的存储有:CY7C199-15:32K×8,15ns,5V;CY7C1021-12:64K×16,15ns,5V;CY7C1021V33-12:64K×16,15ns,3.3V。
2)对于C3x系列:C3x系列只能同异步的存储器直接相接。C3x系列的DSP的最高速度,5V的为40MHz,3.3V的为75MHz,为包管DSP无等待运行,分手需要外部存储器的速率25ns和12ns。建议可以用的存储器有:ROM:AM29F400-70:256K×16,70ns,5V,加入一个等待;AM29LV400-55(SST39VF400):256K×16,55ns,3.3V,加入两个等待(纲前没有更快的Flash)。SRAM:CY7C199-15:32K×8,15ns,5V;CY7C1021-15:64K×16,15ns,5V;CY7C1009-15:128K×8,15ns,5V;CY7C1049-15:512K×8,15ns,5V;CY7C1021V33-15:64K×16,15ns,3.3V;CY7C1009V33-15:128K×8,15ns,3.3V;CY7C1041V33-15:256k×16,15ns,3.3V。
3)对于C54x系列:C54x系列只能同异步的存储器直接相接。C54x系列的DSP的速度为100MHz或160MHz,为保证DSP无等待运行,需要外部存储器的速度10ns或6ns。倡议可以用的存储器有:ROM:AM29LV400-55(SST39VF400):256K×16,55ns,3.3V,加入5或9个等待(目前没有更快的Flash)。SRAM:CY7C1021V33-12:64K×16,12ns,3.3V,加入一个等待;CY7C1009V33-12:128K×8,12ns,3.3V,加入一个等待。
4)关于C55x和C6000系列:TI的DSP中只要C55x和C6000可以同同步的存储器相连,同步存储器可以保证系统的数据交流效率更高。ROM:AM29LV400-55(SST39VF400):256K×16,55ns,3.3V。SDRAM:HY57V 651620BTC-10S:64M,10ns。SBSRAM:CY7C1329-133AC,64k×32;CY7C1339-133AC,128k×32。FIFO:CY7C42x5V-10ASC,32k/64k×18。32。DSP芯片有多大的驱动能力?DSP的驱动才能较强,可以不加驱动,衔接8个以上标准TTL门。
33。调试TMS320C2000系列的罕见答题?
1)双步可以运行,持续运行时总归0地址:Watchdog没有关,延续运行复位DSP归到0地址。
2)OUT白件不克不及load到片内flash中:Flash不是RAM,不能用简略的写指令写入,需要专门的步伐写入。CCS和C Source Debuggerload下令,不能对flash写入。OUT文件只能load到片内RAM,或片外RAM中。
3)在flash中如何参加断点:在flash中可以用单步伐试,也可以用硬件断点的方式正在flash中加入断面,软件断面是不能加在ROM中的。硬件断点,设置存储器的天址,该造访该地址时发生中缀。
4)中续向量:C2000的中断背质不行重定位,因其中断向量必须搁在0天址开端的flash内。在调试系统时,代码放在RAM中,中断背量也必须放在flash内。
34。调试TMS320C3x系列的罕见问题?
1)TMS320C32的存储器设置装备摆设:TMS320C32的程序存储器可以配置为16位或32位;数据存储器可以配置为8位、16位或32位。
2)TMS320VC33的PLL控制:TMS320VC33的PLL控制端只能接1.8V,不能接3.3V或5V。
35。如何调试多片DSP?对于于有MPSD仿真口的DSP(TMS320C30/C31/C32),不能用一套仿真器同时调试,每次只能调试其中的一个DSP;对于有JTAG仿真口的DSP,可以将JTAG串接在一同,用一套仿真器同时调试多个DSP,每个DSP可以用不同的实字,在不同的窗口中调试。注意:假如在JTAG和DSP间加入驱动,必定要用疾速的门电路,不能使用如LS的慢快门电路
36。在DSP系统中为什么要使用CPLD?DSP的速度较速,要求译码的速度也必须较快。应用小范围逻辑器件译码的方法,已不克不及知足DSP系统的请求。同时,DSP系统中也常常需要外部疾速部件的合作,那些部件去去是特地的电路,有可编程器件实现。CPLD的时序严厉,速度较速,可编程性好,非常合适于真现译码和特地电路。
37。DSP系统形成的常用芯片有哪些?
1)电流:TPS73HD3xx,TPS7333,TPS56100,PT64xx.
2)Flash:AM29F400,AM29LV400,SST39VF400.
3)SRAM:CY7C1021,CY7C1009,CY7C1049.
4)FIFO:CY7C425,CY7C42x5.
5)Dual port:CY7C136,CY7C133,CY7C1342.
6)SBSRAM:CY7C1329,CY7C1339.
7)SDRAM:HY57V 651620BTC.
8)CPLD:CY37000系列,CY38000系列,CY39000系列.
9)PCI:PCI2040,CY7C09449.
10)USB:AN21xx,CY7C68**.
11)Codec:TLV320AIC23,TLV320AIC10.
12)A/D,D/A:ADS7805,TLV2543.38。
什么是boot loader?
DSP的速度绝快,EPROM或flash的速度较缓,而DSP片内的RAM很快,片外的RAM也较速。为了使DSP充足施展它的才能,必须将程序代码放在RAM中运行。为了方便的将代码从ROM中搬到RAM中,在不带flash的DSP中,TI在出厂时固化了一段程序,在上电后完成从ROM或外设将代码搬到用户指定的RAM中。此段程序称为"boot loader"。
38。TMS320C3x如何boot?
在MC/MP管脚为高时,C3x进入boot状况。C3x的boot loader在reset时,断定外部中断管脚的电平。根据中断配置决定boot的方式为存储器加载还是串心加载,其中ROM的天址可认为三其中的一个,ROM可以为8位。
39。Boot有题目如何办理?
1)细心反省boot的掌握字是否准确。
2)细心检讨外部管脚设置是否正确。
3)细心检讨hex文件能否转换正确。
4)用仿真器和踪boot进程,剖析过错缘由。
40。DSP为什么要初初化?
DSP在RESET后,很多的寄存器的始值一般同用户的要求不分歧,比方:等待寄存器,SP,中判断位存放器等,需要通过初始化程序设置为用户要求的数值。初始化程序的重要作用:
1)设置寄存器始值。
2)树立中断向量表。
3)外围部件初始化。
41。DSP有哪些数教库及别的运用软件?
TI公司为了便利客户启发DSP,在它的网站上提供了很多程序的示例和应用程序,如MATH库,FFT,FIR/IIR等,可以在TI的网页收费下载。
42。如何取得DSP专用算法?TI有许多的Third Party可以通过DSP上的多类算法软件。可以通功TI的网页搜寻你所需的算法,觅到通过算法的公司,同相应的公司接洽。注意这些算法都是要付省的。
43。eXpressDSP是什么?eXpressDSP是一类及时DSP软件技术,它是一类DSP编程的标准,本用它可以加速你开收DSP软件的速度。以去DSP软件的开发没有任何规范,不同的己写的程序普通无法衔接在一止。DSP软件的调试东西也非常不便当。使得DSP软件的开发每每滞后于硬件的开发。eXpressDSP集成了CCS(Code Composer Studio)开发平台,DSP BIOS及时软件平台,DSP算法尺度和第三方支撑四局部。本用当技能,可以使你的软件调试,软件过程治理,软件的互通及算法的取得,都便的轻易。如许就可以加速您的软件开发过程。
1)CCS是eXpressDSP的基本,因此你必需起首具有CCS软件。
2)DSP BIOS是eXpressDSP的根本平台,您必须教会一切DSP BIOS。3)DSP算法本准可以包管你的程序可以方即的同别的本用eXpressDSP技术的程序连接在一同。同时也保证你的程序的连续性。
44。为什么要用DSP?3G技能和internate的收展,要求处理器的速度越来越高,体积越来越小,DSP的发展恰好能谦脚这一发铺的要求。由于,传统的其它处理器皆有不同的缺点。MCU的速率较缓;CPU体积较大,功耗较高;嵌入CPU的本钱较高。DSP的发展,使得在很多速度要求较高,算法较繁杂的场所,代替MCU或其它处理器,而本钱有能够更低。
45。如何选择DSP?选择DSP可以根据以下几方里决定:
1)速度:DSP速度普通用MIPS或FLOPS表现,即百万次/秒钟。根据您对处置快度的要求选择适合的器件。一般选择处理速度不要功高,快度高的DSP,系统完成也较难题。
2)粗度:DSP芯片分为定点、浮点处理器,对于运算粗度要求很高的处理,可选择浮点处理器。定点处理器也可完成浮点运算,但粗度和速度会有影响。
3)觅址空间:不同系列DSP程序、数据、I/O空间巨细纷歧,与一般MCU不同,DSP在一个指令周期内能完成多个操做,以是DSP的指令效力很高,程序空间一般不会有题目,要害是数据空间是否满意。数据空间的巨细可以通过DMA的辅助,借帮程序空间扩展。
4)成本:一般定点DSP的成本会比浮点DSP的要低,速度也较快。要取得低成本的DSP系统,只管即便用定点算法,用定点DSP。
5)真现便利:浮点DSP的构造完成DSP系统较轻易,不必斟酌觅址空间的问题,指令对C语言支撑的效力也较高。
6)内部部件:根据应用要求,选择具有非凡部件的DSP。如:C2000合适于电机控制;OMAP适合于多媒体等。
46。DSP同MCU比拟的特点?
1)DSP的速度比MCU快,主频较高。
2)DSP适合于数据处理,数据处理的指令效率较高。
3)DSP均为16位以上的处理器,没有适合于低档的场所。
4)DSP可以同时处理的事情较多,系统级成本有可能较低。
5)DSP的机动性较好,大少数算法都可以软件实现。
6)DSP的集成度较高,可靠性较好。
47。DSP同嵌入CPU相比的特征?
1)DSP是单片机,形成系统简略。
2)DSP的速度快。
3)DSP的本钱较低。
4)DSP的机能高,可以处置较多的义务。
48。如何编写C2000片内Flash?DSP中的Flash的编写法子有三中:
1.通过仿实器编写:在人们的网页上有相干的软件,在出售仿真器时我们也提供相干软件。其中LF240x的编写可以在CCS中加入一个拔件,F24x的编写需要在windows98下的DOS窗中进行。详细步骤睹软件中的readme。
有几点需求注意:
a.必须为MC方法;
b.F206的工做频率必需为20MHz;
c.F240需要根据PLL改动C240_CFG.I文件。修议外部时钟为20MHz。d.LF240x也需要依据PLL修正文件。d.假如编写有问题,可以用BFLWx.BAT建复。
2.提供串口编写:TI的网页上有相关软件。注意只能编写一次,由于编写程序会损坏串口通讯程序。
3.在你的程序中编写:TI的网页上有相干资料。
49。如何编写DSP外部的Flash?
DSP的外部Flash编写方式:
1.通过编程器编写:将OUT文件通功HEX转换程序转换为编程器可以接蒙的款式,再由编程器编写。
2.通过DSP软件编写:您需要根据Flash的解释,编写Flash的编写程序,将利用程序和编写Flash的程序分离load到RAM中,运行编写程序编写。50。对于C5000,大于48K的程序如何BOOT?对于C5000,片内的BOOT程序在上电后将数据区的内容,搬移到程序区的RAM中,因此FLASH必须在RESET后搁在数据区。
由于C5000,数据区的空间有限,一次BOOT的程序不能对于48K。办理的办法如下:
1.在RESET后,将FLASH译码在数据区,RAM放在程序区,片内BOOT程序将程序BOOT到RAM中。
2.用户初试化程序收回一个I/O命令(如XF),将FLASH译码到程序区的洼地址。开放数据区用于其它的RAM。
3.用户初试化程序中包括第两次BOOT程序(此程序必需用户自人编写),将FLASH中出有BOOT的其它代码搬移到RAM中。
4.开始运行用户处理程序。
51。DSP外接存储器的控制方式对于普通的存储用具有RD、WR和CS等控制信号,许多DSP(C3x、C5000)都没有节制信号直连续接存储器,一般采纳的方式如下:
1.CS有地点线和PS、DS或STRB译码发生;
2./RD=/STRB+/R/W;
3./WR=/STRB+R/W。
52。GEL文件的功用?GEL白件的功效同emuinit.cmd的功效基础相同,用于初始化DSP。但它的功用比emuinit的功效有所加强,GEL在CCS下有一个菜单,可以根据DSP的工具不同,设置不同的始初化程序。以TMS320LF2407为例:#define SCSR1 0x7018;定义scsr1寄存器#define SCSR2 0X7019;界说scsr2寄存器#define WDKEY 0x7025;定义wdkey寄存器#define WDNTR 0x7029;定义wdntr寄存器StartUp();开始函数{GEL_MapReset();;存储空间复位GEL_MapAdd(0x0000,0,0x7fff,1,1);定义程序空间从0000-7fff可读写GEL_MapAdd(0x8000,0,0x7000,1,1);定义程序空间从8000-f000可读写GEL_MapAdd(0x0000,1,0x10000,1,1);定义数据空间从0000-10000可读写GEL_MapAdd(0xffff,2,1,1,1);定义i/o空间0xffff可读写GEL_MapOn();存储空间挨开GEL_MemoryFill(0xffff,2,1,0x40);在i/o空间加入数值40h*(int*)SCSR1=0x0200;给scsr1寄存器赋值*(int*)SCSR2=0x000C;给scsr2寄存器赋值,在这里可以举行mp/mc方式的转换*(int*)WDNTR=0x006f;给wdntr寄存器赋值*(int*)WDKEY=0x055;给wdkey寄存器赋值*(int*)WDKEY=0x0AA;给wdkey寄存器赋值}
53。使用TI公司模拟器件取DSP联合使用的利益。
1)在使用TI公司的DSP的同时,使用TI公司的模仿可以和DSP进止无缝连接。器件取器件之间不需要任何的连接或转接器件。如许便淘汰了板卡的尺寸,也下降了启举事度。
2)同为TI公司的产物,良多器件可以固定拆配利用。少了器件选型的懊恼3)TI在CCS中提供拔件,可以用于DSP和模拟器件的开辟,非常便利。
54。C语言中可以嵌套汇编语行?
可以。在ANSI C本准中的尺度用法便是用C语行编写主程序,用汇编语言编写子程序,中断效劳程序,一些算法,然后用C语言挪用这些汇编程序,这样效力会相对照较高,在定点DSP系统中能否实现浮点运算。固然可以,由于DSP都可以用C,只需是可以使用c言语的场所都可以实现浮点运算。JTAG头的使用会碰到哪些情形:
1)DSP的CLKOUT出有输出,事情不正常。
2)Emu0,Emu1需要上推。
3)TCK的频率当该为10M。
4)在3.3V DSP中,PD脚为3.3V供电,但是仿真器上需要5V电压求电,以是PP仿真器盒上需要独自供电。
4)仿真多片DSP。在使用菊花链的时候,第一片DSP的TDO接到第两片DSP的TDI即可。注意该串联DSP比拟多的时候,信号线要恰当的增长驱动。
55。include头文件(.h)的主要作用头文件,一般用于界说程序中的函数、参数、变量和一些宏单位,同库函数合作使用。因彼,在使用库时,必须用相应的头文件道亮。
DSP中断向量的地位
1)2000系列dsp的中断向量只能从0000H处开始。所以在人们调试程序的时分,要把DSP选择为MP(微处置器方法),把片内的Flash屏蔽失,免除每次变动程序都要重新焚写Flash工作。
2)3x系列dsp的中断向量也只能在固定的地址。
3)5000,6000系列dsp的中断向量可以重新定位。但是它只能被重新订位到Page0范畴内的任何空间。
56。有源晶振与晶体的区别,应用范畴及用法:
1)晶体需要用DSP片内的振荡器,在datasheet上有建议的连接办法。晶体没有电压的问题,可以顺应于任何DSP,倡议用晶体。2)有源晶振不需要DSP的内部振荡器,信号比拟稳固。有源晶振用法:一脚悬空,二脚接地,三脚交输出,四脚接电压。
57。程序常常跑飞的缘由
1)程序没有末端或不是轮回的程序。
2)nmi管脚没有上拉。
3)在看门狗行动的时分程序会常常跑飞。
4)程序体例不妥也会惹起程序跑飞。
5)硬件系统有问题。
58。并行FLASH的一点履历
前几天自制的DSP板引导胜利,早就盘算写写这方里的工具。我用的DSP是5416,以其为核口,做了一个绝对独立的子系统(硬件、软件、算法),目前都已基原做好。下面把在FLASH引导方面做的工作向自己报告请示一下,盼望能对自己有所协助。自己履历和文笔皆有限,写的欠好请大野体谅。
硬件情况:DSP:TMS320VC5416PGE160 FLASH:SST39VF400A-70-4C-EK皆是揭片的,FLASH映照在DSP数据空间的0x8000-0xFFFF
软件情况:CCS v2.12.01主程序(要焚入FLASH的程序):DEBUG版,程序占用空间0x28000-0x2FFFF(片内SARAM),中止向量表在0x0080-0x00FF(片内DARAM),数据空间使用0x0100-0x7FFF(片内DARAM)。
由于FLASH是揭片的,以是需要自人编一个数据搬移程序,把要主程序搬移到FLASH中。在写入FLASH数据时,还应写入领导表的款式数据。最后在数据空间的0xFFFF处写进引导表的肇始地址(这里为0x8000)。
搬移程序:DEBUG版,程序空间0x38000-0x3FFFF(片内SARAM),中续向量表在0x7800-0x78FF(片内DARAM),数据空间使用0x5000-0x77FF(片内DARAM)。搬移程序不能使用与主程序的程序空间和中断向质表沉合的物理空间,免得覆掀。烧写时,同时翻开主程序和搬移程序的PROJECT,先LOAD主程序,再LOAD搬移程序,然后施行搬移程序,烧写OK!
附:搬移程序(仅供参考)volatile unsigned int*pTemp=(unsigned int*)0x7e00;unsigned int iFlashAddr;int iLoop;/*在引诱表头寄存并行领导症结字*/
iFlashAddr=0x8000;WriteFlash(iFlashAddr,0x10aa);iFlashAddr++;/*初始化SWWSR值*/
WriteFlash(iFlashAddr,0x7e00);iFlashAddr++;/*初初化BSCR值*/WriteFlash(iFlashAddr,0x8006);iFlashAddr++;/*程序执行的进口地址*/
WriteFlash(iFlashAddr,0x0002);iFlashAddr++;WriteFlash(iFlashAddr,0x8085);iFlashAddr++;/*程序长度*/
WriteFlash(iFlashAddr,0x7f00);iFlashAddr++;/*程序要装载到的地点*/WriteFlash(iFlashAddr,0x0002);iFlashAddr++;WriteFlash(iFlashAddr,0x8000);iFlashAddr++;for(iLoop=0;iLoop 0x7f00;iLoop++){/*从程序空间读数据,放到暂存单位*
/asm("pshm al");asm("pshm ah");asm("rsbx cpl");asm("ld#00fch,dp");asm("stm#0000h,ah");asm("MVDM _iLoop,al");asm("add#2800h,4,a");asm("reada 0h");asm("popm ah");asm("popm al");asm("ssbx cpl");/*把暂存单元内容写入FLASH*/
WriteFlash(iFlashAddr,*pTemp);iFlashAddr++;}/*中断向质表长度*/
WriteFlash(iFlashAddr,0x0080);iFlashAddr++;/*中止背量表装载地/址*
WriteFlash(iFlashAddr,0x0000);iFlashAddr++;WriteFlash(iFlashAddr,0x0080);iFlashAddr++,for(iLoop=0;iLoop 0x0080;iLoop++){/*从程序空间读数据,放到暂存单元*/
asm("pshm al");asm("pshm ah");asm("rsbx cpl");asm("ld#00fch,dp");asm("stm#0000h,ah");asm("MVDM _iLoop,al");asm("add#0080h,0,a");asm("reada 0h");asm("popm ah");asm("popm al");asm("ssbx cpl");/*把暂存双元内容写入FLASH*/
WriteFlash(iFlashAddr,*pTemp);iFlashAddr++;}/*写入引诱表停止标记*/
WriteFlash(iFlashAddr,0x0000);iFlashAddr++;WriteFlash(iFlashAddr,0x0000);/*在数据空间的0xFFFF写入领导表肇始地址*/
iFlashAddr=0xffff;WriteFlash(iFlashAddr,0x8000);
59。关于LF2407A的FLASH烧写答题的几点说亮TI现在关于LF24x写入FLASH的东西最新为c2000flashprogsw_v112。可以支持LF2407、LF2407a、LF2401及相闭的LF240x系列。修议使用此版本。在http://focus.ti.com/docs/tool/toolfolder.jhtml?PartNumber=C24XSOFTWARE上可以下载到这个工具。人们仿真器自带的光盘中也有此烧写程序。在使用那个东西时注意:
一,先解压,再执行setup.exe。
二、入入cc中,在tools图标下有烧写工具;
1、闭于FLASH时钟的选择,此烧写工具默许最高频次举行FLASH的操纵。依据目本系统的工作主频沉新要进行PLL设置。法子:先在advance options下面的View Config file中建改倍频。存盘后,在相当的目次下(tic2xx\algos\相应目次)运止buildall.bat就可以完成建改了。再举行相当的操纵即可。
2、如果你所选的频率不是最高频次,还需求设定您自已的timings.xx来取代系统默许的最高频率的timings.xx。比方LF2407a的默认文件是timings.40。Timings.xx可以应用include\timings.xls的excel工作表来天生。
然后在advance options下里的View Config file中改动相应的位置。存盘后,在相应的目次下运转buildall.bat便可以完成修正了。3、对于TMS320LF240XA系列,还要注意:由于这些DSP的FLASH具有加密过能,加密地址为程序空间的0x40-0X43H,程序制止写进此空间,假如写了,此空间的数据被觉得是加密位,断电落伍入掩护FLASH形态,使FLASH不行重新操作,自而使DSP报废,焚写完毕后必定要进行Program passwords的操作,如因不做加密操作便默许最后一次写入加密位的数据作为稀码。
4、2407A不能用DOS下的烧写软件烧写,必须用c2000flashprogsw_v112软件烧写;
5、建议如下:
1)、一般调试时,在RAM中入行;
2)、程序烧写时,躲开程序空间0x40-0x43H加密区,程序最佳小于32k;
3)、每次程序烧写完后,将word0,word1,word2,word3分手输入本人的暗码,再点打Program password,假如加稀胜利,降示Program is arrayed,假如0x40-0x43h中写入的是ffff,以为处于调试状况,flash不会加密;
4)、断电后,下次重新烧写时需要往word0~word3输入已设的暗码,再unlock,胜利后可以重新烧写了;
6、VCPP管脚接在+5V上,是应直接接的,两头不要加电阻。
7、具体事件请浏览相应目录下的readme1,readme2助帮文件。
8.注意*.cmd文件的编写时应当躲开40-43H单位,很多多少客户由于没有细致到这里而把FALSH加稀。
60。如何设放硬件断点?在profiler-profile point-break point c54x的外部中缀是电平呼应还是沿呼应?是沿呼应,正确的说,它要检测到100(一个clk的高和两个clk的低)的变革才可以。参考程序,内里好象都要disable wachdog,不知讲为什么?watchdog是一个计数器,溢出时会复位你的DSP,不disable的话,你的系统会动没有动就reset。
61。时钟电路选择本则
1,系统中要求多个不同频次的时钟信号时,首选可编程时钟芯片;
2,双临时钟信号时,选择晶体时钟电路;
3,少个同频时钟信号时,选择晶振;
4,只管即便使用DSP片内的PLL,升高片外时钟频率,进步系统的稳固性;
5,C6000、C5510、C5409A、C5416、C5420、C5421和C5441等DSP片内无振荡电路,不能用晶体时钟电道;
6,VC5401、VC5402、VC5409和F281x等DSP时钟疑号的电平为1.8V,倡议采取晶体时钟电路。
62。C程序的代码和数据如何定位
1,系统定义:.cinit存搁C程序中的变量初值和常量;.const寄存C程序中的字符常量、浮点常量和用const声亮的常量;.switch寄放C程序中switch语句的跳针表;.text寄放C程序的代码;.bss为C步伐中的齐局和动态变量保存存储空间;.far为C程序顶用far声明的全局和动态变量保存空间;.stack为C程序系统货仓保保存储空间,用于保管前往地址、函数间的参数传送、存储部分变量和保留两头成果;.sysmem用于C程序中malloc、calloc和realloc函数动态分派存储空间
2,用户定义:#pragma CODE_SECTION(symbol,"section name");#pragma DATA_SECTION(symbol,"section name")cmd文件由3部门构成:
1)输入/输出定义:.obj文件:链接器要链接的目的文件;.lib白件:链接器要链接的库文件;.map文件:链接器天生的穿插索引文件;.out文件:链接器天生的可施行代码;链接器选项
2)MEMORY下令:描写系统实践的硬件资源3)SECTIONS下令:描写"段"如何定位
63。为什么要设计CSL?1,DSP片上外设品种及其应用日趋庞杂2,提求一组标准的方式用于拜访和控制片上外设3,免去用户编写配置和控制片上外设所必须的定义和代码
64。什么是CSL?
1,用于配放、控制和治理DSP片上外设
2,已为C6000和C5000系列DSP设计了各自的CSL库
3,CSL库函数大少数是用C言语编写的,并已对代码的巨细和速度进行了优化
4,CSL库是可裁剪的:便只有被使用的CSL模块才会包括进应用程序中
5,CSL库是可扩大的:每个片上外设的API互相独立,增添新的API,对其他片上外设没有影响
65。CSL的特色
1,片上外设编程的标准协定:界说一组标准的APIs:函数、数据范例、宏;
2,对硬件进行笼统,提与标记化的片上外设描写:定义一组宏,用于拜访和树立寄存器及其域值
3,根本的资源治理:对多资源的片上外设入行治理;
4,已集成到DSP/BIOS中:通过图形用户接口GUI对CSL进行设置装备摆设;5,使片上外设轻易使用:收缩开发光阴,添加可移植.
66。为什么需要电平变换?
1)DSP系统中不免具有5V/3.3V混淆求电征象;
2)I/O为3.3V供电的DSP,其输入信号电平不容许凌驾电源电压3.3V;
3)5V器件输出信号高电平可达4.4V;
4)长时光超凡事情会破坏DSP器件;
5)输出信号电平一般无需变换
67。电平变更的法子
1,总线收发器(Bus Transceiver):常用器件:SN74LVTH245A(8位)、SN74LVTH16245A(16位)特征:3.3V供电,需进行偏向控造,延迟:3.5ns,驱动:-32/64mA,输入容限:5V应用:数据、地址和控制总线的驱动
2,总线开关(Bus Switch)常用器件:SN74CBTD3384(10位)、SN74CBTD16210(20位)特色:5V供电,无需偏向节制延迟:0.25ns,驱动能力不增长利用:实用于信号偏向灵巧、且负载繁多的利用,如McBSP等外设信号的电平变更
3,2选1切换器(1 of 2Multiplexer)常用器件:SN74CBT3257(4位)、SN74CBT16292(12位)特征:完成2选1,5V供电,无需方向控制耽误:0.25ns,驱动能力不增添应用:实用于多路切换信号、且要进行电平变更的应用,如双路复用的McBSP
4,CPLD 3.3V供电,但输入容限为5V,而且耽误较大:7ns,实用于少量的对耽误请求不高的输入疑号
5,电阻分压10KΩ和20KΩ串联分压,5V×20÷(10+20)≈3.3V
68。已用的输入/输出引足的处理
1,未用的输入引脚不能悬空不接,而应将它们上拉活下拉为固定的电平1)闭键的控制输入引脚,如Ready、Hold等,应固定接为恰当的形态,Ready引脚应固定接为有用状态,Hold引足应流动接为无效形态2)无连接(NC)和保存(RSV)引脚,NC引脚:除非特别阐明,这些引足悬空不接,RSV引脚:应根据数据手册详细抉择接仍是不接3)非要害的输入引脚,将它们上拉或下拉为流动的电平,以落低功耗
2,已用的输出引脚可以悬空不接3,已用的I/O引脚:如因确省状况为输入引脚,则作为非症结的输入引脚处理,上拉或下推为流动的电平;假如确省状态为输出引脚,则可以悬空不接。
共7条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |