在线时间28 小时
UID175648
注册时间2019-1-16
NXP金币0
该用户从未签到
中级会员
 
- 积分
- 285
- 最后登录
- 2023-4-22
|

楼主 |
发表于 2019-11-9 06:18:01
|
显示全部楼层
#define m_flash_config_start 0x60000000
#define m_flash_config_size 0x00001000
#define m_ivt_start 0x60001000
#define m_ivt_size 0x00001000
#define m_interrupts_start 0x60002000
#define m_interrupts_size 0x00000400
#define m_text_start 0x60002400
;#define m_text_size 0x1F7FDC00/*503MB*/
;#define m_text_size 0x03FFDC00
#define m_text_size 0x007FDC00 /*8MB*///对应编译后的code
;#define m_text_size 0x002FDC00
;#define m_data_start 0x20000000
;#define m_data_size 0x00010000
;#define m_ncache_start 0x20010000
;#define m_ncache_size 0x00010000
#define m_data0_start 0x20000000 //DTCM
#define m_data0_size 0x20000 //128K
;#define m_data_start 0x80000000
;#define m_data_size 0x01E00000
;#define m_data_size 0x00A00000//10MB
#define heap_start 0x80000000
;#define __stack_size__ 0x2000 /*8K*/
;#define __heap_size__ 0x600000 /* heap size: 6M */
;#define m_ncache_start 0x81E00000
#define m_cache_start 0x80600000
#define m_cache_size 0x00200000//2MB
#define m_ncache_start 0x80900000
#define m_ncache_size 0x00600000//6MB
/* Sizes */
#if (defined(__stack_size__))
#define Stack_Size __stack_size__
#else
//#define Stack_Size 0x0400
#define Stack_Size 0x2000
#endif
#if (defined(__heap_size__))
#define Heap_Size __heap_size__
#else
//#define Heap_Size 0x0400
#define Heap_Size 0x400000
#endif
LR_m_rom_config m_flash_config_start m_flash_config_size { ; load region size_region
RW_m_config_text m_flash_config_start m_flash_config_size { ; load address = execution address
* (.boot_hdr.conf, +FIRST)
}
}
LR_m_rom_ivt m_ivt_start m_ivt_size { ; load region size_region
RW_m_ivt_text m_ivt_start m_ivt_size { ; load address = execution address
* (.boot_hdr.ivt, +FIRST)
* (.boot_hdr.boot_data)
* (.boot_hdr.dcd_data)
}
}
;LR_m_text m_text_start m_text_size { ; load region size_region
LR_m_text m_interrupts_start m_text_start+m_text_size-m_interrupts_start{
VECTOR_ROM m_interrupts_start m_interrupts_size {
* (RESET,+FIRST)
}
ER_m_text m_text_start m_text_size {
* (InRoot$$Sections)
.ANY (+RO)
}
RW_m_data0 m_data0_start m_data0_size-Stack_Size{;
.ANY (+RW +ZI)
*(m_usb_dma_init_data)
*(m_usb_dma_noninit_data);
}
;ARM_LIB_HEAP heap_start EMPTY Heap_Size {//堆区
;}
//ARM_LIB_STACK m_data_start+m_data_size EMPTY -Stack_Size { ; Stack region growing down
ARM_LIB_STACK m_data0_start+m_data0_size EMPTY -Stack_Size { ; Stack region growing down//栈区
}
RW_m_cache m_cache_start m_cache_size {
* (Cacheable.init)
* (Cacheable)
}
RW_m_ncache m_ncache_start m_ncache_size {
* (NonCacheable.init)
* (NonCacheable)
}
}
LR_m_heap heap_start Heap_Size {;//堆区
ARM_LIB_HEAP heap_start EMPTY Heap_Size {
}
}
我的MPU的region7设置是这样的
MPU->RBAR = ARM_MPU_RBAR(7, 0x80000000U);
MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_16MB);
标红部分
0x80000000---0x80400000 堆区
0x80600000--0x80800000 scf中定义的cache区
0x80900000--0x80F00000 scf中定义的noncache区
问题1:请问我标红的部分哪些能被cache访问?
问题2:GUI的缓存和显存放在cache区好还是非cache区好?现在没用到那么苛刻的场景,貌似都行,但是还想好好学一下。
回应对齐,我在scf文件中没有设定对齐,好像默认是8byte对齐,看过别人的例子这么说的,在这是为了再次确认一下,所有的知识点不见得都需要我亲自区验证 |
|