最近在学习c6678的memory相关知识,有以下几个问题存在疑惑:
1 在c66x corepac user's guide文档时,其中模块xmc一方面是将32位逻辑地址转换为36位物理地址,另一方面是实现存储保护功能,即memory protection,请问memory protection是在什么上面来体现的,或者说xmc怎么实现memory protection的?
2 external memory controller(EMC)模块的作用和工作方式?搞不懂这个模块的作用,作为软件开发人员,在自己的程序中什么情况下需要特别关注这个模块的相关寄存器吗?
3 在该文档中还有单独的一个章节叫"memory protection",另外在芯片数据手册上的7.10同样有一章节称为"memory protection unit (MPU) ". 这两者各自的作用与工作方式是什么?有什么区别?还有在程序中什么情况下需要特别注意这些模块的寄存器配置?
4 最后就是msm sram的使用情况?
在c6678内LL2和L1是可以配置为cache和sdram两种类型的,若配置为sdram,则dsp核运算单元可直接访问的存储单元;若配置为cache则是可以高速缓存更低层次的存储区间的数据,以供dsp核高速访问;那mamc中的共享memory区域,映射逻辑地址为0x0c000000,即为sl2时,该片共享区域是作为cache?sdram?还是像ll2一样可部分为cache,部分为sdram?若部分为为cache,部分为sdram,怎么配置两者间各占多少空间? 对配置为sl3时,同问上述问题。