This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320C6748: c6748,NOR flash 16bit启动不了

Part Number: TMS320C6748
Other Parts Discussed in Thread: OMAP-L138

使用的是OMAP-L138的NOR WRITE进行烧写,程序烧写情况如下

[C674X_0] Starting OMAP-L138 NORWriter.
CFI Query...passed.
NOR Initialization:
	Command Set: Intel
	Manufacturer: INTEL
	Size: 0x4 MB
Enter the binary AIS application file name (enter 'none' to skip): 
D:\dsp\TMS320C6748_V4.0\Bin\LED_NOR.ais
	INFO: File read complete.
Erasing the NOR Flash
Erased through 0x60020000
Erase Completed
Writing the NOR Flash
NOR Write OK through 0x60001138.
Checking flash contents... Passed! (0x1138 bytes)
	NOR boot preparation was successful!
 ,其中NOR WRITER 的CMD如下
-lrts64plus.lib
-stack          0x00000800 /* Stack Size */  
-heap           0x00000800 /* Heap Size */

MEMORY
{
  DRAM        org=0xC0000000 len=0x08000000 /* SDRAM */
  SHARED_RAM  org=0x80000000 len=0x00020000 /* DDR for program */
  AEMIF       org=0x60000000 len=0x02000000 /* AEMIF CS2 region */
  AEMIF_CS3   org=0x62000000 len=0x02000000 /* AEMIF CS3 region */
}

SECTIONS
{
  .text :
  {
  } > SHARED_RAM
  .const :
  {
  } > SHARED_RAM
  .bss :
  {
  } > SHARED_RAM
  .far :
  {
  } > SHARED_RAM
  .stack :
  {
  } > SHARED_RAM
  .data :
  {
  } > SHARED_RAM
  .cinit :
  {
  } > SHARED_RAM
  .sysmem :
  {
  } > SHARED_RAM
  .cio :
  {
  } > SHARED_RAM
  .switch :
  {
  } > SHARED_RAM

  .aemif_mem
  {
    . += 0x1000;
  } load = AEMIF, FILL=0x00000000, type=DSECT, START(_NORStart)
  .ddrram 
  {
    . += 0x1000;
  } load = DRAM, FILL=0x00000000, type=DSECT, START(_DDRStart)
  .extram 
  {
    . += 0x08000000;
  } load = DRAM, FILL=0x00000000, type=DSECT, START(_EXTERNAL_RAM_START), END(_EXTERNAL_RAM_END), SIZE(_EXTERNAL_RAM_SIZE)
}
基本都是默认的,我的LED程序是没有问题的,在NAND上可以运行启动,LED程序的CMD如下
/****************************************************************************/
/*                                                                          */
/*              OMAPL138 及 DSP C6748 内存空间分配定义                      					*/
/*                                                                          */
/*              2014年05月16日                                              								*/
/*                                                                          */
/****************************************************************************/
//-heap 0x00A00000   //堆大小10M
-stack 0x1000
MEMORY
{
#ifdef DSP_CORE
/****************************************************************************/
/*                                                                          */
/*              DSP 专有内存区域                                            								*/
/*                                                                          */
/****************************************************************************/
    DSPL2ROM     o = 0x00700000  l = 0x00100000  /* 1MB   L2 DSP 本地 ROM (DSP ROM Bootloader) */
    DSPL2RAM     o = 0x00800000  l = 0x00040000  /* 256kB L2 DSP 本地 RAM */
    DSPL1PRAM    o = 0x00E00000  l = 0x00008000  /* 32kB  L1 DSP 本地程序 RAM */
    DSPL1DRAM    o = 0x00F00000  l = 0x00008000  /* 32kB  L1 DSP 本地数据 RAM */
#endif

/****************************************************************************/
/*                                                                          */
/*              公共内存区域                                                								*/
/*                                                                          */
/****************************************************************************/
    SHDSPL2ROM   o = 0x11700000  l = 0x00100000  /* 1MB   L2 共享内置 ROM */
    SHDSPL2RAM   o = 0x11800000  l = 0x00040000  /* 256KB L2 共享内置 RAM */
    SHDSPL1PRAM  o = 0x11E00000  l = 0x00008000  /* 32KB  L1 共享内置程序 RAM */
    SHDSPL1DRAM  o = 0x11F00000  l = 0x00008000  /* 32KB  L1 共享内置数据 RAM */

    EMIFACS0     o = 0x40000000  l = 0x20000000  /* 512MB SDRAM (CS0) */
    EMIFACS2     o = 0x60000000  l = 0x02000000  /* 32MB  异步          (CS2) */
    EMIFACS3     o = 0x62000000  l = 0x02000000  /* 32MB  异步          (CS3) */
    EMIFACS4     o = 0x64000000  l = 0x02000000  /* 32MB  异步          (CS4) */
    EMIFACS5     o = 0x66000000  l = 0x02000000  /* 32MB  异步          (CS5) */

    SHRAM        o = 0x80000000  l = 0x00020000  /* 128KB 共享 RAM */
    DDR2         o = 0xC0001000  l = 0x08000000  /* 128MB  DDR2 分配给 DSP */
	
	EntryPoint   o = 0xC0000000  l = 0x00000800  /* 2 KB  C 语言入口点 */
	Vector       o = 0xC0000800  l = 0x00000800  /* 2 KB  中断向量表 */

/****************************************************************************/
/*                                                                          */
/*              外设内存区域                                                */
/*                                                                          */
/****************************************************************************/
    SYSCFG0      o = 0x01C14000  l = 0x00001000  /* 4K    SYSCFG0 */
    uPP          o = 0x01E16000  l = 0x00001000  /* 4K    uPP */
    GPIO         o = 0x01E26000  l = 0x00001000  /* 4K    GPIO */
    McBSP1       o = 0x01D11000  l = 0x00000800  /* 2K    McBSP1 */

#ifndef DSP_CORE
/****************************************************************************/
/*                                                                          */
/*              ARM 专有内存区域                                            */
/*                                                                          */
/****************************************************************************/
    ARMROM       o = 0xFFFD0000  l = 0x00010000  /* 64kB  ARM 本地 ROM (ARM ROM Bootloader) */
    ARMRAM       o = 0xFFFF0000  l = 0x00002000  /* 8kB   ARM 本地 RAM */
#endif
}

SECTIONS
{
    .text:_c_int00	>  EntryPoint 				 /* 可执行代码 C 程序入口点*/
    .text			>  DDR2 				     /* 可执行代码 */
    .stack			>  DDR2 				     /* 软件系统栈 */
    .cio			>  DDR2                      /* C 输入输出缓存 */
    ".vectors"		>  Vector    				 /* 中断向量表 */
    .const			>  DDR2                      /* 常量 */
    .data			>  DDR2                      /* 已初始化全局及静态变量 */
    .switch			>  DDR2                      /* 跳转表 */
    .sysmem			>  DDR2                      /* 动态内存分配区域 */
    .far			>  DDR2                      /* 远程全局及静态变量 */
    .args			>  DDR2
    .ppinfo			>  DDR2
    .ppdata			>  DDR2

    /* TI-ABI 或 COFF */
    .pinit          >  DDR2                      /* C++ 结构表 */
    .cinit          >  DDR2                      /* 初始化表 */

    /* EABI */
    .binit			>  DDR2
    .init_array		>  DDR2
    .fardata		>  DDR2
    .c6xabi.exidx	>  DDR2
    .c6xabi.extab	>  DDR2
    GROUP (NEARDP_DATA)                       // group near data
    {
       .neardata
       .rodata
       .bss                                   // note: removed fill = 0
    }             >        DDR2

	/* DDR2 */
    .buffer			>  DDR2

	/* 外设  */
	.Reg_SYSCFG0	>  SYSCFG0
	.Reg_uPP		>  uPP
	.Reg_GPIO		>  GPIO
	.Reg_McBSP1		>  McBSP1
}
但是烧写完毕后,bootmode正确的情况下寄存器已经看过,程序没有启动。