F280039 CCS Memory map prevented reading problem

1. 问题描述:

   DSP在仿真状态下出现: Memory map prevented reading 0xzzzzzzzz@Program

2. 问题原因:

    在链接空间映射CMD文件f28003x_headers_nonBIOS.cmd中,

     没有将需要观测的数据安排在 PAGE 1, 即Data Memory中。

在C2000WARE 4.0版本中的f28003x_headers_nonBIOS.cmd文件如下:

MEMORY
{
   ACCESSPROTECTION           : origin = 0x0005F500, length = 0x00000040
   ADCA                                        : origin = 0x00007400, length = 0x00000080
   ADCB                                        : origin = 0x00007480, length = 0x00000080
   ADCC                                        : origin = 0x00007500, length = 0x00000080
   ADCARESULT                          : origin = 0x00000B00, length = 0x00000018
   ADCBRESULT                          : origin = 0x00000B20, length = 0x00000018
   ADCCRESULT                          : origin = 0x00000B40, length = 0x00000018
   ANALOGSUBSYS                    : origin = 0x0005D700, length = 0x00000122
   ...
   WD                                           : origin = 0x00007000, length = 0x0000002C
   XBAR                                       : origin = 0x00007920, length = 0x00000020
   XINT                                         : origin = 0x00007070, length = 0x0000000C

}


SECTIONS
{
/*** PIE Vect Table and Boot ROM Variables Structures ***/
UNION run = PIEVECTTABLE
{
    PieVectTableFile
    GROUP
    {
        EmuKeyVar
        EmuBModeVar
        EmuBootPinsVar
        FlashCallbackVar
        FlashScalingVar
    }
}

   AccessProtectionRegsFile   : > ACCESSPROTECTION, type=NOINIT
   AdcaRegsFile                      : > ADCA, type=NOINIT
   AdcbRegsFile                      : > ADCB, type=NOINIT
   AdccRegsFile                      : > ADCC, type=NOINIT
   AdcaResultRegsFile           : > ADCARESULT, type=NOINIT
   AdcbResultRegsFile           : > ADCBRESULT, type=NOINIT
   AdccResultRegsFile           : > ADCCRESULT, type=NOINIT
   AnalogSubsysRegsFile      : > ANALOGSUBSYS, type=NOINIT
  ...
   WdRegsFile                       : > WD, type=NOINIT
   XbarRegsFile                     : > XBAR, type=NOINIT
   XintRegsFile                      : > XINT, type=NOINIT
}

使用该文件就会导致仿真时出现:Memory map prevented reading 0xzzzzzzzz@Program

3. 问题解决:

引入PAGE1范围约束,改进的CMD文件如下:

MEMORY
{

 PAGE 0:    /* Program Memory */

 PAGE 1:    /* Data Memory */

   ACCESSPROTECTION           : origin = 0x0005F500, length = 0x00000040
   ADCA                                       : origin = 0x00007400, length = 0x00000080
   ADCB                                       : origin = 0x00007480, length = 0x00000080
   ADCC                                       : origin = 0x00007500, length = 0x00000080
   ADCARESULT                         : origin = 0x00000B00, length = 0x00000018
   ADCBRESULT                         : origin = 0x00000B20, length = 0x00000018
   ADCCRESULT                         : origin = 0x00000B40, length = 0x00000018
   ANALOGSUBSYS                    : origin = 0x0005D700, length = 0x00000122
  ...
   WD                                          : origin = 0x00007000, length = 0x0000002C
   XBAR                                      : origin = 0x00007920, length = 0x00000020
   XINT                                        : origin = 0x00007070, length = 0x0000000C

}


SECTIONS
{
/*** PIE Vect Table and Boot ROM Variables Structures ***/
UNION run = PIEVECTTABLE, PAGE = 1
{
    PieVectTableFile
    GROUP
    {
        EmuKeyVar
        EmuBModeVar
        EmuBootPinsVar
        FlashCallbackVar
        FlashScalingVar
    }
}

   AccessProtectionRegsFile   : > ACCESSPROTECTION, PAGE = 1
   AdcaRegsFile                       : > ADCA, PAGE = 1
   AdcbRegsFile                       : > ADCB, PAGE = 1
   AdccRegsFile                       : > ADCC, PAGE = 1
   AdcaResultRegsFile             : > ADCARESULT, PAGE = 1
   AdcbResultRegsFile             : > ADCBRESULT, PAGE = 1
   AdccResultRegsFile             : > ADCCRESULT, PAGE = 1
   AnalogSubsysRegsFile        : > ANALOGSUBSYS, PAGE = 1
   ...
   WdRegsFile                         : > WD, PAGE = 1
   XbarRegsFile                       : > XBAR, PAGE = 1
   XintRegsFile                        : > XINT, PAGE = 1
}

4. 问题验证:

重新编译文件,并进行仿真,数据观测以及数据修改都可以了。

5. 问题总结:

     在CMD文件里,一定要把需要观测和处理的数据安排在Data Page.

     在C2000WARE 4.0版本中,这个应该是个BUG。

      后续对比的C2000WARE 5.0版本中,发现已经如上升级处理。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值