AnsweredAssumed Answered

MC9S12C32 Memory Allocation

Question asked by BOB PAEHR on Feb 6, 2017
Latest reply on Feb 8, 2017 by ZhangJennie

This is a follow-up question to the question I asked about using an MC9S12C64 in place of an MC9S12C32:

     https://community.nxp.com/message/866581

I was looking into possibly staying with the C32 device.  When I looked at the .MAP file for my most recent project that uses a C32 device, and which I want to build-upon/add-to, I found that there are routines/objects that occupy the memory from 0x4000 to about 0x4315 (see attached .MAP file, in the "OBJECT LIST SORTED BY ADDRESS" section). 

1) What I don't understand is that the C32 device is not supposed to have viable Flash EEPROM for the 0x4000 to 0x7FFF block of addresses.  How is this possible?  Is there some kind of mapping that is done to physically use a PPAGE bank from 0x8000 to 0xBFFF, such that physical address 0x8000 in my C32 device maps to 0x4000 in the memory map?  I've also attached my .PRM file, if that helps to explain where any cross-mapping is occurring, or for any other things that you can point to that describe why this appears to be this way.

2) ***IF*** my memory "usage" is now apparently "spilling over" into the 0x4000 bank (going up to around 0x4315), does that mean I currently have about (0x7FFF - 0x4315) bytes (or 0x3CEA (close to 15K) bytes) still available to me to use for expanded programming without running into any memory-requirement walls?

Thank you in advance for your time.

Bob

 

Original Attachment has been moved to: P&E_Multilink_CyclonePro_linker.prm.zip
Original Attachment has been moved to: P&E_Multilink_CyclonePro.map.zip

Outcomes