K70 internal RAM size

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

K70 internal RAM size

ソリューションへジャンプ
1,311件の閲覧回数
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,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 件の賞賛
返信
2 返答(返信)
1,148件の閲覧回数
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,147件の閲覧回数
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 件の賞賛
返信