3030
3131#define FSL_MEM_M33_TCM_OFFSET 0x200000U
3232#elif (__CORTEX_M == 7U )
33- /* The CM7 subsystem local TCM start address, refer to Reference Manual for detailed information */
34- #define FSL_MEM_M7_TCM_BEGIN 0x20000000U
35- /* The CM7 subsystem local TCM end address, refer to Reference Manual for detailed information */
36- #define FSL_MEM_M7_TCM_END 0x2007FFFFU
33+ /* The CM7 subsystem local ITCM start address, refer to Reference Manual for detailed information */
34+ #define FSL_MEM_M7_ITCM_BEGIN 0x00000000U
35+ /* The CM7 subsystem local ITCM end address, refer to Reference Manual for detailed information */
36+ #define FSL_MEM_M7_ITCM_END 0x0003FFFFU
3737
38- #define FSL_MEM_M7_TCM_OFFSET 0x400000U
38+ #define FSL_MEM_M7_ITCM_OFFSET 0x203C0000U
39+
40+ /* The CM7 subsystem local DTCM start address, refer to Reference Manual for detailed information */
41+ #define FSL_MEM_M7_DTCM_BEGIN 0x20000000U
42+ /* The CM7 subsystem local DTCM end address, refer to Reference Manual for detailed information */
43+ #define FSL_MEM_M7_DTCM_END 0x2007FFFFU
44+
45+ #define FSL_MEM_M7_DTCM_OFFSET 0x400000U
3946#else
4047#error "Device is not supported by this driver!"
4148#endif
@@ -76,9 +83,19 @@ static inline uint32_t MEMORY_ConvertMemoryMapAddress(uint32_t addr, mem_directi
7683 dest = addr + FSL_MEM_M33_TCM_OFFSET ;
7784 }
7885#elif (__CORTEX_M == 7U )
79- if ((addr >= FSL_MEM_M7_TCM_BEGIN ) && (addr <= FSL_MEM_M7_TCM_END ))
86+ /*
87+ * Remove redundant lower bound check for ITCM range.
88+ * Since FSL_MEM_M7_ITCM_BEGIN is 0x00000000U and addr is unsigned,
89+ * the condition (addr >= 0) is always true and triggers compiler warning Pe186.
90+ * NOTE: Restore lower bound check if FSL_MEM_M7_ITCM_BEGIN becomes non-zero.
91+ * if ((addr >= FSL_MEM_M7_ITCM_BEGIN) && (addr <= FSL_MEM_M7_ITCM_END))
92+ */
93+ if (addr <= FSL_MEM_M7_ITCM_END )
94+ {
95+ dest = addr + FSL_MEM_M7_ITCM_OFFSET ;
96+ } else if ((addr >= FSL_MEM_M7_DTCM_BEGIN ) && (addr <= FSL_MEM_M7_DTCM_END ))
8097 {
81- dest = addr + FSL_MEM_M7_TCM_OFFSET ;
98+ dest = addr + FSL_MEM_M7_DTCM_OFFSET ;
8299 }
83100#endif
84101 else
@@ -96,10 +113,14 @@ static inline uint32_t MEMORY_ConvertMemoryMapAddress(uint32_t addr, mem_directi
96113 dest = addr - FSL_MEM_M33_TCM_OFFSET ;
97114 }
98115#elif (__CORTEX_M == 7U )
99- if ((addr >= (FSL_MEM_M7_TCM_BEGIN + FSL_MEM_M7_TCM_OFFSET )) &&
100- (addr <= (FSL_MEM_M7_TCM_END + FSL_MEM_M7_TCM_OFFSET )))
116+ if ((addr >= (FSL_MEM_M7_ITCM_BEGIN + FSL_MEM_M7_ITCM_OFFSET )) &&
117+ (addr <= (FSL_MEM_M7_ITCM_END + FSL_MEM_M7_ITCM_OFFSET )))
118+ {
119+ dest = addr - FSL_MEM_M7_ITCM_OFFSET ;
120+ } else if ((addr >= (FSL_MEM_M7_DTCM_BEGIN + FSL_MEM_M7_DTCM_OFFSET )) &&
121+ (addr <= (FSL_MEM_M7_DTCM_END + FSL_MEM_M7_DTCM_OFFSET )))
101122 {
102- dest = addr - FSL_MEM_M7_TCM_OFFSET ;
123+ dest = addr - FSL_MEM_M7_DTCM_OFFSET ;
103124 }
104125#endif
105126 else
0 commit comments