TIwilliam hill官网
直播中

曹雪琰

7年用户 214经验值
私信 关注
[问答]

C6678 EMIF16 NOR FLASH BOOT始终不成功

     各位专家好:    
      最近在做C6678的EMIF16 BOOT,我将代码段放到DDR3共享(代码段直接从内存保存然后写入FLASH),其它的段都是放到L2空间,上电时core0拷贝NOR FLASH的代码到DDR3,然后IPC触发其它core运行,可以看到core0拷贝代码是完成了的。
    单步调试发现core0是跳入入了c_int00地址的,但是不知道为什么在单步运行一段代码后PC指针直接跑到了非代码空间了。
    我的CMD文件是这样写的:
-c 
-heap 0x41000 
-stack 0xa000
MEMORY 
[
L1PSRAM (RWX)   : org = 0x0E00000,  len = 0x7FFF
L1DSRAM (RWX)   : org = 0x0F00000,  len = 0x7FFF
L2SRAM (RWX)    : org = 0x0800000,  len = 0x080000
MSMCSRAM (RWX)  : org = 0xc000000,  len = 0x200000
ISRAM(RWX):              org=0x80000000,len=0x500
DDR3 (RWX)      : org = 0x80000500, len = 0x10000000

]
SECtiONS 
[
    .csl_vect                                     >         L2SRAM
    .boot_sect                                 >         ISRAM
   .text                                              >        DDR3
GROUP (NEAR_DP)
[
.neardata
.rodata
.bss
] load > L2SRAM
.stack                             >         L2SRAM
.cio                                 >         L2SRAM
.data                              >         L2SRAM
.sysmem                       >         L2SRAM
.far                                  >         L2SRAM
.testMem                       >          L2SRAM
.fardata                          >          L2SRAM
platform_lib                  >           DDR3
]
        我没有使用TI提供的转换工具,而是直接从内存保存代码段,然后将代码段写入FLASH的方式,请问这样为什么不能BOOT成功呢???是不是由于写入FLASH的内容没有包含CMD文件中的其他段造成的???还请各位专家帮帮忙,谢谢了。

回帖(3)

杨娟

2018-6-21 07:48:24
您好,
请问你的代码如果搬到L2上能运行么,是否与DDR3初始化有关呢。
                                                                          

举报

曹雪琰

2018-6-21 07:55:22
引用: zbb9612 发表于 2018-6-21 07:48
您好,
请问你的代码如果搬到L2上能运行么,是否与DDR3初始化有关呢。
                                                                          

问题已经解决了,是由于写入FLASH的内容不完整造成的。
举报

王秀梅

2018-6-21 08:10:12
引用: 脑洞大赛15 发表于 2018-6-21 07:55
问题已经解决了,是由于写入FLASH的内容不完整造成的。

你好,我使用6678,通过nor flash启动,flash片选要求低有效。现在直接测试dsp输出的片选信号,一直为高?不知道可以采取什么方法来排查问题?麻烦了,非常感激
举报

更多回帖

发帖
×
20
完善资料,
赚取积分