Part Number:TMS320F28335Other Parts Discussed in Thread:UNIFLASH
TI技术支持:
您好!为了维护28335的密码不被别人发现,我用uniflash工具同时烧写两个out文件,第一个out文件主要是解密,放在RAM空间,第二个out文件是应用程序和加密程序,放在flash空间,真正的烧写文件。
将两个文件同时加载在uniflash窗口,点击load images,显示Error! Overlapping segments at address 0xf000。但是程序里第二个文件我并没有用到这段空间,为什么还存在这种冲突?我把两个CMD文件附在下面,您帮我看看是什么地方的问题?或者是uniflash不支持这么做,但是我在论坛里有网友说只要段不冲突,是可以加载两个out文件的,况且我的两个out文件,一个是在RAM,一个是在Flash。
fusheng lu:
MEMORY { PAGE 0 :/* BEGIN is used for the "boot to SARAM" bootloader mode*/BEGIN: origin = 0x000000, length = 0x000002/* Boot to M0 will go here*/RAMM0: origin = 0x000050, length = 0x0003B0RAMLPROGRAM: origin = 0x00C000, length = 0x002000/* RAML1: origin = 0x009000, length = 0x001000*/RAML2: origin = 0x00A000, length = 0x001000RAML3: origin = 0x00B000, length = 0x001000ZONE7A: origin = 0x200000, length = 0x00FC00/* XINTF zone 7 - program space */CSM_RSVD: origin = 0x33FF80, length = 0x000076/* Part of FLASHA.Program with all 0x0000 when CSM is in use. */CSM_PWL: origin = 0x33FFF8, length = 0x000008/* Part of FLASHA.CSM password locations in FLASHA*/ADC_CAL: origin = 0x380080, length = 0x000009RESET: origin = 0x3FFFC0, length = 0x000002IQTABLES: origin = 0x3FE000, length = 0x000b50IQTABLES2: origin = 0x3FEB50, length = 0x00008cFPUTABLES: origin = 0x3FEBDC, length = 0x0006A0BOOTROM: origin = 0x3FF27C, length = 0x000D44PAGE 1 :/* BOOT_RSVD is used by the boot ROM for stack.*//* This section is only reserved to keep the BOOT ROM from*//* corrupting this area during the debug process*/BOOT_RSVD: origin = 0x000002, length = 0x00004E/* Part of M0, BOOT rom will use this for stack */RAMM1: origin = 0x000400, length = 0x000400/* on-chip RAM block M1 *//*RAML4: origin = 0x00C000, length = 0x001000RAML5: origin = 0x00D000, length = 0x001000*/RAMLDATA: origin = 0x00F000, length = 0x001000/*RAML7_RSV: origin = 0x00F000, length = 0x000020RAML7: origin = 0x00F020, length = 0x001000*/ZONE7B: origin = 0x20FC00, length = 0x000400/* XINTF zone 7 - data space */ }SECTIONS {/* Setup for "boot to SARAM" mode:The codestart section (found in DSP28_CodeStartBranch.asm)re-directs execution to the start of user code.*/codestart: > RAMLDATA,PAGE = 1ramfuncs: > RAMLDATA,PAGE = 1.text: > RAMLDATA,PAGE = 1.cinit: > RAMLDATA,PAGE = 1.pinit: > RAMLDATA,PAGE = 1 /*5*/.stack: > RAMM1,PAGE = 1.ebss: > RAMLDATA,PAGE = 1.econst: > RAMLDATA,PAGE = 1.esysmem: > RAMM1,PAGE = 1/*IQmath: > RAML7,PAGE = 1IQmathTables: > IQTABLES,PAGE = 0, TYPE = NOLOADUncomment the section below if calling the IQNexp() or IQexp()functions from the IQMath.lib library in order to utilize therelevant IQ Math table in Boot ROM (This saves space and Boot ROMis 1 wait-state). If this section is not uncommented, IQmathTables2will be loaded into other memory (SARAM, Flash, etc.) and will takeup space, but 0 wait-state is possible.*/.reset: > RESET,PAGE = 0, TYPE = DSECT /* not used*/csm_rsvd: > CSM_RSVDPAGE = 0, TYPE = DSECT /* not used for SARAM examples */csmpasswds: > CSM_PWLPAGE = 0, TYPE = DSECT /* not used for SARAM examples *//* Allocate ADC_cal function (pre-programmed by factory into TI reserved memory) */.adc_cal: load = ADC_CAL,PAGE = 0, TYPE = NOLOAD}
,
fusheng lu:
MEMORY { PAGE 0:/* Program Memory *//* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE1 for data allocation */ZONE0: origin = 0x004000, length = 0x001000/* XINTF zone 0 *//* RAML0: origin = 0x008000, length = 0x002000*//* on-chip RAM block L0 */RAMPROGRAM: origin = 0x008000, length = 0x002000/*RAML1: origin = 0x009000, length = 0x001000/* on-chip RAM block L1 *//*RAML2: origin = 0x00A000, length = 0x001000///* on-chip RAM block L2 *//*RAML3: origin = 0x00B000, length = 0x001000// /* on-chip RAM block L3 */ZONE6A: origin = 0x100000, length = 0x00FC00/* XINTF zone 6 - program space*/ZONE7: origin = 0x200000, length = 0x100000/* XINTF zone 7*/FLASHH: origin = 0x300000, length = 0x008000/* on-chip FLASH */FLASHG: origin = 0x308000, length = 0x008000/* on-chip FLASH */FLASHF: origin = 0x310000, length = 0x008000/* on-chip FLASH */FLASHE: origin = 0x318000, length = 0x008000/* on-chip FLASH */FLASHD: origin = 0x320000, length = 0x008000/* on-chip FLASH */FLASHC: origin = 0x328000, length = 0x008000/* on-chip FLASH *//*FLASHA: origin = 0x338000, length = 0x007F80*/ /* on-chip FLASH */CSM_RSVD: origin = 0x33FF80, length = 0x000076/* Part of FLASHA.Program with all 0x0000 when CSM is in use. */BEGIN: origin = 0x33FFF6, length = 0x000002/* Part of FLASHA.Used for "boot to Flash" bootloader mode. */CSM_PWL: origin = 0x33FFF8, length = 0x000008/* Part of FLASHA.CSM password locations in FLASHA */OTP: origin = 0x380400, length = 0x000400/* on-chip OTP */ADC_CAL: origin = 0x380080, length = 0x000009/* ADC_cal function in Reserved memory */IQTABLES: origin = 0x3FE000, length = 0x000b50/* IQ Math Tables in Boot ROM */IQTABLES2: origin = 0x3FEB50, length = 0x00008c/* IQ Math Tables in Boot ROM */FPUTABLES: origin = 0x3FEBDC, length = 0x0006A0/* FPU Tables in Boot ROM */ROM: origin = 0x3FF27C, length = 0x000D44/* Boot ROM */RESET: origin = 0x3FFFC0, length = 0x000002/* part of boot ROM*/VECTORS: origin = 0x3FFFC2, length = 0x00003E/* part of boot ROM*/PAGE 1 :/* Data Memory *//* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE0 for program allocation *//* Registers remain on PAGE1*/BOOT_RSVD: origin = 0x000000, length = 0x000050/* Part of M0, BOOT rom will use this for stack */RAMM0: origin = 0x000050, length = 0x0003B0/* on-chip RAM block M0 *//*RAMM1: origin = 0x000400, length = 0x000400/* on-chip RAM block M1 */RAMDATA: origin = 0x00A000, length = 0x002000/* RAML4: origin = 0x00C000, length = 0x001000/* on-chip RAM block L1 *//* RAML5: origin = 0x00D000, length = 0x001000/* on-chip RAM block L1 *//*RAML6: origin = 0x00E000, length = 0x001000/* on-chip RAM block L1 *//*RAML7: origin = 0x00E000, length = 0x001000 *//* on-chip RAM block L1 */ZONE6B: origin = 0x10FC00, length = 0x000400/* XINTF zone 6 - data space */FLASHB: origin = 0x330000, length = 0x008000/* on-chip FLASH */ }/* Allocate sections to memory blocks.Note:codestart user defined section in DSP28_CodeStartBranch.asm used to redirect codeexecution when booting to flashramfuncsuser defined section to store functions that will be copied from Flash into RAM */SECTIONS {/* Allocate program areas: */.cinit: > FLASHFPAGE = 0/*origin = 0x310000, length = 0x008000 */.pinit: > FLASHF,PAGE = 0.text: > FLASHFPAGE = 0codestart: > BEGINPAGE = 0/**/ramfuncs: LOAD = FLASHG,/*origin = 0x308000, length = 0x008000*/RUN = RAMPROGRAM,/*RAML0: origin = 0x00C000, length = 0x001000 */LOAD_START(_RamfuncsLoadStart),LOAD_END(_RamfuncsLoadEnd),RUN_START(_RamfuncsRunStart),PAGE = 0csmpasswds: > CSM_PWLPAGE = 0csm_rsvd: > CSM_RSVDPAGE = 0/* Allocate uninitalized data sections: */.stack: > RAMDATAPAGE = 1/*origin = 0x00D000, length = 0x001000*/.ebss: > RAMDATAPAGE = 1/*origin = 0x00E000, length = 0x001000*/.esysmem: > RAMDATAPAGE = 1/*origin = 0x00D000, length = 0x001000*/.cio: > RAMDATA,PAGE = 1/*origin = 0x00E000, length = 0x001000*//* Initalized sections go in Flash *//* For SDFlash to program these, they must be allocated to page 0 */.econst: > FLASHFPAGE = 0/*origin = 0x310000, length = 0x008000 */.switch: > FLASHFPAGE = 0/* Allocate IQ math areas: */IQmath: > FLASHEPAGE = 0/*origin = 0x318000, length = 0x008000*/IQmathTables: > IQTABLES,PAGE = 0, TYPE = NOLOADIQmathTables2: > IQTABLES2, PAGE = 0, TYPE = NOLOADFPUmathTables: > FPUTABLES, PAGE = 0, TYPE = NOLOAD/* Allocate DMA-accessible RAM sections: *//* DMARAML4: > RAML4,PAGE = 1DMARAML5: > RAML5,PAGE = 1DMARAML6: > RAML6,PAGE = 1DMARAML7: > RAML7,PAGE = 1*//* Allocate 0x400 of XINTF Zone 6 to storing data */ZONE6DATA: > ZONE6B,PAGE = 1/* .reset is a standard section used by the compiler.It contains the *//* the address of the start of _c_int00 for C Code./*/* When using the boot ROM this section and the CPU vector *//* table is not needed.Thus the default type is set here to*//* DSECT*//* .reset: > RESET,PAGE = 0, TYPE = DSECTvectors: > VECTORSPAGE = 0, TYPE = DSECT*//* Allocate ADC_cal function (pre-programmed by factory into TI reserved memory) */.adc_cal: load = ADC_CAL,PAGE = 0, TYPE = NOLOAD}
,
Green Deng:
抱歉,着实没有试过同时烧写两个out文件的,不知道能否实现。你有参考的论坛哪个帖子方便发过来看看吗?
另外,我的理解,你的其中一个.out文件就是为了解密准备的?这样的话为何不直接使用uniflash上自带的加密解密工具呢?这样不管是开发还是使用都方便很多,效果也是一样的。
,
fusheng lu:
uniflash确实可以解密,但是这个密码是显性的,操作的人也能看见。还有一种隐性加密解密,操作的人不知道密码。
下面这个帖子介绍了两种方法max.book118.com/…/103682256.shtm