在线时间514 小时
UID2025756
注册时间2013-7-16
NXP金币0
该用户从未签到
金牌会员
 
- 积分
- 9267
- 最后登录
- 1970-1-1
|
发表于 2013-11-20 11:24:28
|
显示全部楼层
回复:K61 EEPROM问题
回复第 8 楼 于2013-11-19 18:00:35发表:
关于.icf的问题:
因为我想在KINETIS512_SC_flexmem.zip 提供的源码下修改为在我的芯片运行的问题,所以需要修改一下.icf文件。但是有点问题不能理解。在256KB_Pflash_256KB_Dflash.icf里面有如下代码:
/*###ICF### Section handled by ICF editor, don't touch! ****/
/*-Editor annotation file-*/
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */
/*-Specials-*/
define symbol __ICFEDIT_intvec_start__ = 0x00000000;
/*-Memory Regions-*/
define symbol __ICFEDIT_region_ROM_start__ = 0x00000000;
define symbol __ICFEDIT_region_ROM_end__ = 0x00040000;
define symbol __ICFEDIT_region_RAM_start__ = 0x1FFF8410;
define symbol __ICFEDIT_region_RAM_end__ = 0x20000000;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x1000;
define symbol __ICFEDIT_size_heap__ = 0x200;
/**** End of ICF editor section. ###ICF###*/
define symbol __region_FlexNVM_start__ = 0x10000000;
define symbol __region_FlexNVM_end__ = 0x10040000;
define symbol __region_RAM2_start__ = 0x20000000;
define symbol __region_RAM2_end__ = 0x20008000;
define exported symbol __VECTOR_TABLE = 0x00000000;
define exported symbol __VECTOR_RAM = 0x1fff0000;
define exported symbol __BOOT_STACK_ADDRESS = __region_RAM2_end__ - 8; //0x2000FFF8;
define symbol __code_start__ = 0x00000410;
……………………………….
……………………………..
问题是:按照上面代码,该芯片应该是256K的PFLASH,256K的DFLASH,64K的RAM,但是从上面配置看__VECTOR_RAM = 0x1fff0000,__ICFEDIT_region_RAM_start__ = 0x1FFF8410,
__ICFEDIT_region_RAM_end__ = 0x20000000。按照这样计算的话RAM1应该为
__ICFEDIT_region_RAM_end__ - __VECTOR_RAM +1 = 0x10000 这样的话上半个RAM就有64K,而下半个RAM
__region_RAM2_end__ - __region_RAM2_start__ = 0x8000 也由32K。
照这样子算来,明显RAM大小不对啊。
你好,你这样计算上半部分的RAM大小是错误的,上半部分应该SRAM_L: 0x1FFF8410 – 0x1FFF_FFFF,是小于32K的,
32K的SRAM地址是:SRAM_L: 0x1FFF_8000 – 0x1FFF_FFFF |
|