2812定时中断程序,TI例子<br />我把IFR = 0x0000;<br /> <br />改为IFR|=0X00FF;<br />运行时出现以下错误提示。<br />Trouble running Target CPU: Can't write to data memory 0x801, check memory config [-2184]<br />我估计是CMD文件的问题,可是<br />我在CMD文件中没有定义0X801这个地址。<br />请各位高手指教。多谢!<br />我的两个CMD文件:<br />1。<br />MEMORY<br />{<br />PAGE 0: /* Program Memory */<br /><br />PAGE 1: /* Data Memory */<br /><br /> DEV_EMU : origin = 0x000880, length = 0x000180 /* device emulation registers */<br /> PIE_VECT : origin = 0x000D00, length = 0x000100 /* PIE Vector Table */<br /> FLASH_REGS : origin = 0x000A80, length = 0x000060 /* FLASH registers */<br /> CSM : origin = 0x000AE0, length = 0x000010 /* code security module registers */<br /> XINTF : origin = 0x000B20, length = 0x000020 /* external interface registers */<br /> CPU_TIMER0 : origin = 0x000C00, length = 0x000008 /* CPU Timer0 registers (CPU Timer1 and Timer2 are reserved for BIOS)*/<br /> PIE_CTRL : origin = 0x000CE0, length = 0x000020 /* PIE control registers */<br /> ECANA : origin = 0x006000, length = 0x000040 /* eCAN control and status registers */ <br /> ECANA_LAM : origin = 0x006040, length = 0x000040 /* eCAN local acceptance masks */<br /> ECANA_MOTS : origin = 0x006080, length = 0x000040 /* eCAN message object time stamps */<br /> ECANA_MOTO : origin = 0x0060C0, length = 0x000040 /* eCAN object time-out registers */<br /> ECANA_MBOX : origin = 0x006100, length = 0x000100 /* eCAN mailboxes */<br /> SYSTEM : origin = 0x007010, length = 0x000020 /* System control registers */<br /> SPIA : origin = 0x007040, length = 0x000010 /* SPI registers */<br /> SCIA : origin = 0x007050, length = 0x000010 /* SCI-A registers */<br /> XINTRUPT : origin = 0x007070, length = 0x000010 /* external interrupt registers */<br /> GPIOMUX : origin = 0x0070C0, length = 0x000020 /* GPIO mux registers */<br /> GPIODAT : origin = 0x0070E0, length = 0x000020 /* GPIO data registers */<br /> ADC : origin = 0x007100, length = 0x000020 /* ADC registers */<br /> EVA : origin = 0x007400, length = 0x000040 /* Event Manager A registers */<br /> EVB : origin = 0x007500, length = 0x000040 /* Event Manager B registers */<br /> SCIB : origin = 0x007750, length = 0x000010 /* SCI-B registers */<br /> MCBSPA : origin = 0x007800, length = 0x000040 /* McBSP registers */<br /> CSM_PWL : origin = 0x3F7FF8, length = 0x000008 /* Part of FLASHA. CSM password locations. */<br />}<br /><br /><br />SECTIONS<br />{<br /> PieVectTableFile : > PIE_VECT, PAGE = 1<br /><br />/*** Peripheral Frame 0 Register Structures ***/<br /> DevEmuRegsFile : > DEV_EMU, PAGE = 1<br /> FlashRegsFile : > FLASH_REGS, PAGE = 1<br /> CsmRegsFile : > CSM, PAGE = 1<br /> XintfRegsFile : > XINTF, PAGE = 1<br /> CpuTimer0RegsFile : > CPU_TIMER0, PAGE = 1 <br /> PieCtrlRegsFile : > PIE_CTRL, PAGE = 1 <br /><br />/*** Peripheral Frame 1 Register Structures ***/<br /> SysCtrlRegsFile : > SYSTEM, PAGE = 1<br /> SpiaRegsFile : > SPIA, PAGE = 1<br /> SciaRegsFile : > SCIA, PAGE = 1<br /> XIntruptRegsFile : > XINTRUPT, PAGE = 1<br /> GpioMuxRegsFile : > GPIOMUX, PAGE = 1<br /> GpioDataRegsFile : > GPIODAT PAGE = 1<br /> AdcRegsFile : > ADC, PAGE = 1<br /> EvaRegsFile : > EVA, PAGE = 1<br /> EvbRegsFile : > EVB, PAGE = 1<br /> ScibRegsFile : > SCIB, PAGE = 1<br /> McbspaRegsFile : > MCBSPA, PAGE = 1<br /><br />/*** Peripheral Frame 2 Register Structures ***/<br /> ECanaRegsFile : > ECANA, PAGE = 1<br /> ECanaLAMRegsFile : > ECANA_LAM PAGE = 1 <br /> ECanaMboxesFile : > ECANA_MBOX PAGE = 1<br /> ECanaMOTSRegsFile : > ECANA_MOTS PAGE = 1<br /> ECanaMOTORegsFile : > ECANA_MOTO PAGE = 1<br /><br />/*** Code Security Module Register Structures ***/<br /> CsmPwlFile : > CSM_PWL, PAGE = 1<br />}<br />2。MEMORY<br />{<br />PAGE 0 :<br /> /* For this example, H0 is split between PAGE 0 and PAGE 1 */ <br /> /* BEGIN is used for the "boot to HO" bootloader mode */<br /> /* RESET is loaded with the reset vector only if */<br /> /* the boot is from XINTF Zone 7. Otherwise reset vector */<br /> /* is fetched from boot ROM. See .reset section below */<br /> <br /> RAMM0 : origin = 0x000000, length = 0x000400<br /> BEGIN : origin = 0x3F8000, length = 0x000002 <br /> PRAMH0 : origin = 0x3F8002, length = 0x000FFE<br /> RESET : origin = 0x3FFFC0, length = 0x000002 <br /><br /> <br />PAGE 1 : <br /><br /> /* For this example, H0 is split between PAGE 0 and PAGE 1 */<br /><br /> RAMM1 : origin = 0x000400, length = 0x000400<br /> DRAMH0 : origin = 0x3f9000, length = 0x001000 <br />}<br /><br /><br />SECTIONS<br />{<br /> /* Setup for "boot to H0" mode: <br /> The codestart section (found in DSP28_CodeStartBranch.asm)<br /> re-directs execution to the start of user code. <br /> Place this section at the start of H0 */<br /><br /> codestart : > BEGIN, PAGE = 0<br /> ramfuncs : > PRAMH0 PAGE = 0 <br /> .text : > PRAMH0, PAGE = 0<br /> .cinit : > PRAMH0, PAGE = 0<br /> .pinit : > PRAMH0, PAGE = 0<br /> .switch : > RAMM0, PAGE = 0<br /> .reset : > RESET, PAGE = 0, TYPE = DSECT /* not used, */<br /> <br /> .stack : > RAMM1, PAGE = 1<br /> .ebss : > DRAMH0, PAGE = 1<br /> .econst : > DRAMH0, PAGE = 1 <br /> .esysmem : > DRAMH0, PAGE = 1<br /><br /> <br />}<br /> <br /> <br /> 2007-9-4 05:43 PM <br /> |
|