Frankie 可否帮忙看看,链接文件这样理解对不对。这是YTC默认生成的MCAL链接文件。
假如就以默认链接做BOOT固件的化,用户APP有关链接文件的处理。
// 1-BVT: APP应该是不需要这段定义。
define exported symbol BVT_memory_start = 0x2000000;
define exported symbol BVT_memory_end = 33556479;
define region BVT = mem:[from BVT_memory_start to BVT_memory_end]; /*0x800*/
// 2-IVT:需偏移如+0x4000
define exported symbol IVT_memory_start = 0x2000800;
define exported symbol IVT_memory_end = 33557503;
define region IVT = mem:[from IVT_memory_start to IVT_memory_end]; /*1024*/
// 3-NC_TEXT:需偏移如+0x4000
define exported symbol NC_TEXT_memory_start = 0x2000c00;
define exported symbol NC_TEXT_memory_end = 33603583;
define region NC_TEXT = mem:[from NC_TEXT_memory_start to NC_TEXT_memory_end]; /*0xB400*/
// 4-TEXT:需偏移如+0x4000
define exported symbol TEXT_memory_start = 0x200c000;
define exported symbol TEXT_memory_end = 35651583;
define region TEXT = mem:[from TEXT_memory_start to TEXT_memory_end]; /*0x1F4000*/
// 5-dflash: 不需要偏移
define exported symbol FEE_memory_start = 0x6000000;
define exported symbol FEE_memory_end = 100925439;
define region FEE = mem:[from FEE_memory_start to FEE_memory_end]; /*0x40000*/
// 6-IVT_RAM,默认占用ITCM的最后1K,不需要偏移
define exported symbol IVT_RAM_memory_start = 0x0;
define exported symbol IVT_RAM_memory_end = 1023;
define region IVT_RAM = mem:[from IVT_RAM_memory_start to IVT_RAM_memory_end]; /*0x400*/
// 7-ITCM,不需要偏移
define exported symbol CODE_RAM_memory_start = 0x400;
define exported symbol CODE_RAM_memory_end = 32767;
define region CODE_RAM = mem:[from CODE_RAM_memory_start to CODE_RAM_memory_end]; /*0x7C00*/
// 8-DTCM,不需要偏移
define exported symbol D_RAM_memory_start = 0x20000000;
define exported symbol D_RAM_memory_end = 536997887;
define region D_RAM = mem:[from D_RAM_memory_start to D_RAM_memory_end]; /*0x1F000*/
// 7-STACK,默认占用DTCM的最后4K,不需要偏移
define exported symbol STACK_memory_start = 0x2001f000;
define exported symbol STACK_memory_end = 537001983;
define region STACK = mem:[from STACK_memory_start to STACK_memory_end]; /*4096*/
// 8-NC区,默认占用OCRAML的最后64K(开的好大),不需要偏移
define exported symbol NC_RAM_memory_start = 0x20020000;
define exported symbol NC_RAM_memory_end = 537067519;
define region NC_RAM = mem:[from NC_RAM_memory_start to NC_RAM_memory_end]; /*0x10000*/
因为这种方案是唯一选择,加密就在BOOT代码中做了。