




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2812的内部Flash启动过程2812的内部flash启动过程2812从内部flash启动的详细流程说明:a) 程序硬件复位或者软件复位b) 判断mp/mc是否为0c) 为0则从boot rom启动,否则从外部启动d) 到boot rom的0x3F FFC0处取出复位向量,跳到boot函数e) 采集IO管脚状态,f) 根据IO状态选择boot方式g) 如果是flash,程序退出boot函数,跳转到0x3F 7FF6h) 取出跳转指令,跳转到自己的指定地址或者C初始化的入口_C_INT00处i) 在C初始化的入口_C_INT00对一些变量,堆栈和寄存器进行必要的设置,该函数在c的库函数内j) 进入main函数从上电到我们的主函数运行之间这段时间里2812到底做了些什么?2812是怎样引导程序运行的?下面叙述其启动过程。 在2812中引脚XMP/MC,当该引脚的为高电平时表示是微处理器模式(microprocessor),为低电平时表示微机算计模式(microcomputer),当为微处理器模式时,2812内部的bootrom被禁止,通过zone7(0x3F C000)从外部调引导程序启动。2812复位以后,其复位向量是固定的0x3FFFC0,如果为微处理器模式,那么复位后的复位向量指向的外部的地址,即0x3FFFC0是zone7处的地址,若为微机算计模式,那么0x3FFFC0指向的是2812的片内FLASH的地址。下面就以微机算计模式加以说明其过程。 上电复位后,复位向量是指向片内Flash的0x3F FFC0,2812有一块flash地址从0x3F F000-0x3F FFFF在出厂时已经固化好了引导程序。在0x3F FFC0处是一条跳转指令,跳到iniboot(地址0x3F FC00)函数处执行iniboot代码,该iniboot代码就是TI在dsp出厂时固化在flash中的。InitBoot assembly Routine将选择SelectBootMode function启动模式函数。这个函数由GPIO 引脚的状态决定启动类型。引导模式选择GPIOF4GPIOF12GPIOF3GPIOF2(SCITXDA)(MDXA)(SPISTEA)(SPICLK)PUNo PUNo PUNo PUMode Selected1XXX跳转到地址为0x3F7FF6的Flash,用户必须在这里编写分支语句优先于复位,以按需要重新定位代码的执行.01XX调用SPI_Boot 以从外部的EEPROM载入0011调用SCI_Boot 以从SCI-A载入0010J跳转到 H0 SARAM 0x3F 80000001跳转到OTP地址 0x3D 78000000调用Parallel_Boot从GPIO 端口B载入一旦启动结束,选择启动模式函数返回一入口地址给InitBoot函数。入口地址是退出bootloader之后代码开始执行的起始点。InitBoot接着将会调用ExitBoot子程序,把CPU寄存器的状态恢复到复位状态。比如flash boot模式,那么initboot执行完后跳转到0x3F 7FF6处(codestart处),此位置刚好在128位(CSM)密码位置之前,你要在0x3F 7FF6处放置跳转指令,以跳转到你要去的地方,比如是boot loader或应用代码,通常的跳转去处是_c_int00。在0x3F 7FF6 处放置跳转指令的方法如下(DSP281x_CodeStartBranch.asm中):.sect codestartcode_start: .if WD_DISABLE = 1 LB wd_disable ;Branch to watchdog disable code .else LB _c_int00 ;Branch to start of boot.asm in RTS library .endif .if WD_DISABLE = 1 .textwd_disable: SETC OBJMODE EALLOW MOVZ DP, #7029h6 MOV 7029h, #0068h EDIS LB _c_int00 .endif.endMEMERY Page 0: .RAML0 : origin = 0x008000, length = 0x001000 /* on-chip RAM block L0 */ OTP : origin = 0x3D7800, length = 0x000400 /* on-chip OTP */ FLASHD : origin = 0x3F0000, length = 0x002000 /* on-chip FLASH */ FLASHC : origin = 0x3F2000, length = 0x002000 /* on-chip FLASH */ FLASHA : origin = 0x3F6000, length = 0x001F80 /* on-chip FLASH */ CSM_RSVD : origin = 0x3F7F80, length = 0x000076 BEGIN : origin = 0x3F7FF6, length = 0x000002 .SECTIONS . /* Allocate program areas: */ .cinit : FLASHA PAGE = 0 .pinit : FLASHA, PAGE = 0 .text : FLASHC PAGE = 0 codestart : BEGIN PAGE = 0 ramfuncs : LOAD = FLASHD, RUN = RAML0, LOAD_START(_RamfuncsLoadStart), LOAD_END(_RamfuncsLoadEnd), RUN_START(_RamfuncsRunStart), PAGE = 0 csmpasswds : CSM_PWL PAGE = 0 csm_rsvd : CSM_RSVD PAGE = 0 /* Allocate uninitalized data sections: */ .stack : RAMM0 PAGE = 1 .ebss : RAML1 PAGE = 1 .esysmem : RAML1 PAGE = 1 /* For SDFlash to program these, they must be allocated to page 0 */ .econst : FLASHA PAGE = 0 .switch : FLASHA PAGE = 0 . 上面代码执行后跳到C初始化的入口_c_int00(0x3F6000) ,在C初始化的入口,_c_int00对一些变量,堆栈和寄存器进行必要的设置,这个函数在运行支持库(rts.lib)中,_c_int00函数为建立C运行环境,需完成以下工作:a. 为系统堆栈产生.stack块,并初始化堆栈指针;b. 从.cinit块将初始化数据拷贝到.bss块中相应的变量;c. 对寄存器进行必要的配置,调用main函数开始运行C程序;没有过多的资料介绍_c_int00这块,无法知道它的具体功能实现以及怎样跳转到主函数的,用户可以对c_int00函数进行修改,但修改后的函数必须完成以上任务。TMS320F2812 flash运行时的启动过程2812启动过程与2407所用的传统单片机的Vectors启动模式不同,且仿真运行与脱离仿真器运行时差别较大,所以一开始比较难理解。其启动过程可以分为Flash启动、SPI_Boot、SCI_Boot、H0_Boot、Parallel_Boot等几种模式,而最常用的就是内部Flash运行,也就是将程序编译好后通过JTAG口将程序 xx.out文件下载到芯片内部falsh中运行,所以此处就这种运行方式的启动过程作一说明。图1 2812内部地址图首先要搞清楚的就是2812的内部地址,如图1所示,(1)为放中断向量表的RAM,中断向量表在初始化中由用户完成设置;(2)为放程序的Flash,其中最底的128Bits(8Words)存放Password用;(3)为BootRom,即专门为DSP启动所设立的一块ROM,其中内容为厂家固化。由图2可以更清晰地看到BootRom的内容,其中0x3F F0000x3F FC00 放置的是IQmath库中用到的函数表,0x3F FC000x3F FFC0放置的是Bootloader functions,最底部分放置的是VectorTable。内部Flash运行的启动过程如图3所示:图2 2812内部BootRom地址图图3 2812内部Flash启动过程a)程序硬件复位或者软件复位 b)判断mp/mc是否为0,微计算机模式(为1,当为微处理器模式时,2812内部的bootrom被禁止,通过zone7从外部调引导程序启动。) c)为0则从boot rom启动,否则从外部启动(0x3F FC00) d)到boot rom的0x3F FC00处取出复位向量,跳到boot函数:2812有一块flash地址从0x3F F000-0x3F FFFF在出厂时ti已经固化好了引导程序iniboot:Iniboot函数判断几个GPIO引脚来判断使用哪一种引导模式,比如flash boot模式,检测SPICLKA,SCITXA,GPIO34的电平,当都为高电平时表明是片内flash boot模式,那么initboot执行完后跳转到0x3F 7FF6处) e)采集io管脚状态,确定启动模式。2812提供几种启动模式: SCITXDA(GPIOF4) MDXA(GPIOF12) SPISTEA(GPIOF3) SPICLK(GPIOF2) 1 x x x FLASH启动 0 1 x x SPI启动 0 0 1 1 SCI启动 0 0 0 0 PARALLEL启动 f)根据io状态选择boot方式 g)如果是flash,程序退出boot函数,跳转到0x3F 7FF6(codestart) h)取出跳转指令,跳转到自己的指定地址或者C初始化的入口_C_INT00(0x3F6000)处(DSP281x_CodeStartBranch.asm中) i)在C初始化的入口_C_INT00对一些变量,堆栈和寄存器进行必要的设置,该函数在c的库函数内(RTS Library) j)进入main函数(0x3F658E)注:1根据INTER NET上别人的资料,以及针对程序的推敲,总结如上。 2地址均为我程序实际观测到的值,和网上别人所言有出入。如:有言boot rom地址为0x3F FFC0,iniboot(起始地址0x3F FB50)。dsp2812烧写经验总结 收藏 1、一般不用你换GEL.LIB文件,用原来的就可以.2、换完FLASH的CMD后,不要烧写,看下.MAP文件,主要是看 0X3F 7FF8处有没有烧内容.如果有别烧,改,直到这处没有烧入内容. 一般网上的都可以用,只要没有在此出烧入内容3、如果没有烧入其他的内容,则可以烧了.烧完后,RESET CPU 看是不是到 0X3F FFC0处,如果不是,看 是不是你的MP/MC=0了,并且是不是FLASH启动模式,即所有4个脚都是高(只要第一个脚是高就可以,即 1XXX)4、如果RESET CPU 是到 0X3F FFC0处,即可以断电,并且拔掉与板子相连的仿真器接口(注意拔电脑上的USB不好使),然后上电,自动运行.注意:其中遇到的问题:烧写时说 初始化RAM,和寻找BOOT.ASM都不用管_如果说是 NOT AN execuTivefile ,则在PROJECT_BULIT OPTION_LINK_OUT MODLE _absolute file最重要是可以断电,并且拔掉与板子相连的仿真器接口(注意拔电脑上的USB不好使),然后上电,自动运行.我遇到的是这些,我用以上方法解决了,但不知道为什么,所以大家都说说经验,让新手烧走弯路,少LOCK2812 2812从内部flash启动的过程 a)程序硬件复位或者软件复位 b)判断mp/mc是否为0,微计算机模式(为1,当为微处理器模式时,2812内部的bootrom被禁止,通过zone7从外部调引导程序启动。) c)为0则从boot rom启动,否则从外部启动(0x3F FC00) d) 到boot rom的0x3F FC00处取出复位向量,跳到boot函数:2812有一块flash地址从0x3F F000-0x3F FFFF在出厂时ti已经固化好了引导程序iniboot:Iniboot函数判断几个GPIO引脚来判断使用哪一种引导模式,比如flash boot模式,检测SPICLKA,SCITXA,GPIO34的电平,当都为高电平时表明是片内flash boot模式,那么initboot执行完后跳转到0x3F 7FF6处) e)采集io管脚状态,确定启动模式。2812提供几种启动模式 SCITXDA(GPIOF4) MDXA(GPIOF12) SPISTEA(GPIOF3) SPICLK(GPIOF2) 1 x x x FLASH启动 0 1 x x SPI启动 0 0 1 1 SCI启动 0 0 0 0 PARALLEL启动 f)根据io状态选择boot方式 g)如果是flash,程序退出boot函数,跳转到0x3F 7FF6(codestart) h)取出跳转指令,跳转到自己的指定地址或者C初始化的入口_C_INT00(0x3F6000)处(DSP281x_CodeStartBranch.asm中) i)在C初始化的入口_C_INT00对一些变量,堆栈和寄存器进行必要的设置,该函数在c的库函数内(RTS Library)j)进入main函数(0x3F658E)2812上电引导过程从上电到我们的主函数运行之间这段时间里2812到底做了些什么?2812是怎样引导程序运行的?下面叙述其启动过程。 在2812中引脚XMP/MC,当该引脚的为高电平时表示是微处理器模式(microprocessor),为低电平时表示微机算计模式(microcomputer),当为微处理器模式时,2812内部的bootrom背禁止,通过zone7从外部调引导程序启动。2812复位以后,其复位向量是固定的0x3F FFC0,如果为为处理器模式,那么复位后的复位向量指向的外部的地址,即0x3F FFC0是zone7处的地址,若为微机算计模式,那么0x3F FFC0指向的是2812的片内FLASH的地址。下面就以微机算计模式加以说明其过程。 上电复位后,复位向量是指向片内Flash的0x3F FFC0,2812有一块flash地址从0x3F F000-0x3F FFFF在出厂时已经固化好了引导程序。在0x3F FFC0处是一条跳转指令,跳到iniboot(地址0x3F FB50)函数处执行iniboot代码,该iniboot代码就是ti在dsp出厂时固化在flash中的。Iniboot函数判断几个GPIO引脚来判断使用哪一种引导模式,比如flash boot模式,检测SPICLKA,SCITXA,GPIO34的电平,当都为高电平时表明是片内flash boot模式,那么initboot执行完后跳转到0x3F 7FF6处,此位置刚好在128位(CSM)密码位置之前,你要在0x3F 7FF6处纺织跳转指令,以跳转到你要去的地方,比如是boot loader或应用代码。在0x3F 7FF6 处放置跳转指令的方法如下:.sect codestartcode_start: .if WD_DISABLE = 1 LB wd_disable ;Branch to watchdog disable code .else LB _c_int00 ;Branch to start of boot.asm in RTS library .endif .if WD_DISABLE = 1 .textwd_disable: SETC OBJMODE EALLOW MOVZ DP, #7029h6 MOV 7029h, #0068h EDIS LB _c_int00 .endif.endMEMERY Page 0: . Start:origin = 0x3F 7FF6,length = 0x000002 . SECTIONS . Codestart : Start page 0 . 上面的代码执行后跳到_c_int00处执行,_c_int00执行结束时调用用户的主程序main,则后续就是你自己的程序的执行了。本文来自CSDN博客,转载请标明出处:/yantaoliu/archive/2010/04/02/5445091.aspx新手小记:F2812烧写问题的解决过程说在前面的话:由于是新手,今天解决的这个问题对于高手可能简单得有点可笑,但这个解决过程我想还是值得分享一下的,谢谢进入该帖子的朋友。-问题描述:我用的是DEC2812,ccs3.3将仿真调试好的程序换了网上提供的标准flash.cmd和.lib文件后,重新编译生成烧写用的.out文件。但是在烧写过程中提示:Warning: This program contains initialized RAM data.It may run successfully under Code Composer Studiobut not as a standalone system because of this. Ifyour Flash program requires initialized data in RAM,you will need to write Flash code to initialize RAM memory.Erase/Program/Verify Operation succeeded-解决过程:1. 首先在论坛里找了半天,碰到这个问题的人还真不少,都说是.cmd文件的问题:“这个问题是cmd中有程序写在了RAM中,看看改到Flash就可以了”。但是没有具体的方法。我用的FLASH.cmd是网上下载的TI标准版,看了半天没发现什么异常,只好查自己的程序,了解自己把一些变量初始化是放在main()之外,作为全局变量处理的。未必这些就是所谓“写在RAM”的数据?因此我把这些变量初始化统统移到main()里面了。这下更惨,编译都报错了:declaration may not appear after executable statement in block第1步失败!2. 由于在编译期间还有如下报警,但是并不影响.out文件的生成,我就认为是这个报警导致烧写过程中的问题。 C:CCStudio_v3.3MyProjectssci_testflashFLASH.cmd, line 82: warning: (.const) not found warning: load address of uninitialized section .const ignored于是自己写了个很短的串口通信程序,仿真通过后,用FLASH.cmd编译,还是出现上述报警。不管了烧下去再说,发现一切正常,板子复位后可独立运行。看来这个编译报警似乎并不影响程序运行。3. 在google上用initialize RAM memory搜索,发现有个哥们的blog记载了同样错误,他没搭理,直接复位运行,说是没有问题。于是大喜,不管那么多,有报警也l烧写进去再说。结果发现断电复位让程序单独运行,通信根本不通。未必板子没有跑起来?由于手上无示波器,立即在程序里加了定时器中断,反复点亮目标板上的小灯,用来表征程序运行。再编译,烧写,期间报警照旧。断电复位后,发现灯在闪烁,大喜,立即建立通信,结果灯不闪了,通信不通,程序显然死掉了。反复进行了几次,都是一样的现象。很郁闷,只好又上网到处问,碰到同样烧写报警的人是多,但都说是.cmd文件的问题,又没有具体的方法。4.看来还是.cmd文件的问题,在坛子里面搜索“.cmd”关键字的帖子,一篇篇翻看。突然发现一篇有关.switch定义的帖子,突然想起我的通信程序就是switch语句构成。进去一看发现里面贴出的.cmd文件和我的不同。多了好几项定义,其中就包括.switch。另外.const的定义也不一样,直接定义到FLASHA中,不像我的标准版,又是loadFLASHA又是runRAML0L1,还有一堆_const_run,(.const)什么的。于是照着帖子修改我的FLASH.cmd,该加的加,.const的一堆语句都删掉,直接定义到FLASHA。一编译,居然又报错了:说是我的rts2800_fl040914.lib里面的_const_run之类没有定义。晕,刚刚才在.cmd中删掉的,换了个.lib还是同样报错。晕了。真是越改麻烦越多了。5.好了,直奔主题。最后又重新加载标准的FLASH.cmd,毕竟这个版本还是能生成.out文件的。想了半天,可能问题还是.switch定义上。第2.节中,我编的串口通信小程序的确也用了switch语句,但是数量很少,所以在.cmd中没有.switch的定义,也能正常烧写。正式的程序switch语句多,里面还有常量。于是硬着头皮只在标准的FLASH.cmd中加了.switch定义。编译, (.const) not found报警依旧;烧写,居然顺利通过!于是断电复位,板子独立运行,指示灯闪烁。现在关键看通信,随着串口调试助手上发送键的按下,我紧张到极点,瞬间,数据接收区显示到接收到数据!成功! 首先说下,我接触2812也不久,遇到的问题只知道弄好了,但不知道原因,但我想把我说遇到的,清楚的说下,对新手有帮助。下面是正题:先说我遇到的一:正常的烧写不用你换GEL.LIB文件,用原来的就可以.二:换完FLASH的CMD后,不要烧写,看下.MAP文件,主要是看 0X3F 7FF8处有没有烧内容.如果有别烧,改,直到这处没有烧入内容. 一般网上的都可以用,只要没有在此出烧入内容三:如果没有烧入其他的内容,则可以烧了.烧完后,RESET CPU 看是不是到 0X3F FFC0处,如果不是,看 是不是你的MP/MC=0了,并且是不是FLASH启动模式,即所有4个脚都是高(只要第一个脚是高就可以,即 1XXX)四:如果RESET CPU 是到 0X3F FFC0处,即可以断电,并且拔掉与板子相连的仿真器接口(注意拔电脑上的USB不好使),然后上电,自动运行.注意:其中遇到的问题:烧写时说 初始化RAM,和寻找BOOT.ASM都不用管_如果说是 NOT AN execuTivefile ,则在PROJECT_BULIT OPTION_LINK_OUT MODLE _absolute file最重要是可以断电,并且拔掉与板子相连的仿真器接口(注意拔电脑上的USB不好使),然后上电,自动运行.我遇到的是这些,我用以上方法解决了,但不知道为什么,所以大家都说说经验,让新手烧走弯路,少LOCK28122812从内部flash启动的过程a)程序硬件复位或者软件复位 b)判断mp/mc是否为0,微计算机模式(为1,当为微处理器模式时,2812内部的bootrom被禁止,通过zone7从外部调引导程序启动。) c)为0则从boot rom启动,否则从外部启动(0x3F FC00) d) 到boot rom的0x3F FC00处取出复位向量,跳到boot函数:2812有一块flash地址从0x3F F000-0x3F FFFF在出厂时ti已经固化好了引导程序iniboot:Iniboot函数判断几个GPIO引脚来判断使用哪一种引导模式,比如flash boot模式,检测SPICLKA,SCITXA,GPIO34的电平,当都为高电平时表明是片内flash boot模式,那么initboot执行完后跳转到0x3F 7FF6处) e)采集io管脚状态,确定启动模式。2812提供几种启动模式SCITXDA(GPIOF4) MDXA(GPIOF12) SPISTEA(GPIOF3) SPICLK(GPIOF2) 1 x x x FLASH启动 0 1 x x SPI启动 0 0 1 1 SCI启动 0 0 0 0 PARALLEL启动 f)根据io状态选择boot方式 g)如果是flash,程序退出boot函数,跳转到0x3F 7FF6(codestart) h)取出跳转指令,跳转到自己的指定地址或者C初始化的入口_C_INT00(0x3F6000)处(DSP281x_CodeStartBranch.asm中) i)在C初始化的入口_C_INT00对一些变量,堆栈和寄存器进行必要的设置,该函数在c的库函数内(RTS Library) j)进入main函数(0x3F658E)2812上电引导过程从上电到我们的主函数运行之间这段时间里2812到底做了些什么?2812是怎样引导程序运行的?下面叙述其启动过程。 在2812中引脚XMP/MC,当该引脚的为高电平时表示是微处理器模式(microprocessor),为低电平时表示微机算计模式(microcomputer),当为微处理器模式时,2812内部的bootrom背禁止,通过zone7从外部调引导程序启动。2812复位以后,其复位向量是固定的0x3F FFC0,如果为为处理器模式,那么复位后的复位向量指向的外部的地址,即0x3F FFC0是zone7处的地址,若为微机算计模式,那么0x3F FFC0指向的是2812的片内FLASH的地址。下面就以微机算计模式加以说明其过程。 上电复位后,复位向量是指向片内Flash的0x3F FFC0,2812有一块flash地址从0x3F F000-0x3F FFFF在出厂时已经固化好了引导程序。在0x3F FFC0处是一条跳转指令,跳到iniboot(地址0x3F FB50)函数处执行iniboot代码,该iniboot代码就是ti在dsp出厂时固化在flash中的。Iniboot函数判断几个GPIO引脚来判断使用哪一种引导模式,比如flash boot模式,检测SPICLKA,SCITXA,GPIO34的电平,当都为高电平时表明是片内flash boot模式,那么initboot执行完后跳转到0x3F 7FF6处,此位置刚好在128位(CSM)密码位置之前,你要在0x3F 7FF6处纺织跳转指令,以跳转到你要去的地方,比如是boot loader或应用代码。在0x3F 7FF6 处放置跳转指令的方法如下:.sect codestartcode_start: .if WD_DISABLE = 1 LB wd_disable ;Branch to watchdog disable code .else LB _c_int00 ;Branch to start of boot.asm in RTS library .endif .if WD_DISABLE = 1 .textwd_disable: SETC OBJMODE EALLOW MOVZ DP, #7029h6 MOV 7029h, #0068h EDIS LB _c_int00 .endif.endMEMERY Page 0: . Start:origin = 0x3F 7FF6,length = 0x000002 . SECTIONS . Codestart : Start page 0 . 上面的代码执行后跳到_c_int00处执行,我对_c_int00的形成及具体情况不清楚,请知道的补充,_c_int00执行结束时调用用户的主程序main,则后续就是你自己的程序的执行了。以下是具体编程要做的准备工作:一、准备工作(一劳永逸,模块化编程!)1. 注册为TI 成员TI公司提供的技术资料都需要会员的身份才可以下载,为了你工作的方便,建议你如果需要TI器件的技术资料,就赶快注册为TI的成员吧!2. 获得TMS320F2812的所有技术资料为了快速的获得某个器件相关的技术资料,你可以在上图的“Enter Part Number”中输入具体的器件型号,比如我们输入“TMS320F2812”,点击“GO”后,就可以获得TMS320F2812的所有技术资料,包括数据手册、产品信息、价格/封装/样片、质量与无铅数据报告、技术文档、用户指南、参考设计、开发工具与软件、相关产品等等。应有尽有,你想得到的TI都有,你没有想到的TI也为你准备好了!建议将上面能够下载下来的资料统统下载下来!有空的时候拿来研究一下,保证有好处!在“Tools & Software”这一栏里TI给出了与TMS320F2812相关的算法,大部分是免费的!除了电机算法只给出了库函数,其他基本上给出了库函数和底层程序代码,并且TI给出的底层程序大部分是汇编编写的,所以代码运行效率是非常高的!3. 安装TI的算法在“Tools & Software”这一栏里将下载到的TI头文件和外设使用例子C281x C/C+ Header Files and Peripheral Examples解压缩并且按照默认路径安装后,我们可以在C:tidcsc28dsp281xv100找到TMS320F2812头文件。对于TI给出的大部分关于28x的算法,都可以在C:tidcs找到。在C:tidcsc28dsp281xv100中包含4个文件夹和一个readme。 在具体编程前需要了解各个文件夹中的每个文件的具体用途,要知道“什么时候用哪个文件,为什么要用这个文件!接下来将对编程时使用较多的文件做一个说明:1) C:tidcsc28dsp281xv100doc中包含一个PDF文档,此文档是有关头文件使用的说明,建议有空多看一下!2) C:tidcsc28dsp281xv100DSP281x_commoncmd中包含4个CMD文件,用来定义片上和片外空间,每个CMD用途不一样,在后面的编程中具体讨论。3) C:tidcsc28dsp281xv100DSP281x_commoninclude中包含4个头文件,其中DSP281x_DefaultIsr声明了所有281x的中断服务函数,比如声明定时器0中断函数:interrupt void TINT0_ISR(void);DSP281x_Examples.h调用了一个软件延时函数,一般用得较少;DSP281x_G
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025武汉合资企业更迭名称及法人合同须重新签订
- 初中考试题及答案大全
- 济南监控考试试题及答案
- 基础消防考试试题及答案
- 中国氧化镉项目商业计划书
- 第三方协议书签了后离职
- 工艺品可行性分析报告
- 3月护理三基试题库含答案
- 2025年中国螺二芴项目创业计划书
- 2025年仓储安全管理员安全管理危机处理考试试卷
- 人工智能智能教育资源共享平台研发合同
- 部编版六年级语文上册第五单元《成长的快乐》核心素养教案
- 保安亭建设合同范本
- 2024年高级家务服务员职业鉴定理论考试题库(含答案)
- 2024城市道路慢行系统、绿道与滨水慢行路融合规划设计标准
- 新课标背景下情境化教学在高中体育教学中的实践应用
- 马铃薯高产栽培技术
- 流行音乐(中国)
- 丙烷气体安全培训课件
- 《论语》中的家庭伦理与教育理念考察
- 骨质疏松症专题知识宣教培训课件
评论
0/150
提交评论