K70 internal RAM size

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

K70 internal RAM size

跳至解决方案
1,310 次查看
jeffgu
Contributor I

Can anyone tell me what is the size of K70 RAM. I got confused by 2 different explanation.

From the datasheet, it is said 128KB as pasted below:

捕获.JPG

Another way  is from icf file, from the file, it seems that it is 64KB.

MK70FN1M0_RAM.icf

/*-Memory Regions-*/

define symbol __ICFEDIT_region_ROM_start__   = 0x00000000;

define symbol __ICFEDIT_region_ROM_end__     = 0x0007FFFF;

define symbol __ICFEDIT_region_RAM_start__   = 0x20000000;

define symbol __ICFEDIT_region_RAM_end__     = 0x2000FFFF;

/*-Sizes-*/

define symbol __ICFEDIT_size_cstack__   = 0x4000;

define symbol __ICFEDIT_size_heap__     = 0x4000;

/**** End of ICF editor section. ###ICF###*/

So what is the real size?

Presently I'm usng the MK70FX512VMJ12.

标签 (1)
0 项奖励
回复
1 解答
1,146 次查看
mjbcswitzerland
Specialist V

Jeff

All K70s have 128k - to be absolutely sure, always check the orderable parts in the respective user's manual:

pastedImage_0.png

I don't know where you got the linker script file from but it is only allocating the RAM_U (0x20000000..0x2000ffff) and not RAM_L (0x1fff0000..0x1fffffff).

Generally

define symbol __ICFEDIT_region_RAM_start__   = 0x1fff0000;

define symbol __ICFEDIT_region_RAM_end__     = 0x2000FFFF;

is correct but it may be that only half of the RAM is being used due to worries about the fact that there is a restriction when accessing data in both RAM_L and RAM_U (burst accesses can't occur across the 0x20000000) but this is a very specific case and usually one can just use it as if it were a single block of memory.

Regards

Mark

Kinetis: µTasker Kinetis support

K70: µTasker Kinetis TWR-K70F120M support  / µTasker EMCRAFT K70F120M support

For the complete "out-of-the-box" Kinetis experience and faster time to market

在原帖中查看解决方案

0 项奖励
回复
2 回复数
1,147 次查看
mjbcswitzerland
Specialist V

Jeff

All K70s have 128k - to be absolutely sure, always check the orderable parts in the respective user's manual:

pastedImage_0.png

I don't know where you got the linker script file from but it is only allocating the RAM_U (0x20000000..0x2000ffff) and not RAM_L (0x1fff0000..0x1fffffff).

Generally

define symbol __ICFEDIT_region_RAM_start__   = 0x1fff0000;

define symbol __ICFEDIT_region_RAM_end__     = 0x2000FFFF;

is correct but it may be that only half of the RAM is being used due to worries about the fact that there is a restriction when accessing data in both RAM_L and RAM_U (burst accesses can't occur across the 0x20000000) but this is a very specific case and usually one can just use it as if it were a single block of memory.

Regards

Mark

Kinetis: µTasker Kinetis support

K70: µTasker Kinetis TWR-K70F120M support  / µTasker EMCRAFT K70F120M support

For the complete "out-of-the-box" Kinetis experience and faster time to market

0 项奖励
回复
1,146 次查看
jeffgu
Contributor I

Mark,

You completely help solved my question.

The icf file is from Freescale USB stack v4.1.1, not sure you have already updated it or not in 5.0 version. Thank you any way.

Jeff

0 项奖励
回复