cancel
Showing results for 
Search instead for 
Did you mean: 

What is the difference off-chip and on-chip?

Carter Lee
Associate III
Posted on January 02, 2018 at 14:24

Hi.

I'm confused that KEIL MDK has 2 options as the below,

One is off-chip

0690X00000609JQQAY.png

The other is

0690X00000609JpQAI.png

I'm confused that what is the difference between Off-chip and On-chip?

#cortex-m3 #mdk #keil-mdk5
1 ACCEPTED SOLUTION

Accepted Solutions
Andrew Neil
Evangelist
Posted on January 02, 2018 at 14:34

'On-Chip' means literally what it says - the memory is on the chip!

to spell it out, the memory is integrated onto the same chip - ie, the same piece of silicon - as the CPU and its peripherals.

So, conversely, 'Off Chip' means that the memory is not on the same chip as the CPU. Thus the memory is external to the IC.

View solution in original post

8 REPLIES 8
Andrew Neil
Evangelist
Posted on January 02, 2018 at 14:34

'On-Chip' means literally what it says - the memory is on the chip!

to spell it out, the memory is integrated onto the same chip - ie, the same piece of silicon - as the CPU and its peripherals.

So, conversely, 'Off Chip' means that the memory is not on the same chip as the CPU. Thus the memory is external to the IC.

Posted on January 02, 2018 at 14:58

Thanks Could you let me know what is the No Init check box?

Posted on January 02, 2018 at 16:01

It allows different memory regions to be defined, these may be physically non-contiguous, and of varying access speed.

NO INIT - Doesn't initialize, don't use for variables you expect to have initial content, ie float pi = 3.14f;

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Posted on January 02, 2018 at 15:10

Have you tried pressing the 'Help' button?

See also: 

http://www.keil.com/support/man/docs/uv4/uv4_dg_adstarg.htm

 
Posted on January 02, 2018 at 18:26

Clive One wrote:

NO INIT ... don't use for variables you expect to have initial content, ie float pi = 3.14f;

Also means that statics without initialisation won't be zeroed.

This is useful if you want data to survive a reset; eg, if you have some sort of 'non-volatile' RAM ...

Posted on January 03, 2018 at 01:46

I have one more question,

I'm not sure whether do they work as the same or not, if I set the ROM1 : 0x01000000 or IROM1 :

0x01000000 ?

Posted on January 03, 2018 at 03:33

They would be very similar, if not identical, review the documentation, experiment and review the output.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Posted on January 03, 2018 at 09:33

That's really a question for Keil.

As

Turvey.Clive.002

‌ says, it's unlikely to make any difference.

As he said earlier, it's there to allow you to assign stuff to different memory types when you have specific reasons to do so; eg, because your particular hardware design has different types of memory available.

Remember that Keil is just a software tool.