For example: uint8_t Buffer [100], the Buffer can be from 0 x1ffff FFF0 beginning, to the end of the 0 x2000 0054?
The memory is 'contiguous enough', you just CANNOT allow a single transaction to attempt to span the boundary, i.e. mis-aligned access. If you attempt to read 32bits from 0x1FFFFFFF you will get a fault.
Hi Tooman Wang
In Kinetis MCU you can access (read/write) to memory in aligned 16 bits, what I mean, If your object is 8-bit length, then there is no problem. As long as you’re using unit8 there shouldn’t be problem, because you read/write bytes.
For more information you can check the following links that discuss about this topic:
https://mcuoneclipse.com/2013/07/10/freertos-heap-with-segmented-kinetis-k-sram/
Hope this helps
Jorge Alcala
MEMORY { m_interrupts (RX) : ORIGIN = 0x00000000, LENGTH = 0x000000F8 m_text (RX) : ORIGIN = 0x00000410, LENGTH = 0x0001FBF0 m_data (RW) : ORIGIN = 0x1FFFE000, LENGTH = 0x00002000 m_data_20000000 (RW) : ORIGIN = 0x20000000, LENGTH = 0x00002000 m_cfmprotrom (RX) : ORIGIN = 0x00000400, LENGTH = 0x00000010
If i difine like this :
MEMORY { m_interrupts (RX) : ORIGIN = 0x00000000, LENGTH = 0x000000F8 m_text (RX) : ORIGIN = 0x00000410, LENGTH = 0x0001FBF0 m_data (RW) : ORIGIN = 0x1FFFE000, LENGTH = 0x00004000 m_cfmprotrom (RX) : ORIGIN = 0x00000400, LENGTH = 0x00000010 If my application need 12K ram,Can my application run right?