请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:CC3220S 客户在 CC3220S 上开发了一个次级引导加载程序、如所述的相关博文 SDK2.10、并且运行良好。 现在、该应用程序已使用 SDK6.10进行更新、但更新后的应用程序无法使用旧的引导加载程序。
新应用程序和旧应用程序都使用相同的 CMD 文件、如下所示。
/*
* Copyright (c) 2016, Texas Instruments Incorporated
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* * Neither the name of Texas Instruments Incorporated nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/*
* ======== CC3220S_LAUNCHXL.cmd ========
*/
/*
* The starting address of the application. Normally the interrupt vectors
* must be located at the beginning of the application.
*/
/*
#define SRAM_BASE 0x20004000
#define SRAM0_BASE 0x20000000
#define SRAM_BASE 0x2001E800
#define SRAM0_BASE 0x20000000
*/
//#define SRAM_BASE 0x20004000
#define SRAM_BASE 0x2001E800
#define SRAM0_BASE 0x20000000
--stack_size=1024 /* C stack is also used for ISR stack */
HEAPSIZE = 0x8000; /* Size of heap buffer used by HeapMem */
MEMORY
{
/*
SRAM0 (RWX) : origin = 0x20000000, length = 0x4000
SRAM (RWX) : origin = 0x20004000, length = 0x00040000 - 0x4000
SRAM0 (RWX) : origin = 0x2001A400, length = 0x4000
SRAM (RWX) : origin = 0x2001E400, length = 0x00025C00 - 0x4000
SRAM0 (RWX) : origin = 0x20004000, length = 0x4000
SRAM (RWX) : origin = 0x20008000, length = 0x00025C00
SRAM0 (RWX) : origin = 0x20000000, length = 0x4000
SRAM (RWX) : origin = 0x20008000, length = 0x00025C00
SRAM0 (RWX) : origin = 0x20000000, length = 0x4000
SRAM (RWX) : origin = 0x2001E800, length = 0x00040000 - 0x1E800
*/
SRAM0 (RWX) : origin = 0x20000000, length = 0x1E800
SRAM (RWX) : origin = 0x2001E800, length = 0x00040000 - 0x1E800
}
/* Section allocation in memory */
/*
SECTIONS
{
.text : > SRAM
.bss : > SRAM
.TI.ramfunc : > SRAM
.data : > SRAM
.const : > SRAM
.sysmem : > SRAM
.cinit : > SRAM
.pinit : > SRAM
.init_array : > SRAM
/* Heap buffer used by HeapMem
.priheap : {
__primary_heap_start__ = .;
. += HEAPSIZE;
__primary_heap_end__ = .;
} > SRAM align 8
.stack : > SRAM0(HIGH)
}
*/
SECTIONS
{
.intvecs: > SRAM_BASE
.init_array : > SRAM
.vtable : > SRAM
.text : > SRAM
.const : > SRAM
.cinit : > SRAM
.pinit : > SRAM
.data : > SRAM0
.bss : > SRAM0
.sysmem : > SRAM0
.priheap : {
__primary_heap_start__ = .;
. += HEAPSIZE;
__primary_heap_end__ = .;
} > SRAM align 8
.stack : > SRAM0(HIGH)
}
次级引导加载程序加载到0x20004000、应用程序从0x2001E800启动。 次级引导加载程序负责跳转到相关帖子中所述的应用程序。
使用默认 CMD 文件时、新应用可以在没有引导加载程序的情况下工作。 我想知道 SDK 更新之间是否存在可能导致此问题的更改?
此致、
水阳