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.

L1p内存问题?

各位专家好!

宏手册上有写CPU不能直接访问L1P,只能通过DMA访问,如下图:

问题:

1)CPU不能直接访问L1P,是不是就表示CMD文件中不能直接将代码分配到L1P上,如.text:psa  > L1PSRAM?

2)如果想要某些函数在L1P上运行,是不是就需要先将函数代码搬移到L2或者L3上,然后再用DMA方式搬移到L1P上?

3)用这个分配方式 .text:psa  >load=L3SRAM , run=L1PSRAM 行不行?

期待您的回答,谢谢!

  • 1. 默认状态是CACHE,不可访问的,最好不要,因为一般来说不会放东西上去的。而且存在于cmd当中,还要当心误放。

    2. 放在L2或者L3上,使能L1 cahce,便会搬移到L1运行,不需要DMA搬移。

    3. 没必要这么做,L1 cache使能就可以了。

  • 谢谢你的回复!

    我知道L1可以全部设置成CACHE,但是也可以部分设置成CACHE,当部分设置成CACHE的时候,我想把某些函数直接分配在L1未设置成CACHE那部分上,可以这样做吗.text:psa  > L1PSRAM 

  • L1P所在空间是不能由程序访问的,这是由于总线决定的。程序只能访问数据总线,L1P是属于指令空间的。

    至于cmd里能不能分配,编译链接是不检查这个的。但是text:psa  > L1PSRAM?肯定是不能工作的,默认是Cache,这样是访问不了的。

    可以参考一下spru186的7.8 Linker-Generated Copy Tables. 至于copy就按你说的换成DMA来做就好了。