TI中文支持网
TI专业的中文技术问题搜集分享网站

程序写入FLASH后,不运行是怎么回事?

写了一个F2812的程序,在RAM里仿真都是好的,运行正常;

但是在烧入FLASH后,程序就不运行了(编译没有错误);

怀疑是FLASH的问题,于是写了一个LED流水灯小程序,烧入FLASH后,却可以正常运行。

这是怎么回事,有谁遇到过吗??

mangui zhang:

这个表面你的工程较大时     CMD可能有问题    

如果在CMD中找不到问题   试试将flash代码搬移到RAM中运行试试

写了一个F2812的程序,在RAM里仿真都是好的,运行正常;

但是在烧入FLASH后,程序就不运行了(编译没有错误);

怀疑是FLASH的问题,于是写了一个LED流水灯小程序,烧入FLASH后,却可以正常运行。

这是怎么回事,有谁遇到过吗??

10#:

除了.cmd文件配置问题,也可能是你的程序本身存在问题,导致运行到某一段代码无法往下执行。

建议可以使用2分法,通过加入GPIO翻转测试的方法检查问题出在哪段代码。

写了一个F2812的程序,在RAM里仿真都是好的,运行正常;

但是在烧入FLASH后,程序就不运行了(编译没有错误);

怀疑是FLASH的问题,于是写了一个LED流水灯小程序,烧入FLASH后,却可以正常运行。

这是怎么回事,有谁遇到过吗??

qianghong xiao:

回复 10#:

由于工程文件比较大,在RAM里仿真调试程序时,多次修改过RAM.CMD文件。现已经在RAM里仿真调试完毕,程序正常运行,各部分功能都实现了。现在需要把程序烧入FLASH里,但是在烧入FLASH后,程序就不运行了(编译都是好的,也没有报错)。

疑惑:1、程序写入RAM后,仿真都是好的(说明程序语法,逻辑都没有问题);

            2、新建了几个LED、按键等的工程,烧入FLASH后,程序正常运行(烧入FLASH时,用的是同一个   FLASH.CMD文件)。(说明FLASH.CMD、芯片本身

             是好的);

            3、把出BUG的那个工程中的主函数注释掉,写了一个点亮LED的主函数。在RAM里仿真是好的,正常点 亮LED。同样的问题出现了,在烧入FLASH后,就

不运行了。(说明该工程中确实有问题);

分析后,觉得最有可能的就是问题出在CMD文件中:        但是,既然编译器没有报错,那就应该说明FLASH.CMD文件没有问题呀;        比较了程序正常在RAM里仿真时用的RAM.CMD文件和烧入FLASH时用的FLASH.CMD文件,各段的内存都大于RAM.CMD文件中的,也不会有问题呀。

难道是我忽略了什么吗?求助?????

写了一个F2812的程序,在RAM里仿真都是好的,运行正常;

但是在烧入FLASH后,程序就不运行了(编译没有错误);

怀疑是FLASH的问题,于是写了一个LED流水灯小程序,烧入FLASH后,却可以正常运行。

这是怎么回事,有谁遇到过吗??

mangui zhang:

回复 qianghong xiao:

还是建议你将flash搬移到RAM中来   试试

写了一个F2812的程序,在RAM里仿真都是好的,运行正常;

但是在烧入FLASH后,程序就不运行了(编译没有错误);

怀疑是FLASH的问题,于是写了一个LED流水灯小程序,烧入FLASH后,却可以正常运行。

这是怎么回事,有谁遇到过吗??

10#:

回复 qianghong xiao:

可能是没有初始化FLASH,或者其它外设初始化错误,或者中断没有使能等。这个方面你可以自己检查下。

另外,是否可以将你编译生成的.map文件和代码里的codestartbranch.asm文件发出来看下?同时,请告知烧录FLASH后0x3F 7FF6和0x3F 7FF7这两个地址里的内容是什么?

写了一个F2812的程序,在RAM里仿真都是好的,运行正常;

但是在烧入FLASH后,程序就不运行了(编译没有错误);

怀疑是FLASH的问题,于是写了一个LED流水灯小程序,烧入FLASH后,却可以正常运行。

这是怎么回事,有谁遇到过吗??

qianghong xiao:

回复 10#:

用的HELLO DSP 的开发板,编程素材里没有codestartbranch.asm文件,但之前的程序写入FLASH后,是可以的,就这次出了问题。

写了一个F2812的程序,在RAM里仿真都是好的,运行正常;

但是在烧入FLASH后,程序就不运行了(编译没有错误);

怀疑是FLASH的问题,于是写了一个LED流水灯小程序,烧入FLASH后,却可以正常运行。

这是怎么回事,有谁遇到过吗??

qianghong xiao:

回复 qianghong xiao:

****************************************************************************** TMS320C2000 Evaluation Linker PC v5.2.0 ******************************************************************************>> Linked Mon Jun 27 12:00:14 2016

OUTPUT FILE NAME: <./Debug/SD_15_11_24.out>ENTRY POINT SYMBOL: "_c_int00" address: 003f69cf

MEMORY CONFIGURATION

name origin length used unused attr fill———————- ——– ——— ——– ——– —- ——–PAGE 0: OTP 003d7800 00000800 00000000 00000800 RWIX FLASHJ 003d8000 00002000 0000002d 00001fd3 RWIX FLASHI 003da000 00002000 00000000 00002000 RWIX FLASHH 003dc000 00004000 00000000 00004000 RWIX FLASHG 003e0000 00004000 00000000 00004000 RWIX FLASHF 003e4000 00004000 00000000 00004000 RWIX FLASHE 003e8000 00004000 00000000 00004000 RWIX FLASHD 003ec000 00004000 00000000 00004000 RWIX FLASHC 003f0000 00004000 00000000 00004000 RWIX FLASHB 003f4000 00002000 00000f5e 000010a2 RWIX FLASHA 003f6000 00001ff6 00000ccc 0000132a RWIX BEGIN 003f7ff6 00000002 00000002 00000000 RWIX PASSWDS 003f7ff8 00000008 00000000 00000008 RWIX ROM 003ff000 00000fc0 00000000 00000fc0 RWIX VECTORS 003fffc2 0000003e 00000000 0000003e RWIX

PAGE 1: RAMM0M1 00000000 00000800 00000320 000004e0 RWIX DEV_EMU 00000880 00000180 000000d6 000000aa RWIX FLASH_REGS 00000a80 00000060 00000008 00000058 RWIX CSM 00000ae0 00000010 00000010 00000000 RWIX XINTF 00000b20 00000020 00000020 00000000 RWIX CPU_TIMER0 00000c00 00000008 00000008 00000000 RWIX CPU_TIMER1 00000c08 00000008 00000008 00000000 RWIX CPU_TIMER2 00000c10 00000008 00000008 00000000 RWIX PIE_CTRL 00000ce0 00000020 0000001a 00000006 RWIX PIE_VECT 00000d00 00000100 00000100 00000000 RWIX ECAN_A 00006000 00000100 00000034 000000cc RWIX ECAN_AMBOX 00006100 00000100 00000100 00000000 RWIX SYSTEM 00007010 00000020 00000020 00000000 RWIX SPI_A 00007040 00000010 00000010 00000000 RWIX SCI_A 00007050 00000010 00000010 00000000 RWIX XINTRUPT 00007070 00000010 00000010 00000000 RWIX GPIOMUX 000070c0 00000020 00000020 00000000 RWIX GPIODAT 000070e0 00000020 00000020 00000000 RWIX ADC 00007100 00000020 0000001a 00000006 RWIX EV_A 00007400 00000040 00000032 0000000e RWIX EV_B 00007500 00000040 00000032 0000000e RWIX SPI_B 00007740 00000010 00000000 00000010 RWIX SCI_B 00007750 00000010 00000010 00000000 RWIX MCBSP_A 00007800 00000040 00000025 0000001b RWIX RAML0L1 00008000 00002000 000018ff 00000701 RWIX CSM_PWL 003f7ff8 00000008 00000008 00000000 RWIX RAMH0 003f8000 00002000 00000000 00002000 RWIX

SECTION ALLOCATION MAP

output attributes/section page origin length input sections——– —- ———- ———- —————-.cinit 0 003d8000 0000002d 003d8000 0000000c MP3.obj (.cinit) 003d800c 0000000c SD_SPI_Initialization.obj (.cinit) 003d8018 0000000b rts2800_fl040830.lib : exit.obj (.cinit) 003d8023 00000008 : _lock.obj (.cinit) 003d802b 00000002 –HOLE– [fill = 0]

.const 0 003f4000 00000000 RUN ADDR = 00008000

.econst 0 003f4000 00000f5e RUN ADDR = 00008000 003f4000 000005f0 AsciiLib.obj (.econst:_AsciiLib) 003f45f0 000005c0 AsciiLib.obj (.econst:_mychar_2) 003f4bb0 00000240 AsciiLib.obj (.econst:_mychar_1) 003f4df0 00000100 DSP28_PieVect.obj (.econst) 003f4ef0 0000006e main.obj (.econst:_$P$T0$1)

.text 0 003f6000 00000ccc 003f6000 00000236 MP3.obj (.text) 003f6236 00000209 SD_SPI_Fat32.obj (.text) 003f643f 0000014a DSP28_DefaultIsr.obj (.text) 003f6589 00000109 SD_SPI_Initialization.obj (.text) 003f6692 000000cc SD_SPI_Read.obj (.text) 003f675e 000000b3 SD_SPI_Registers.obj (.text) 003f6811 000000a7 SD_SPI_Transmission.obj (.text) 003f68b8 0000009a DSP28_Spi.obj (.text) 003f6952 0000007d DSP28_CpuTimers.obj (.text) 003f69cf 0000006a rts2800_fl040830.lib : boot.obj (.text) 003f6a39 00000065 DSP28_Sci.obj (.text) 003f6a9e 0000005a rts2800_fl040830.lib : fs_mpy.obj (.text) 003f6af8 0000004c main.obj (.text) 003f6b44 00000040 rts2800_fl040830.lib : memcpy.obj (.text) 003f6b84 0000003e : exit.obj (.text) 003f6bc2 0000003b : fs_tol.obj (.text) 003f6bfd 0000002f AsciiLib.obj (.text) 003f6c2c 0000002a DSP28_SysCtrl.obj (.text) 003f6c56 00000021 DSP28_PieCtrl.obj (.text) 003f6c77 00000020 DSP28_PieVect.obj (.text) 003f6c97 00000019 DSP28_Xintf.obj (.text) 003f6cb0 0000000e DSP28_Gpio.obj (.text) 003f6cbe 00000007 DSP28_InitPeripherals.obj (.text) 003f6cc5 00000007 rts2800_fl040830.lib : _lock.obj (.text)

.reset 0 003f7ff6 00000002 003f7ff6 00000002 rts2800_fl040830.lib : boot.obj (.reset)

.stack 1 00000000 00000320 UNINITIALIZED 00000000 00000320 –HOLE–

DevEmuRegsFile * 1 00000880 000000d6 UNINITIALIZED 00000880 000000d6 DSP28_GlobalVariableDefs.obj (DevEmuRegsFile)

FlashRegsFile * 1 00000a80 00000008 UNINITIALIZED 00000a80 00000008 DSP28_GlobalVariableDefs.obj (FlashRegsFile)

CsmRegsFile * 1 00000ae0 00000010 UNINITIALIZED 00000ae0 00000010 DSP28_GlobalVariableDefs.obj (CsmRegsFile)

XintfRegsFile * 1 00000b20 00000020 UNINITIALIZED 00000b20 00000020 DSP28_GlobalVariableDefs.obj (XintfRegsFile)

CpuTimer0RegsFile * 1 00000c00 00000008 UNINITIALIZED 00000c00 00000008 DSP28_GlobalVariableDefs.obj (CpuTimer0RegsFile)

CpuTimer1RegsFile * 1 00000c08 00000008 UNINITIALIZED 00000c08 00000008 DSP28_GlobalVariableDefs.obj (CpuTimer1RegsFile)

CpuTimer2RegsFile * 1 00000c10 00000008 UNINITIALIZED 00000c10 00000008 DSP28_GlobalVariableDefs.obj (CpuTimer2RegsFile)

PieCtrlRegsFile * 1 00000ce0 0000001a UNINITIALIZED 00000ce0 0000001a DSP28_GlobalVariableDefs.obj (PieCtrlRegsFile)

PieVectTable * 1 00000d00 00000100 UNINITIALIZED 00000d00 00000100 DSP28_GlobalVariableDefs.obj (PieVectTable)

ECanaRegsFile * 1 00006000 00000034 UNINITIALIZED 00006000 00000034 DSP28_GlobalVariableDefs.obj (ECanaRegsFile)

ECanaMboxesFile * 1 00006100 00000100 UNINITIALIZED 00006100 00000100 DSP28_GlobalVariableDefs.obj (ECanaMboxesFile)

SysCtrlRegsFile * 1 00007010 00000020 UNINITIALIZED 00007010 00000020 DSP28_GlobalVariableDefs.obj (SysCtrlRegsFile)

SpiaRegsFile * 1 00007040 00000010 UNINITIALIZED 00007040 00000010 DSP28_GlobalVariableDefs.obj (SpiaRegsFile)

SciaRegsFile * 1 00007050 00000010 UNINITIALIZED 00007050 00000010 DSP28_GlobalVariableDefs.obj (SciaRegsFile)

XIntruptRegsFile * 1 00007070 00000010 UNINITIALIZED 00007070 00000010 DSP28_GlobalVariableDefs.obj (XIntruptRegsFile)

GpioMuxRegsFile * 1 000070c0 00000020 UNINITIALIZED 000070c0 00000020 DSP28_GlobalVariableDefs.obj (GpioMuxRegsFile)

GpioDataRegsFile * 1 000070e0 00000020 UNINITIALIZED 000070e0 00000020 DSP28_GlobalVariableDefs.obj (GpioDataRegsFile)

AdcRegsFile * 1 00007100 0000001a UNINITIALIZED 00007100 0000001a DSP28_GlobalVariableDefs.obj (AdcRegsFile)

EvaRegsFile * 1 00007400 00000032 UNINITIALIZED 00007400 00000032 DSP28_GlobalVariableDefs.obj (EvaRegsFile)

EvbRegsFile * 1 00007500 00000032 UNINITIALIZED 00007500 00000032 DSP28_GlobalVariableDefs.obj (EvbRegsFile)

ScibRegsFile * 1 00007750 00000010 UNINITIALIZED 00007750 00000010 DSP28_GlobalVariableDefs.obj (ScibRegsFile)

McbspaRegsFile * 1 00007800 00000025 UNINITIALIZED 00007800 00000025 DSP28_GlobalVariableDefs.obj (McbspaRegsFile)

.ebss 1 00008f5e 0000090d UNINITIALIZED 00008f5e 00000018 DSP28_CpuTimers.obj (.ebss) 00008f76 00000006 MP3.obj (.ebss) 00008f7c 00000004 –HOLE– 00008f80 00000800 main.obj (.ebss) 00009780 0000009a SD_SPI_Fat32.obj (.ebss) 0000981a 00000026 –HOLE– 00009840 0000002b SD_SPI_Initialization.obj (.ebss)

.bss 1 0000986c 00000094 UNINITIALIZED 0000986c 00000004 rts2800_fl040830.lib : _lock.obj (.bss) 00009870 00000010 –HOLE– 00009880 00000080 : exit.obj (.bss)

CsmPwlFile * 1 003f7ff8 00000008 UNINITIALIZED 003f7ff8 00000008 DSP28_GlobalVariableDefs.obj (CsmPwlFile)

GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name

address name——– —-0000986c .bss003f6000 .text003f6ba3 C$$EXIT003f6a9e FS$$MPY003f6bc2 FS$$TOL003f64a8 _ADCINT_ISR00007100 _AdcRegs00009783 _BytesPerSec003f64f3 _CAPINT1_ISR003f64f8 _CAPINT2_ISR003f64fd _CAPINT3_ISR003f653e _CAPINT4_ISR003f6543 _CAPINT5_ISR003f6548 _CAPINT6_ISR003f64bc _CMP1INT_ISR003f64c1 _CMP2INT_ISR003f64c6 _CMP3INT_ISR003f6507 _CMP4INT_ISR003f650c _CMP5INT_ISR003f6511 _CMP6INT_ISR003f698b _ConfigCpuTimer00008f6e _CpuTimer000000c00 _CpuTimer0Regs00008f5e _CpuTimer100000c08 _CpuTimer1Regs00008f66 _CpuTimer200000c10 _CpuTimer2Regs003f7ff8 _CsmPwl00000ae0 _CsmRegs003f6458 _DATALOG_ISR00009782 _DataClusAddr00009780 _DataSecAddr003f6af8 _Delay_ms00000880 _DevEmuRegs003f6575 _ECAN0INTA_ISR003f657a _ECAN1INTA_ISR00006100 _ECanaMboxes00006000 _ECanaRegs003f6462 _EMUINT_ISR00007400 _EvaRegs00007500 _EvbRegs000097c0 _Fat32_BPB00009781 _FatSecAddr0000978e _File0000978c _File_ClusAddr0000978a _File_SecAddr003f63ce _File_SecAddr_Count00009788 _File_Size00000a80 _FlashRegs003f6bfd _GetASCIICode003f6c0e _GetCodeZiMo_1003f6c1d _GetCodeZiMo_2000070e0 _GpioDataRegs000070c0 _GpioMuxRegs00009786 _HiddenSec003f6467 _ILLEGAL_ISR003f643f _INT13_ISR003f6444 _INT14_ISR003f6952 _InitCpuTimers003f6cb0 _InitGpio003f6cbe _InitPeripherals003f6c56 _InitPieCtrl003f6c77 _InitPieVectTable003f6a39 _InitSci003f6a50 _InitScib003f68b8 _InitSpi003f68b9 _InitSpiaGpio003f6c2c _InitSysCtrl003f6c97 _InitXintf003f654d _MRINTA_ISR003f6552 _MXINTA_ISR00007800 _McbspaRegs003f6449 _NMI_ISR003f64b7 _PDPINTA_ISR003f6502 _PDPINTB_ISR003f657f _PIE_RESERVED00000ce0 _PieCtrl00000d00 _PieVectTable00008df0 _PieVectTableInit003f645d _RTOSINT_ISR00009785 _RootSecAddr003f628d _RootSec_First003f6561 _SCIRXINTA_ISR003f656b _SCIRXINTB_ISR003f6566 _SCITXINTA_ISR003f6570 _SCITXINTB_ISR003f6557 _SPIRXINTA_ISR003f655c _SPITXINTA_ISR00007050 _SciaRegs003f6a82 _SciaRx_Ready003f6a66 _SciaTx_Ready00007750 _ScibRegs003f6a90 _ScibRx_Ready003f6a74 _ScibTx_Ready003f62d5 _Search_File_SecAddr00009784 _SecPerClus00007040 _SpiaRegs00007010 _SysCtrlRegs003f64d0 _T1CINT_ISR003f64da _T1OFINT_ISR003f64cb _T1PINT_ISR003f64d5 _T1UFINT_ISR003f64e4 _T2CINT_ISR003f64ee _T2OFINT_ISR003f64df _T2PINT_ISR003f64e9 _T2UFINT_ISR003f651b _T3CINT_ISR003f6525 _T3OFINT_ISR003f6516 _T3PINT_ISR003f6520 _T3UFINT_ISR003f652f _T4CINT_ISR003f6539 _T4OFINT_ISR003f652a _T4PINT_ISR003f6534 _T4UFINT_ISR003f64ad _TINT0_ISR003f646c _USER0_ISR003f649e _USER10_ISR003f64a3 _USER11_ISR003f6471 _USER1_ISR003f6476 _USER2_ISR003f647b _USER3_ISR003f6480 _USER4_ISR003f6485 _USER5_ISR003f648a _USER6_ISR003f648f _USER7_ISR003f6494 _USER8_ISR003f6499 _USER9_ISR003f6172 _VS1003_GetDecodeTime003f6148 _VS1003_ReadReg003f61df _VS1003_Reset003f6167 _VS1003_ResetDecodeTime003f60ab _VS1003_SPI_Read003f6026 _VS1003_SPI_Write003f61f0 _VS1003_SetVol003f6177 _VS1003_SoftReset003f621b _VS1003_WriteData003f612b _VS1003_WriteReg003f64b2 _WAKEINT_ISR003f644e _XINT1_ISR003f6453 _XINT2_ISR00007070 _XIntruptRegs00000b20 _XintfRegs00000320 __STACK_END00000320 __STACK_SIZEffffffff ___binit__0000986c ___bss__ffffffff ___c_args__003d8000 ___cinit__00009900 ___end__003f6ccc ___etext__003f6b47 ___memcpy003f6b65 ___memcpy_ff003f6b5b ___memcpy_fn003f6b51 ___memcpy_nfffffffff ___pinit__003f6000 ___text__003f4000 __c_load00009884 __cleanup_ptr00000000 __const_length00008000 __const_run00009882 __dtors_ptr003f4000 __ec_load00000f5e __econst_length00008000 __econst_run0000986e __lock003f6cc5 __nop003f6cc6 __register_lock003f6cc9 __register_unlock0000986c __unlock003f6bc1 _abort003f6ba5 _atexit003f69cf _c_int0000009844 _card_status0000985b _cid_contents00009842 _crc_enabled0000984b _csd_contents00009841 _data_manipulation003f6b84 _exit00009840 _high_capacity00008f76 _i003f6596 _led_initialization003f6b06 _main003f6b44 _memcpy00009846 _ocr_contents00008f80 _read00009843 _response003f6584 _rsvd_ISR003f65ae _sd_card_insertion003f67a3 _sd_cid_csd_response003f688d _sd_command_response003f6860 _sd_crc7003f670f _sd_data_response003f68ae _sd_error003f65c1 _sd_initialization003f678c _sd_ocr_response003f6236 _sd_read_BPB003f6692 _sd_read_block003f66c2 _sd_read_multiple_block003f675e _sd_read_register003f67e0 _sd_send_status003f6615 _sd_version2_initialization003f6589 _spi_initialization003f6811 _spi_xmit_byte003f681f _spi_xmit_command00008f77 _vs1003ramffffffff binit003d8000 cinit00009900 end003f6ccc etextffffffff pinit

GLOBAL SYMBOLS: SORTED BY Symbol Address

address name——– —-00000000 __const_length00000320 __STACK_END00000320 __STACK_SIZE00000880 _DevEmuRegs00000a80 _FlashRegs00000ae0 _CsmRegs00000b20 _XintfRegs00000c00 _CpuTimer0Regs00000c08 _CpuTimer1Regs00000c10 _CpuTimer2Regs00000ce0 _PieCtrl00000d00 _PieVectTable00000f5e __econst_length00006000 _ECanaRegs00006100 _ECanaMboxes00007010 _SysCtrlRegs00007040 _SpiaRegs00007050 _SciaRegs00007070 _XIntruptRegs000070c0 _GpioMuxRegs000070e0 _GpioDataRegs00007100 _AdcRegs00007400 _EvaRegs00007500 _EvbRegs00007750 _ScibRegs00007800 _McbspaRegs00008000 __const_run00008000 __econst_run00008df0 _PieVectTableInit00008f5e _CpuTimer100008f66 _CpuTimer200008f6e _CpuTimer000008f76 _i00008f77 _vs1003ram00008f80 _read00009780 _DataSecAddr00009781 _FatSecAddr00009782 _DataClusAddr00009783 _BytesPerSec00009784 _SecPerClus00009785 _RootSecAddr00009786 _HiddenSec00009788 _File_Size0000978a _File_SecAddr0000978c _File_ClusAddr0000978e _File000097c0 _Fat32_BPB00009840 _high_capacity00009841 _data_manipulation00009842 _crc_enabled00009843 _response00009844 _card_status00009846 _ocr_contents0000984b _csd_contents0000985b _cid_contents0000986c .bss0000986c ___bss__0000986c __unlock0000986e __lock00009882 __dtors_ptr00009884 __cleanup_ptr00009900 ___end__00009900 end003d8000 ___cinit__003d8000 cinit003f4000 __c_load003f4000 __ec_load003f6000 .text003f6000 ___text__003f6026 _VS1003_SPI_Write003f60ab _VS1003_SPI_Read003f612b _VS1003_WriteReg003f6148 _VS1003_ReadReg003f6167 _VS1003_ResetDecodeTime003f6172 _VS1003_GetDecodeTime003f6177 _VS1003_SoftReset003f61df _VS1003_Reset003f61f0 _VS1003_SetVol003f621b _VS1003_WriteData003f6236 _sd_read_BPB003f628d _RootSec_First003f62d5 _Search_File_SecAddr003f63ce _File_SecAddr_Count003f643f _INT13_ISR003f6444 _INT14_ISR003f6449 _NMI_ISR003f644e _XINT1_ISR003f6453 _XINT2_ISR003f6458 _DATALOG_ISR003f645d _RTOSINT_ISR003f6462 _EMUINT_ISR003f6467 _ILLEGAL_ISR003f646c _USER0_ISR003f6471 _USER1_ISR003f6476 _USER2_ISR003f647b _USER3_ISR003f6480 _USER4_ISR003f6485 _USER5_ISR003f648a _USER6_ISR003f648f _USER7_ISR003f6494 _USER8_ISR003f6499 _USER9_ISR003f649e _USER10_ISR003f64a3 _USER11_ISR003f64a8 _ADCINT_ISR003f64ad _TINT0_ISR003f64b2 _WAKEINT_ISR003f64b7 _PDPINTA_ISR003f64bc _CMP1INT_ISR003f64c1 _CMP2INT_ISR003f64c6 _CMP3INT_ISR003f64cb _T1PINT_ISR003f64d0 _T1CINT_ISR003f64d5 _T1UFINT_ISR003f64da _T1OFINT_ISR003f64df _T2PINT_ISR003f64e4 _T2CINT_ISR003f64e9 _T2UFINT_ISR003f64ee _T2OFINT_ISR003f64f3 _CAPINT1_ISR003f64f8 _CAPINT2_ISR003f64fd _CAPINT3_ISR003f6502 _PDPINTB_ISR003f6507 _CMP4INT_ISR003f650c _CMP5INT_ISR003f6511 _CMP6INT_ISR003f6516 _T3PINT_ISR003f651b _T3CINT_ISR003f6520 _T3UFINT_ISR003f6525 _T3OFINT_ISR003f652a _T4PINT_ISR003f652f _T4CINT_ISR003f6534 _T4UFINT_ISR003f6539 _T4OFINT_ISR003f653e _CAPINT4_ISR003f6543 _CAPINT5_ISR003f6548 _CAPINT6_ISR003f654d _MRINTA_ISR003f6552 _MXINTA_ISR003f6557 _SPIRXINTA_ISR003f655c _SPITXINTA_ISR003f6561 _SCIRXINTA_ISR003f6566 _SCITXINTA_ISR003f656b _SCIRXINTB_ISR003f6570 _SCITXINTB_ISR003f6575 _ECAN0INTA_ISR003f657a _ECAN1INTA_ISR003f657f _PIE_RESERVED003f6584 _rsvd_ISR003f6589 _spi_initialization003f6596 _led_initialization003f65ae _sd_card_insertion003f65c1 _sd_initialization003f6615 _sd_version2_initialization003f6692 _sd_read_block003f66c2 _sd_read_multiple_block003f670f _sd_data_response003f675e _sd_read_register003f678c _sd_ocr_response003f67a3 _sd_cid_csd_response003f67e0 _sd_send_status003f6811 _spi_xmit_byte003f681f _spi_xmit_command003f6860 _sd_crc7003f688d _sd_command_response003f68ae _sd_error003f68b8 _InitSpi003f68b9 _InitSpiaGpio003f6952 _InitCpuTimers003f698b _ConfigCpuTimer003f69cf _c_int00003f6a39 _InitSci003f6a50 _InitScib003f6a66 _SciaTx_Ready003f6a74 _ScibTx_Ready003f6a82 _SciaRx_Ready003f6a90 _ScibRx_Ready003f6a9e FS$$MPY003f6af8 _Delay_ms003f6b06 _main003f6b44 _memcpy003f6b47 ___memcpy003f6b51 ___memcpy_nf003f6b5b ___memcpy_fn003f6b65 ___memcpy_ff003f6b84 _exit003f6ba3 C$$EXIT003f6ba5 _atexit003f6bc1 _abort003f6bc2 FS$$TOL003f6bfd _GetASCIICode003f6c0e _GetCodeZiMo_1003f6c1d _GetCodeZiMo_2003f6c2c _InitSysCtrl003f6c56 _InitPieCtrl003f6c77 _InitPieVectTable003f6c97 _InitXintf003f6cb0 _InitGpio003f6cbe _InitPeripherals003f6cc5 __nop003f6cc6 __register_lock003f6cc9 __register_unlock003f6ccc ___etext__003f6ccc etext003f7ff8 _CsmPwlffffffff ___binit__ffffffff ___c_args__ffffffff ___pinit__ffffffff binitffffffff pinit

[210 symbols]

写了一个F2812的程序,在RAM里仿真都是好的,运行正常;

但是在烧入FLASH后,程序就不运行了(编译没有错误);

怀疑是FLASH的问题,于是写了一个LED流水灯小程序,烧入FLASH后,却可以正常运行。

这是怎么回事,有谁遇到过吗??

qianghong xiao:

回复 qianghong xiao:

烧录FLASH后0x3F 7FF6和0x3F 7FF7这两个地址里的内容是0x007f 、0x69cf

写了一个F2812的程序,在RAM里仿真都是好的,运行正常;

但是在烧入FLASH后,程序就不运行了(编译没有错误);

怀疑是FLASH的问题,于是写了一个LED流水灯小程序,烧入FLASH后,却可以正常运行。

这是怎么回事,有谁遇到过吗??

qianghong xiao:

回复 10#:

感谢你们无私的帮助!终于调好了,是上电引导的问题,用了TI官方的F2812.CMD和codestartbranch.asm文件,并对CMD文件稍作修改就好了。现在有一个疑惑,FLASH有那么多的区段(J, I ,H ,G 等)为什么大部分都没有用到,在官方CMD文件中未用到的,用户都可以自己定义使用吗?还有为什么没有区段B?

写了一个F2812的程序,在RAM里仿真都是好的,运行正常;

但是在烧入FLASH后,程序就不运行了(编译没有错误);

怀疑是FLASH的问题,于是写了一个LED流水灯小程序,烧入FLASH后,却可以正常运行。

这是怎么回事,有谁遇到过吗??

10#:

回复 qianghong xiao:

烧录FLASH后0x3F 7FF6和0x3F 7FF7这两个地址里的内容是0x007f 、0x69cf

–> 应该是0x003f 、0x69cf 吧?

如果是上电引导的问题,那你之前另外一个基于FLASH的测试程序为什么可以运行呢?你确定说的是GPIOF4, GPIOF12, GPIOF3和GPIOF2的电平状态吗?

各个FLASH段只是人为的区分,用户当然可以定义使用,例程只是说明如何使用,并不是实际情况。

SectorB是存在的,你可以查看数据手册的Table 3-1. Addresses of Flash Sectors in F2812 and F2811,在TI提供的cmd例子文件里,它只是把sector B放在另外一个page而已,用于存放数据,而大部分都是用于存放程序的。

赞(0)
未经允许不得转载:TI中文支持网 » 程序写入FLASH后,不运行是怎么回事?
分享到: 更多 (0)