在线时间46 小时
UID2094162
注册时间2017-8-7
NXP金币0
TA的每日心情 | 擦汗 2020-1-10 11:05 |
---|
签到天数: 13 天 连续签到: 1 天 [LV.3]偶尔看看II
中级会员
 
- 积分
- 382
- 最后登录
- 2020-11-12
|
我这边配置ITCM/DTCM/OCRAM = 64/256/192 , OCRAM-FLEXRAM = 512
MPU配置如下:
/* Region 4 setting: Memory with Normal type, not shareable, outer/inner write back */
MPU->RBAR = ARM_MPU_RBAR(4, 0x00000000U);
MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_64KB);
/* Region 5 setting: Memory with Normal type, not shareable, outer/inner write back */
MPU->RBAR = ARM_MPU_RBAR(5, 0x20000000U); // DTCM
MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_256KB);
/* Region 6 setting: Memory with Normal type, not shareable, outer/inner write back */
MPU->RBAR = ARM_MPU_RBAR(6, 0x20200000U); // OCRAM
MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_128KB);
MPU->RBAR = ARM_MPU_RBAR(7, (0x20200000 + 128 * 1024)); // OCRAM
MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_64KB);
/* Region 7 setting: Memory with Normal type, not shareable, outer/inner write back */
MPU->RBAR = ARM_MPU_RBAR(8, 0x20280000U); // OCRAM_FLEXRAM
MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_512KB);
连接脚本(部分)如下:(只贴出DTCM/OCRAM/OCRAM-FLEXRAM相关)
// DTCM
#define m_rtt_szie 0x00030000 // 192
#define m_data1_start (0x20000000 + m_rtt_szie)
#define m_data1_size (0x00040000 - m_rtt_szie) // 256 - 192
// OCRAM
#define m_data2_start 0x20200000
#define m_data2_size 0x00030000 // 192
// OCRAM-FLEXRAM
#define m_data3_start 0x20280000
#define m_data3_size 0x00080000 // 512
#define Stack_Size 0x1000 // 4k
#define Heap_Size 0x0400
RW_m_data1 m_data1_start m_data1_size { ; RW data
.ANY (+RW +ZI)
* (NonCacheable.init)
* (NonCacheable)
}
RW_m_data2 m_data2_start m_data2_size-Stack_Size-Heap_Size{ ; RW data
.ANY (+RW +ZI)
}
RW_m_data3 m_data3_start m_data3_size{ ; RW data
.ANY (+RW +ZI)
}
ARM_LIB_HEAP +0 EMPTY Heap_Size {} ; Heap region growing up
ARM_LIB_STACK +0 EMPTY Stack_Size {} ; Stack region growing down
目前KEIL编译出来RAM 超过192k。
Program Size: Code=329516 RO-data=35132 RW-data=5740 ZI-data=192560
问题:
程序下载下去未跑起来;未超过192k时,程序正常运行;RW_m_data3 放到 RW_m_data2 前面程序运行正常。
感觉OCRAM 与 OCRAM-FLEXRAM没有同时用起来,请问:连接脚本中怎么配置让 这两块区域都使用起来???
|
|