|
我是初学者,看了硬汉哥的关于STM32-V7开发板的资料后,对于使用STM32H7内部的RAM有一些疑问,
1,开发板资料里提到,可以通过分散加载的方式和MDK配置的方式使用内部RAM,两者的区别是分散加载可以在写程序的时候,自己决定把变量定义在哪个RAM.
而通过MDK配置的方式,就是不需要设置分散加载,而是直接在MDK上配置你的程序分组或单个C文件的RAM地址。这两种方式,选择一个就可以了? 不知道我的理解对不对?
2,MDK上的“Target”配置项里,RAM配置有两个选项,分别是IRAM1, IRAM2,分别配置DTCM和ITCM的地址和大小,我想问下,其他的RAM区域,比如AXI SRAM,SRAM1,SRAM2,SRAM3等怎么设置?因为这里就IRAM1和IRAM2,已经没有地方设置其他RAM了。
还是说,这里不用配置其他RAM的地址,直接使用就行了?比如,我要使用SRAM1,假设他的地址是0x1,然后我直接在MDK里把C文件配置到这个地址上就行了?
3,我有一个大数组,unsigned short arry[240*320], 需要150K RAM空间,想定义到ITCM或者DTCM上,但是都已经超过了两者的最大容量,有什么方法可以把这个大数组定义到ITCM/DTCM上,并且还能继续使用剩余的空间?采用分散加载的方式吗?
4,我使用了LVGL图形库,图形库内核需要定义到512K AXI SRAM上运行,这种应该使用MDK配置的方式来设置RAM吧?但是正如以上第二项所说,MDK中的IRAM1, IRAM2已经配置了ITCM和DTCM,没有配置AXI SRAM,我如何把图形库内核中的变量映射到这个AXI 区域呢?直接设置地址?
不太明白MDK中IRAM1和IRAM2配置的具体含义,我想IRAM1应该是默认RAM区域吧,然后IRAM2是备份区域,然后AXI SRAM不能在这里设置了,我要怎么使用?
感谢支持
|
|