K10 SRAM size

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

K10 SRAM size

959 Views
LPs
Contributor III

Hi all,

  I found something that is not OK for me on Kinetis K10.

I'm using a kinetis MK10DX256ZVLQ10 and the manual says that it has 64Kb of SRAM.

In the manual is wrote that that size is the total RAM available.

Due to my linker script error, my application is using 128K from 0x1FFF0000 to 0x2000FFFF.

The thing that is not OKis that the application is working and I don't know if is only lucky or if there is 64Kb x2 block.

As the manual says the SRAM for this microcontroller has to be from 0x1FFF8000 to 20007FFF.

Is it a manual error?

Labels (1)
6 Replies

552 Views
Hui_Ma
NXP TechSupport
NXP TechSupport

Hi

MK10DX256ZVLQ10 SRAM size is 64KB, please refer below picture about SRAM memory map, which should be from from 0x1FFF8000 to 20007FFF.

SRAM_L & SRAM_U split address is fixed to 0x20000000.

mk10 SRAM.jpg


Wish it helps.

Best regards,
Ma Hui

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

552 Views
LPs
Contributor III

Hi guys,

I have a complete knowledge about the memory organization and the memory map of this PCU MK10DX256ZVLQ10.

What I mean is that it's more than one year that I'm using this PCU and I have produced thousand of devices where the firmware works mapping on 128k from 0x1FFF_0000 to 0x2000_0000 as SRAM-L and from 0x2000_FFFF as SRAM-U and it works always correctly.

Moreover, with the debugger I'm able to see all the 128k mapped SRAM. The font of the application are mapped from 0x1FFF_1000 (that are, in theory, out from the 64k available).

So my question is...is it possible that this PCU is always equipped with 128k SRAM because of freescale does not want to produce two different silicons, providing guarantee just on the declared 64 SRAM (as in other case INTEL did with Pentium II cache)?

Thank you,

Luca

0 Kudos

552 Views
perlam_i_au
Senior Contributor I

At this moment there is not any register of erratas related to this situation, I suggest you to enter a Service Request and ask for any change or errata for you specific part marking device.

0 Kudos

552 Views
mjbcswitzerland
Specialist V

Hi

I recommend doing the following test:

Using a debugger, write a value to the address 0x1fff0000 - if it reads back the same value there is SRAM there

Check the address 0x1fff8000 - if the value follows the value that you wrote to 0x1fff0000 it is being mirrored and there is 64k (but being written/read at different locations)

You can repeat at 0x20007ff0 and 0x2000fff0 (for example).

Normally there will be an access error generated when reading/writing outside fo the SRAM area but maybe there is a difference in your device

If you can write/read without mirroring effect you really have 128k SRAM.

If mirroring is taking place the code will probably still be able to run as long as it doesn't use more that 64k (since its static variables are probably starting at 0x1fff0000 and its stack using the 0x2000ffff area (which mirror to 0x1fff8000 and 0x20007fff respecively and so don't corrupt each other).

Regards

Mark

552 Views
LPs
Contributor III

I already did that test.

I have some variables placed at 0x1FFF0400. Are fonts and I know that works because of chars are showed wll on display.

Than, cna be the manual error or is the block of 512 and 256 CPUs the same and Freescale doesn't block the access to the not declared SRAM?

0 Kudos

552 Views
mjbcswitzerland
Specialist V

Maybe the device has the wrong part number stamped on it?

Check the register SIM_SOPT1 (RAM_SIZE) to see whether that agrees.

Since you probably chose the part with 64k because you won't need more I would just set the linker script up for 64k and then it doesn't matter.

Regards

Mark

0 Kudos