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.

28346例程Example_2833xCodeRunFromXintf中外扩内存是否真正减少了内部内存使用?



在实验28346例程Example_2833xCodeRunFromXintf例程时,发现cmd文件中的:

xintffunsc :  LOAD = RAML1,

                    RUN = ZONE7A,

由于xintffuncs是放到内部内存L1中的,之后查看.map文件,(与不采用外扩内存技术相比)虽然.text段占用L1内存减少,但新增的xintffuncs段同样占用L1内存,反而使L1内存占用增大,那外扩内存的优势在哪呢?

此为将例程修改为不使用外扩RAM技术的.map中的.text段

.text 0  0000a000   0000084c
            0000a000   0000035a   DSP2834x_DefaultIsr.obj (.text:retain)
            0000a35a   000001b4   DSP2834x_Xintf.obj (.text)
            0000a50e   000000f7    DSP2834x_SysCtrl.obj (.text)
            0000a605   000000ad   Example_2834xCodeRunFromXintf.obj (.text)
            0000a6b2   00000074   DSP2834x_CpuTimers.obj (.text)
            0000a726   00000046   rts2800_fpu32.lib : boot.obj (.text)
            0000a76c   0000003d   Example_2834xCodeRunFromXintf.obj (.text:retain)
            0000a7a9   00000028   DSP2834x_PieCtrl.obj (.text)
            0000a7d1   00000020   DSP2834x_PieVect.obj (.text)
            0000a7f1    00000019   rts2800_fpu32.lib : args_main.obj (.text)
            0000a80a   00000019   : exit.obj (.text)
            0000a823   00000015   DSP2834x_MemCopy.obj (.text)
            0000a838   00000009   rts2800_fpu32.lib : _lock.obj (.text)
            0000a841   00000008   DSP2834x_CodeStartBranch.obj (.text)
            0000a849   00000003   DSP2834x_DBGIER.obj (.text)

此为将例程的.map中的.text段和xintffuncs内存占用情况

.text 0  0000a000   0000082d
               0000a000   0000035a   DSP2834x_DefaultIsr.obj (.text:retain)
               0000a35a   000001b4   DSP2834x_Xintf.obj (.text)
               0000a50e   000000f7   DSP2834x_SysCtrl.obj (.text)
               0000a605   000000b7   Example_2834xCodeRunFromXintf.obj (.text)
               0000a6bc   00000074   DSP2834x_CpuTimers.obj (.text)
               0000a730   00000046   rts2800_fpu32.lib : boot.obj (.text)
               0000a776   00000028   DSP2834x_PieCtrl.obj (.text)
               0000a79e   00000020   DSP2834x_PieVect.obj (.text)
               0000a7be   00000019   rts2800_fpu32.lib : args_main.obj (.text)
               0000a7d7   00000019   : exit.obj (.text)
               0000a7f0    00000015   DSP2834x_MemCopy.obj (.text)
               0000a805   00000014   Example_2834xCodeRunFromXintf.obj (.text:retain)
               0000a819   00000009   rts2800_fpu32.lib : _lock.obj (.text)
               0000a822   00000008   DSP2834x_CodeStartBranch.obj (.text)
               0000a82a   00000003   DSP2834x_DBGIER.obj (.text)

xintffuncs
    * 0   0000a82d   00000029   RUN ADDR = 00200000
               0000a82d   00000029   Example_2834xCodeRunFromXintf.obj (xintffuncs:retain)

 

不知道是不是理解的有误,期望各位工程师的解答。