What is non-banked memory?

cancel
Showing results for 
Search instead for 
Did you mean: 

What is non-banked memory?

Jump to solution
409 Views
Contributor II

Hello,

I am curious that what are the banked memory and non-banked memory?

As a result of my research, the banked memory is logical unit that can be accessed independently by a dividing the storage device.  

However, i didn't find any non-banked memory. I just found it to be a defined interrupt memory area.

So I am more curious about the non-banked memory and banked memory. 

0 Kudos
1 Solution
36 Views
NXP TechSupport
NXP TechSupport

Hi

NON banked memory can be accessed by 16bits address. For example below is nonbanked address:

RAM            0x2000 TO   0x3FFF;

EEPROM       0x0C00 TO   0x0FFF;

ROM_4000    0x4000 TO   0x7FFF;

ROM_C000    0xC000 TO   0xFEFF;

Some parts of an application must always be in non–banked memory, in particular:

  •      The prestart code (segment .init)
  •      The startup code (segment NON_BANKED) and the startup descriptor(s) (segment . startData)
  •      All runtime support routines (segment NON_BANKED)
  •      All interrupt handlers, because trap vectors are only 16 bits wide.
  •       RAM variables initialization values (segment .copy). There is a way to get copy down information stored in banked memory.

Have a great day,
Jun Zhang

 

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

 

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

View solution in original post

0 Kudos
7 Replies
37 Views
NXP TechSupport
NXP TechSupport

Hi

NON banked memory can be accessed by 16bits address. For example below is nonbanked address:

RAM            0x2000 TO   0x3FFF;

EEPROM       0x0C00 TO   0x0FFF;

ROM_4000    0x4000 TO   0x7FFF;

ROM_C000    0xC000 TO   0xFEFF;

Some parts of an application must always be in non–banked memory, in particular:

  •      The prestart code (segment .init)
  •      The startup code (segment NON_BANKED) and the startup descriptor(s) (segment . startData)
  •      All runtime support routines (segment NON_BANKED)
  •      All interrupt handlers, because trap vectors are only 16 bits wide.
  •       RAM variables initialization values (segment .copy). There is a way to get copy down information stored in banked memory.

Have a great day,
Jun Zhang

 

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

 

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

View solution in original post

0 Kudos
36 Views
Contributor II

Thanks you for reply my question.

I understood the example by explaining it. Thanks.

Have a happy day,

Ji Hyun.

0 Kudos
36 Views
NXP TechSupport
NXP TechSupport

You are welcome!

0 Kudos
36 Views
Senior Contributor IV

8 and 16-bit CPUs like S08 or other than S12Z S12's have 16-bits address pointer registers. This limits normal address space to 2^16 = 64k. What easily fits this 64k space could be nonbanked or nonpaged. To access more than 64k memory is organized into banks or pages. Some fraction of 64k space is page window, you switch page number to map different piece of memory to selected page window. This is banked or paged memory. And coming back to nonbanked/nonpaged def., more strictly it is part of memory which has no memory page windows and thus can be uniquely addressed by 16-bit (CPU) address.

0 Kudos
36 Views
Contributor II

Thanks comment my question.

I don't know if I understood well. So I have questions. 

Is it non-banked or non-paged to access memory space(64k)? And when accessing more than the space of memory, is it a banked or a paged memory?

Have a nice day,

Ji Hyun

0 Kudos
36 Views
Senior Contributor IV
  • Is it non-banked or non-paged to access memory space(64k)? And when accessing more than the space of memory, is it a banked or a paged memory?

Yes

0 Kudos
36 Views
Contributor II

Thanks you,

I understood about non-banked and banked.

Have a great day :smileyhappy:

Ji Hyun

0 Kudos