This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F2800137:从自构建引导加载程序跳转到应用程序

Guru**** 657930 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1294451/tms320f2800137-jumping-from-self-built-bootloader-to-application

器件型号:TMS320F2800137

我有一个自构建的引导加载程序、它存储在地址0x08000至0x082000。 这还在0x08000处包含 codestartbranch 汇编对象。

我也在0x082000至0x092000中执行应用。 引导加载程序有一些简单的代码、可使绿色 LED 闪烁4次。 此应用具有可无限期闪烁红灯的简单代码。

我正尝试在引导加载程序闪烁四次后从引导加载程序跳到应用程序。 当我直接跳转至_c_int100时、可以这样做。 当我跳转至0x082000时、这不起作用、该文件应该是 codestartbranch 汇编文件。

如果我理解正确,这个 codestartbranch 应该会跳转至应用程序_c_int100函数,而这个函数又会转至应用程序的 main()。

这两个项目都是单独的项目、具有单独的链接器文件。

我猜跳至_c_int100的地址不是很好的做法。 那么、如何将此修复到类似0x082000 (codestartbranch 所在的位置)的问题上。

在应用程序的标头中、我添加了一个应用程序的起始地址。 引导加载程序将跳转到的地址。 因此、我不能对_c_int00函数进行硬编码。

请参阅下面的引导加载程序链接器

/*
//###########################################################################
//
// FILE:	F2800137_flash_lnk.cmd
//
// TITLE:	Linker Command File For F2800137 Device
//
//###########################################################################
*/

MEMORY
{
/* --------- RAM sectors ---------- */
   /* Not sure what this is reserved for :/ */
   BOOT_RSVD        : origin = 0x00000002, length = 0x00000126

   RAMM0            : origin = 0x00000128, length = 0x000002D8
   RAMM1            : origin = 0x00000400, length = 0x000003F8

   /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */
   RAMM1_RSVD       : origin = 0x000007F8, length = 0x00000008

   RAMLS0           : origin = 0x00008000, length = 0x00002000
   RAMLS1           : origin = 0x0000A000, length = 0x00001FF8

   /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */
   RAMLS1_RSVD      : origin = 0x0000BFF8, length = 0x00000008

   RESET            : origin = 0x003FFFC0, length = 0x00000002

   /* --------- FLASH sectors ---------- */
   /* Application memory sections */
   /* Begin section called in the Boot ROM code, do NOT change the origin! */
   BEGIN							: origin = 0x080000, length = 0x0002
   BOOTLOADER_HEADERDATA			: origin = 0x080002, length = 0x00FE
   BOOTLOADER_SECTION_FLASH_1_7		: origin = 0x080100, length = 0x1F00	/* 7,936 words */

   /* Application memory (Section 8 to and with 71) */
   APPLICATION_BEGIN				: origin = 0x082000, length = 0x0002
   APPLICATION_HEADERDATA			: origin = 0x082002, length = 0x00FE
   APPLICATION_SECTION_FLASH_8_71	: origin = 0x082100, length = 0xFF00	/* 65,280 words */

	/* Reserved for FAST estimator in application */
   FLASH_BANK0_SEC_72_79_80_87  : origin = 0x092000, length = 0x4000

   FLASH_BANK0_SEC_88      : origin = 0x096000, length = 0x0380	// 77 to 111 are unused (24,576 words)
   FLASH_BANK0_SEC_89      : origin = 0x096400, length = 0x0380
   FLASH_BANK0_SEC_90      : origin = 0x096800, length = 0x0380
   FLASH_BANK0_SEC_91      : origin = 0x096C00, length = 0x0380
   FLASH_BANK0_SEC_92      : origin = 0x097000, length = 0x0380
   FLASH_BANK0_SEC_93      : origin = 0x097400, length = 0x0380
   FLASH_BANK0_SEC_94      : origin = 0x097800, length = 0x0380
   FLASH_BANK0_SEC_95      : origin = 0x097C00, length = 0x0380
   FLASH_BANK0_SEC_96      : origin = 0x098080, length = 0x0380
   FLASH_BANK0_SEC_97      : origin = 0x098480, length = 0x0380
   FLASH_BANK0_SEC_98      : origin = 0x098880, length = 0x0380
   FLASH_BANK0_SEC_99      : origin = 0x098C80, length = 0x0380
   FLASH_BANK0_SEC_100     : origin = 0x099080, length = 0x0380
   FLASH_BANK0_SEC_101     : origin = 0x099480, length = 0x0380
   FLASH_BANK0_SEC_102     : origin = 0x099880, length = 0x0380
   FLASH_BANK0_SEC_103     : origin = 0x099C80, length = 0x0380
   FLASH_BANK0_SEC_104_111 : origin = 0x09A000, length = 0x2000

   /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */
   FLASH_BANK0_SEC_127_RSVD : origin = 0x0A0FF0, length = 0x0010
}

SECTIONS
{
	codestart        : > BEGIN, ALIGN(8)

	.text            : > BOOTLOADER_SECTION_FLASH_1_7, ALIGN(8)

	.cinit           : > BOOTLOADER_SECTION_FLASH_1_7, ALIGN(8)
	.switch          : > BOOTLOADER_SECTION_FLASH_1_7, ALIGN(8)

	.reset           : > RESET,  TYPE = DSECT /* not used, */

	.stack           : > RAMM1

	.bss             : > RAMLS0
	.bss:output      : > RAMLS0
	.init_array      : > BOOTLOADER_SECTION_FLASH_1_7, ALIGN(8)
	.const           : > BOOTLOADER_SECTION_FLASH_1_7, ALIGN(8)
	.data            : > RAMLS0
	.sysmem          : > RAMLS0
	.bss:cio         : > RAMLS0

	/* User defined sections */
	/* Used by file version.h */
	applicationHeader	: > APPLICATION_HEADERDATA
	applicationStart	: > APPLICATION_SECTION_FLASH_8_71, RUN_START(applicationStartAddress)
  	bootloaderHeader	: > BOOTLOADER_HEADERDATA
	bootloaderStart		: > BOOTLOADER_SECTION_FLASH_1_7, RUN_START(bootloaderStartAddress)

    /*  Allocate IQ math areas: */
	IQmath           : > RAMLS1
	IQmathTables     : > RAMLS1

	.TI.ramfunc      : LOAD = BOOTLOADER_SECTION_FLASH_1_7,
                      RUN = RAMLS0,
                      LOAD_START(RamfuncsLoadStart),
                      LOAD_SIZE(RamfuncsLoadSize),
                      LOAD_END(RamfuncsLoadEnd),
                      RUN_START(RamfuncsRunStart),
                      RUN_SIZE(RamfuncsRunSize),
                      RUN_END(RamfuncsRunEnd),
                       ALIGN(8)
}

请参阅下面的应用链接器

/*
//###########################################################################
//
// FILE:	F2800137_flash_lnk.cmd
//
// TITLE:	Linker Command File For F2800137 Device
//
//###########################################################################
*/

MEMORY
{
/* --------- RAM sectors ---------- */
   /* Not sure what this is reserved for :/ */
   BOOT_RSVD        : origin = 0x00000002, length = 0x00000126

   RAMM0            : origin = 0x00000128, length = 0x000002D8
   RAMM1            : origin = 0x00000400, length = 0x000003F8

   /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */
   RAMM1_RSVD       : origin = 0x000007F8, length = 0x00000008

   RAMLS0           : origin = 0x00008000, length = 0x00002000
   RAMLS1           : origin = 0x0000A000, length = 0x00001FF8

   /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */
   RAMLS1_RSVD      : origin = 0x0000BFF8, length = 0x00000008

   RESET            : origin = 0x003FFFC0, length = 0x00000002

   /* --------- FLASH sectors ---------- */
   /* Application memory sections */
   /* Begin section called in the Boot ROM code, do NOT change the origin! */
   BEGIN							: origin = 0x080000, length = 0x0002
   BOOTLOADER_HEADERDATA			: origin = 0x080002, length = 0x00FE
   BOOTLOADER_SECTION_FLASH_1_7		: origin = 0x080100, length = 0x1F00	/* 7,936 words */

   /* Application memory (Section 8 to and with 71) */
   APPLICATION_BEGIN				: origin = 0x082000, length = 0x0002
   APPLICATION_HEADERDATA			: origin = 0x082002, length = 0x00FE
   APPLICATION_SECTION_FLASH_8_71	: origin = 0x082100, length = 0xFF00	/* 65,280 words */

	/* Reserved for FAST estimator in application */
   FLASH_BANK0_SEC_72_79_80_87  : origin = 0x092000, length = 0x4000

   FLASH_BANK0_SEC_88      : origin = 0x096000, length = 0x0380	// 77 to 111 are unused (24,576 words)
   FLASH_BANK0_SEC_89      : origin = 0x096400, length = 0x0380
   FLASH_BANK0_SEC_90      : origin = 0x096800, length = 0x0380
   FLASH_BANK0_SEC_91      : origin = 0x096C00, length = 0x0380
   FLASH_BANK0_SEC_92      : origin = 0x097000, length = 0x0380
   FLASH_BANK0_SEC_93      : origin = 0x097400, length = 0x0380
   FLASH_BANK0_SEC_94      : origin = 0x097800, length = 0x0380
   FLASH_BANK0_SEC_95      : origin = 0x097C00, length = 0x0380
   FLASH_BANK0_SEC_96      : origin = 0x098080, length = 0x0380
   FLASH_BANK0_SEC_97      : origin = 0x098480, length = 0x0380
   FLASH_BANK0_SEC_98      : origin = 0x098880, length = 0x0380
   FLASH_BANK0_SEC_99      : origin = 0x098C80, length = 0x0380
   FLASH_BANK0_SEC_100     : origin = 0x099080, length = 0x0380
   FLASH_BANK0_SEC_101     : origin = 0x099480, length = 0x0380
   FLASH_BANK0_SEC_102     : origin = 0x099880, length = 0x0380
   FLASH_BANK0_SEC_103     : origin = 0x099C80, length = 0x0380
   FLASH_BANK0_SEC_104_111 : origin = 0x09A000, length = 0x2000

   /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */
   FLASH_BANK0_SEC_127_RSVD : origin = 0x0A0FF0, length = 0x0010
}

SECTIONS
{
   codestartapplication        : > APPLICATION_BEGIN, ALIGN(8)

   .text            : > APPLICATION_SECTION_FLASH_8_71, ALIGN(8)

   .cinit           : > APPLICATION_SECTION_FLASH_8_71, ALIGN(8)
   .switch          : > APPLICATION_SECTION_FLASH_8_71, ALIGN(8)

   .reset           : > RESET,  TYPE = DSECT /* not used, */

   .stack           : > RAMM1

   .bss             : > RAMLS0
   .bss:output      : > RAMLS0
   .init_array      : > APPLICATION_SECTION_FLASH_8_71, ALIGN(8)
   .const           : > APPLICATION_SECTION_FLASH_8_71, ALIGN(8)
   .data            : > RAMLS0
   .sysmem          : > RAMLS0
   .bss:cio         : > RAMLS0


   .TI.ramfunc      : LOAD = APPLICATION_SECTION_FLASH_8_71,
                      RUN = RAMLS0,
                      LOAD_START(RamfuncsLoadStart),
                      LOAD_SIZE(RamfuncsLoadSize),
                      LOAD_END(RamfuncsLoadEnd),
                      RUN_START(RamfuncsRunStart),
                      RUN_SIZE(RamfuncsRunSize),
                      RUN_END(RamfuncsRunEnd),
                       ALIGN(8)

	/* User defined sections */
	/* Used by file version.h */
	applicationHeader	: > APPLICATION_HEADERDATA
	applicationStart	: > APPLICATION_BEGIN, RUN_START(applicationStartAddress)
  	bootloaderHeader	: > BOOTLOADER_HEADERDATA, TYPE = NOLOAD
	bootloaderStart		: > BOOTLOADER_SECTION_FLASH_1_7, RUN_START(bootloaderStartAddress), TYPE = NOLOAD

    fastCode 		: > FLASH_BANK0_SEC_72_79_80_87
    {
         --library=fast_full_lib.lib (.text)
    }

    /*  Allocate IQ math areas: */
   IQmath           : > RAMLS1
   IQmathTables     : > RAMLS1
}

查看代码(正常工作)以跳转到以下应用。

#define StartApp (void (*)(void))(0x00082a19) //location off application _c_int00

int System_handle(void)
{
    static int i;
    for(; i < 9; i++){
        System_handleActivityLED();
    }

    (*StartApp)();

    // We should never get here
    return 1;
}

如需确保、请参阅下面应用的映射文件、

******************************************************************************
             TMS320C2000 Linker PC v22.6.0                     
******************************************************************************
>> Linked Mon Nov 20 16:05:18 2023

OUTPUT FILE NAME:   <Betronic_Motorcontroller_Gen5.out>
ENTRY POINT SYMBOL: "code_start_application"  address: 00082000


MEMORY CONFIGURATION

         name            origin    length      used     unused   attr    fill
----------------------  --------  ---------  --------  --------  ----  --------
  BOOT_RSVD             00000002   00000126  00000000  00000126  RWIX
  RAMM0                 00000128   000002d8  00000000  000002d8  RWIX
  RAMM1                 00000400   000003f8  00000200  000001f8  RWIX
  RAMM1_RSVD            000007f8   00000008  00000000  00000008  RWIX
  ADCARESULT            00000b00   00000018  00000000  00000018  RWIX
  ADCCRESULT            00000b40   00000018  00000000  00000018  RWIX
  CPUTIMER0             00000c00   00000008  00000000  00000008  RWIX
  CPUTIMER1             00000c08   00000008  00000000  00000008  RWIX
  CPUTIMER2             00000c10   00000008  00000000  00000008  RWIX
  PIECTRL               00000ce0   0000001a  00000000  0000001a  RWIX
  PIEVECTTABLE          00000d00   00000200  00000000  00000200  RWIX
  EPWM1                 00004000   00000100  00000000  00000100  RWIX
  EPWM2                 00004100   00000100  00000000  00000100  RWIX
  EPWM3                 00004200   00000100  00000000  00000100  RWIX
  EPWM4                 00004300   00000100  00000000  00000100  RWIX
  EPWM5                 00004400   00000100  00000000  00000100  RWIX
  EPWM6                 00004500   00000100  00000000  00000100  RWIX
  EPWM7                 00004600   00000100  00000000  00000100  RWIX
  EQEP1                 00005100   00000040  00000000  00000040  RWIX
  ECAP1                 00005200   00000020  00000000  00000020  RWIX
  ECAP2                 00005240   00000020  00000000  00000020  RWIX
  CMPSS1                00005500   00000040  00000000  00000040  RWIX
  CMPSSLITE2            00005540   00000040  00000000  00000040  RWIX
  CMPSSLITE3            00005580   00000040  00000000  00000040  RWIX
  CMPSSLITE4            000055c0   00000040  00000000  00000040  RWIX
  SPIA                  00006100   00000010  00000000  00000010  RWIX
  WD                    00007000   0000002c  00000000  0000002c  RWIX
  NMIINTRUPT            00007060   00000010  00000000  00000010  RWIX
  XINT                  00007070   0000000c  00000000  0000000c  RWIX
  SCIA                  00007200   00000010  00000000  00000010  RWIX
  SCIB                  00007210   00000010  00000000  00000010  RWIX
  SCIC                  00007220   00000010  00000000  00000010  RWIX
  I2CA                  00007300   00000022  00000000  00000022  RWIX
  I2CB                  00007340   00000022  00000000  00000022  RWIX
  ADCA                  00007400   00000080  00000000  00000080  RWIX
  ADCC                  00007500   00000080  00000000  00000080  RWIX
  INPUTXBAR             00007900   00000020  00000000  00000020  RWIX
  XBAR                  00007920   00000020  00000000  00000020  RWIX
  SYNCSOC               00007940   00000006  00000000  00000006  RWIX
  EPWMXBAR              00007a00   00000040  00000000  00000040  RWIX
  OUTPUTXBAR            00007a80   00000040  00000000  00000040  RWIX
  GPIOCTRL              00007c00   00000200  00000000  00000200  RWIX
  GPIODATA              00007f00   00000040  00000000  00000040  RWIX
  GPIODATAREAD          00007f80   00000010  00000000  00000010  RWIX
  RAMLS0                00008000   00002000  000000d8  00001f28  RWIX
  RAMLS1                0000a000   00001ff8  00000000  00001ff8  RWIX
  RAMLS1_RSVD           0000bff8   00000008  00000000  00000008  RWIX
  CANA                  00048000   00000200  00000000  00000200  RWIX
  DEVCFG                0005d000   000001ac  00000000  000001ac  RWIX
  CLKCFG                0005d200   00000100  00000000  00000100  RWIX
  CPUSYS                0005d300   00000100  00000000  00000100  RWIX
  SYSSTATUS             0005d400   00000040  00000000  00000040  RWIX
  ANALOGSUBSYS          0005d700   0000012a  00000000  0000012a  RWIX
  DCC0                  0005e700   00000038  00000000  00000038  RWIX
  EPG1                  0005ec00   00000050  00000000  00000050  RWIX
  EPG1MUX               0005ecd0   00000010  00000000  00000010  RWIX
  DCSMZ1                0005f000   0000003e  00000000  0000003e  RWIX
  DCSMZ2                0005f080   0000003e  00000000  0000003e  RWIX
  DCSMCOMMON            0005f0c0   00000040  00000000  00000040  RWIX
  MEMCFG                0005f400   000000c0  00000000  000000c0  RWIX
  ACCESSPROTECTION      0005f500   0000003e  00000000  0000003e  RWIX
  MEMORYERROR           0005f540   00000040  00000000  00000040  RWIX
  TESTERROR             0005f590   00000010  00000000  00000010  RWIX
  FLASH0CTRL            0005f800   00000182  00000000  00000182  RWIX
  FLASH0ECC             0005fb00   00000028  00000000  00000028  RWIX
  DCSMZ1OTP             00078000   00000020  00000000  00000020  RWIX
  DCSMZ2OTP             00078200   00000020  00000000  00000020  RWIX
  BEGIN                 00080000   00000002  00000000  00000002  RWIX
  BOOTLOADER_HEADERDATA 00080002   000000fe  00000028  000000d6  RWIX
  BOOTLOADER_SECTION_FL 00080100   00001f00  00000000  00001f00  RWIX
  APPLICATION_BEGIN     00082000   00000002  00000002  00000000  RWIX
  APPLICATION_HEADERDAT 00082002   000000fe  00000028  000000d6  RWIX
  APPLICATION_SECTION_F 00082100   0000ff00  00000c86  0000f27a  RWIX
  FLASH_BANK0_SEC_72_79 00092000   00004000  00000000  00004000  RWIX
  FLASH_BANK0_SEC_88    00096000   00000380  00000000  00000380  RWIX
  FLASH_BANK0_SEC_89    00096400   00000380  00000000  00000380  RWIX
  FLASH_BANK0_SEC_90    00096800   00000380  00000000  00000380  RWIX
  FLASH_BANK0_SEC_91    00096c00   00000380  00000000  00000380  RWIX
  FLASH_BANK0_SEC_92    00097000   00000380  00000000  00000380  RWIX
  FLASH_BANK0_SEC_93    00097400   00000380  00000000  00000380  RWIX
  FLASH_BANK0_SEC_94    00097800   00000380  00000000  00000380  RWIX
  FLASH_BANK0_SEC_95    00097c00   00000380  00000000  00000380  RWIX
  FLASH_BANK0_SEC_96    00098080   00000380  00000000  00000380  RWIX
  FLASH_BANK0_SEC_97    00098480   00000380  00000000  00000380  RWIX
  FLASH_BANK0_SEC_98    00098880   00000380  00000000  00000380  RWIX
  FLASH_BANK0_SEC_99    00098c80   00000380  00000000  00000380  RWIX
  FLASH_BANK0_SEC_100   00099080   00000380  00000000  00000380  RWIX
  FLASH_BANK0_SEC_101   00099480   00000380  00000000  00000380  RWIX
  FLASH_BANK0_SEC_102   00099880   00000380  00000000  00000380  RWIX
  FLASH_BANK0_SEC_103   00099c80   00000380  00000000  00000380  RWIX
  FLASH_BANK0_SEC_104_1 0009a000   00002000  00000000  00002000  RWIX
  FLASH_BANK0_SEC_127_R 000a0ff0   00000010  00000000  00000010  RWIX
  RESET                 003fffc0   00000002  00000000  00000002  RWIX


SECTION ALLOCATION MAP

 output                                  attributes/
section   page    origin      length       input sections
--------  ----  ----------  ----------   ----------------
codestartapplication 
*          0    00082000    00000002     
                  00082000    00000002     f280013x_codestartbranch_application.obj (codestartapplication)

.text      0    000821d0    000009d1     
                  000821d0    0000013e     driverlib.lib : sysctl.obj (.text:SysCtl_setClock)
                  0008230e    00000104     device.obj (.text)
                  00082412    000000ea     driverlib.lib : sysctl.obj (.text:SysCtl_isPLLValid)
                  000824fc    000000a3                   : gpio.obj (.text:GPIO_setAnalogMode)
                  0008259f    00000088     rts2800_fpu32_eabi.lib : fs_div28.asm.obj (.text)
                  00082627    00000073     driverlib.lib : sysctl.obj (.text:DCC_setCounterSeeds)
                  0008269a    00000065                   : sysctl.obj (.text:SysCtl_getClock)
                  000826ff    00000052                   : gpio.obj (.text:GPIO_setPadConfig)
                  00082751    00000045                   : sysctl.obj (.text:SysCtl_pollX1Counter)
                  00082796    00000042                   : sysctl.obj (.text:SysCtl_selectOscSource)
                  000827d8    0000003d                   : interrupt.obj (.text:Interrupt_initModule)
                  00082815    0000003d                   : sysctl.obj (.text:SysCtl_selectXTAL)
                  00082852    00000031                   : gpio.obj (.text:GPIO_setDirectionMode)
                  00082883    0000002e     rts2800_fpu32_eabi.lib : copy_decompress_lzss.c.obj (.text:decompress:lzss)
                  000828b1    0000002b                            : autoinit.c.obj (.text:__TI_auto_init_nobinit_nopinit)
                  000828dc    00000029                            : exit.c.obj (.text)
                  00082905    00000028     System.obj (.text)
                  0008292d    00000024     driverlib.lib : sysctl.obj (.text:DCC_enableSingleShotMode)
                  00082951    00000020                   : sysctl.obj (.text:SysCtl_selectXTALSingleEnded)
                  00082971    0000001e                   : sysctl.obj (.text:DCC_setCounter0ClkSource)
                  0008298f    0000001e                   : sysctl.obj (.text:DCC_setCounter1ClkSource)
                  000829ad    0000001e                   : interrupt.obj (.text:Interrupt_initVectorTable)
                  000829cb    0000001d     rts2800_fpu32_eabi.lib : memcpy.c.obj (.text)
                  000829e8    0000001a     driverlib.lib : sysctl.obj (.text:SysCtl_getLowSpeedClock)
                  00082a02    00000017                   : sysctl.obj (.text:SysCtl_enablePeripheral)
                  00082a19    00000017     rts2800_fpu32_eabi.lib : boot28.asm.obj (.text)
                  00082a30    00000016     driverlib.lib : sysctl.obj (.text:DCC_disableDoneSignal)
                  00082a46    00000016                   : interrupt.obj (.text:Interrupt_defaultHandler)
                  00082a5c    00000016                   : sysctl.obj (.text:SysCtl_setIntOSC2_Mode)
                  00082a72    00000015                   : sysctl.obj (.text:DCC_clearDoneFlag)
                  00082a87    00000015                   : sysctl.obj (.text:DCC_clearErrorFlag)
                  00082a9c    00000015                   : sysctl.obj (.text:DCC_disableErrorSignal)
                  00082ab1    00000014                   : sysctl.obj (.text:DCC_disableModule)
                  00082ac5    00000014                   : sysctl.obj (.text:DCC_enableModule)
                  00082ad9    00000014                   : gpio.obj (.text:GPIO_isPinValid)
                  00082aed    00000014                   : sysctl.obj (.text:SysCtl_setPLLSysClk)
                  00082b01    00000010                   : sysctl.obj (.text:DCC_isBaseValid)
                  00082b11    00000010                   : flash.obj (.text:Flash_isCtrlBaseValid)
                  00082b21    00000010                   : flash.obj (.text:Flash_isECCBaseValid)
                  00082b31    0000000d                   : interrupt.obj (.text:Interrupt_disableGlobal)
                  00082b3e    0000000c     rts2800_fpu32_eabi.lib : args_main.c.obj (.text)
                  00082b4a    0000000b     driverlib.lib : sysctl.obj (.text:SysCtl_isMCDClockFailureDetected)
                  00082b55    0000000a                   : sysctl.obj (.text:ASysCtl_getExtROscStatus)
                  00082b5f    0000000a                   : interrupt.obj (.text:Interrupt_illegalOperationHandler)
                  00082b69    0000000a                   : interrupt.obj (.text:Interrupt_nmiHandler)
                  00082b73    00000009     rts2800_fpu32_eabi.lib : _lock.c.obj (.text)
                  00082b7c    00000008                            : copy_decompress_none.c.obj (.text:decompress:none)
                  00082b84    00000008     f280013x_codestartbranch_application.obj (.text)
                  00082b8c    00000007     driverlib.lib : sysctl.obj (.text:SysCtl_resetMCD)
                  00082b93    00000006     FirmwareHeader.obj (.text)
                  00082b99    00000005     main.obj (.text)
                  00082b9e    00000002     rts2800_fpu32_eabi.lib : pre_init.c.obj (.text)
                  00082ba0    00000001                            : startup.c.obj (.text)

.cinit     0    00082d80    00000014     
                  00082d80    00000009     (.cinit..data.load) [load image, compression = lzss]
                  00082d89    00000001     --HOLE-- [fill = 0]
                  00082d8a    00000004     (__TI_handler_table)
                  00082d8e    00000002     --HOLE-- [fill = 0]
                  00082d90    00000004     (__TI_cinit_table)

.reset     0    003fffc0    00000000     DSECT

.stack     0    00000400    00000200     UNINITIALIZED
                  00000400    00000200     --HOLE--

.init_array 
*          0    00082100    00000000     UNINITIALIZED

.data      0    000080ce    0000000a     UNINITIALIZED
                  000080ce    00000006     rts2800_fpu32_eabi.lib : exit.c.obj (.data)
                  000080d4    00000002                            : _lock.c.obj (.data:_lock)
                  000080d6    00000002                            : _lock.c.obj (.data:_unlock)

.const     0    00082ba8    000001d3     
                  00082ba8    0000009c     driverlib.lib : flash.obj (.const:.string)
                  00082c44    0000009b                   : gpio.obj (.const:.string)
                  00082cdf    00000001     --HOLE-- [fill = 0]
                  00082ce0    0000009b                   : sysctl.obj (.const:.string)

bootloaderHeader 
*          0    00080002    00000028     NOLOAD SECTION
                  00080002    00000028     FirmwareHeader.obj (bootloaderHeader)

bootloaderStart 
*          0    00080100    00000000     NOLOAD SECTION

applicationStart 
*          0    00082000    00000000     UNINITIALIZED

applicationHeader 
*          0    00082002    00000028     
                  00082002    00000028     FirmwareHeader.obj (applicationHeader)

.TI.ramfunc 
*          0    00082100    000000ce     RUN ADDR = 00008000
                  00082100    00000036     driverlib.lib : flash.obj (.TI.ramfunc:Flash_initModule)
                  00082136    00000022                   : flash.obj (.TI.ramfunc:Flash_setWaitstates)
                  00082158    00000018                   : flash.obj (.TI.ramfunc:Flash_disableCache)
                  00082170    00000017                   : flash.obj (.TI.ramfunc:Flash_disablePrefetch)
                  00082187    00000017                   : flash.obj (.TI.ramfunc:Flash_enableCache)
                  0008219e    00000016                   : flash.obj (.TI.ramfunc:Flash_enableECC)
                  000821b4    00000016                   : flash.obj (.TI.ramfunc:Flash_enablePrefetch)
                  000821ca    00000004                   : sysctl.obj (.TI.ramfunc)

MODULE SUMMARY

       Module                                     code   ro data   rw data
       ------                                     ----   -------   -------
    .\Framework\FirmwareHeader\
       FirmwareHeader.obj                         6      40        40     
    +--+------------------------------------------+------+---------+---------+
       Total:                                     6      40        40     
                                                                          
    .\HardwareAbstractionLayer\DeviceSupport\F2800137\device\
       device.obj                                 260    0         0      
    +--+------------------------------------------+------+---------+---------+
       Total:                                     260    0         0      
                                                                          
    .\Linker\
       f280013x_codestartbranch_application.obj   10     0         0      
    +--+------------------------------------------+------+---------+---------+
       Total:                                     10     0         0      
                                                                          
    .\Source\
       main.obj                                   5      0         0      
    +--+------------------------------------------+------+---------+---------+
       Total:                                     5      0         0      
                                                                          
    .\Source\System\
       System.obj                                 40     0         0      
    +--+------------------------------------------+------+---------+---------+
       Total:                                     40     0         0      
                                                                          
    C:/ti/c2000/C2000Ware_MotorControl_SDK_5_00_00_00/c2000ware/driverlib/f280013x/driverlib/ccs/Debug/driverlib.lib
       sysctl.obj                                 1360   155       0      
       flash.obj                                  436    156       0      
       gpio.obj                                   314    155       0      
       interrupt.obj                              146    0         0      
    +--+------------------------------------------+------+---------+---------+
       Total:                                     2256   466       0      
                                                                          
    C:\ti\ccs1230\ccs\tools\compiler\ti-cgt-c2000_22.6.0.LTS\lib\rts2800_fpu32_eabi.lib
       fs_div28.asm.obj                           136    0         0      
       exit.c.obj                                 41     0         6      
       copy_decompress_lzss.c.obj                 46     0         0      
       autoinit.c.obj                             43     0         0      
       memcpy.c.obj                               29     0         0      
       boot28.asm.obj                             23     0         0      
       _lock.c.obj                                9      0         4      
       args_main.c.obj                            12     0         0      
       copy_decompress_none.c.obj                 8      0         0      
       pre_init.c.obj                             2      0         0      
       startup.c.obj                              1      0         0      
    +--+------------------------------------------+------+---------+---------+
       Total:                                     350    0         10     
                                                                          
       Stack:                                     0      0         512    
       Linker Generated:                          0      17        0      
    +--+------------------------------------------+------+---------+---------+
       Grand Total:                               2927   523       562    


LINKER GENERATED COPY TABLES

__TI_cinit_table @ 00082d90 records: 1, size/record: 4, table size: 4
	.data: load addr=00082d80, load size=00000009 bytes, run addr=000080ce, run size=0000000a bytes, compression=lzss


LINKER GENERATED HANDLER TABLE

__TI_handler_table @ 00082d8a records: 2, size/record: 2, table size: 4
	index: 0, handler: __TI_decompress_lzss
	index: 1, handler: __TI_decompress_none


GLOBAL DATA SYMBOLS: SORTED BY DATA PAGE

address     data page           name
--------    ----------------    ----
00000400      10 (00000400)     __stack

000080ce     203 (000080c0)     __TI_enable_exit_profile_output
000080d0     203 (000080c0)     __TI_cleanup_ptr
000080d2     203 (000080c0)     __TI_dtors_ptr
000080d4     203 (000080c0)     _lock
000080d6     203 (000080c0)     _unlock


GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name 

page  address   name                                     
----  -------   ----                                     
0     000828dc  C$$EXIT                                  
0     00082321  Device_enableAllPeripherals              
0     00082392  Device_init                              
0     00082311  Device_initGPIO                          
0     00082b96  FirmwareHeader_getApplicationFirmwareInfo
0     00082b93  FirmwareHeader_getBootloaderFirmwareInfo 
0     00008000  Flash_initModule                         
0     000824fc  GPIO_setAnalogMode                       
0     00082852  GPIO_setDirectionMode                    
0     000826ff  GPIO_setPadConfig                        
0     00082a46  Interrupt_defaultHandler                 
0     00082b5f  Interrupt_illegalOperationHandler        
0     000827d8  Interrupt_initModule                     
0     000829ad  Interrupt_initVectorTable                
0     00082b69  Interrupt_nmiHandler                     
0     000821ce  RamfuncsLoadEnd                          
abs   000000ce  RamfuncsLoadSize                         
0     00082100  RamfuncsLoadStart                        
0     000080ce  RamfuncsRunEnd                           
abs   000000ce  RamfuncsRunSize                          
0     00008000  RamfuncsRunStart                         
0     000080ca  SysCtl_delay                             
0     0008269a  SysCtl_getClock                          
0     000829e8  SysCtl_getLowSpeedClock                  
0     00082412  SysCtl_isPLLValid                        
0     00082796  SysCtl_selectOscSource                   
0     00082815  SysCtl_selectXTAL                        
0     00082951  SysCtl_selectXTALSingleEnded             
0     000821d0  SysCtl_setClock                          
0     00082927  System_handle                            
0     00082905  System_init                              
0     00082d90  __TI_CINIT_Base                          
0     00082d94  __TI_CINIT_Limit                         
0     00082d94  __TI_CINIT_Warm                          
0     00082d8a  __TI_Handler_Table_Base                  
0     00082d8e  __TI_Handler_Table_Limit                 
0     00000600  __TI_STACK_END                           
abs   00000200  __TI_STACK_SIZE                          
0     000828b1  __TI_auto_init_nobinit_nopinit           
0     000080d0  __TI_cleanup_ptr                         
0     00082883  __TI_decompress_lzss                     
0     00082b7c  __TI_decompress_none                     
0     000080d2  __TI_dtors_ptr                           
0     000080ce  __TI_enable_exit_profile_output          
abs   ffffffff  __TI_pprof_out_hndl                      
abs   ffffffff  __TI_prof_data_size                      
abs   ffffffff  __TI_prof_data_start                     
0     0008259f  __c28xabi_divf                           
n/a   UNDEFED   __c_args__                               
0     0008230e  __error__                                
0     00000400  __stack                                  
0     00082b3e  _args_main                               
0     00082a19  _c_int00                                 
0     000080d4  _lock                                    
0     00082b7b  _nop                                     
0     00082b77  _register_lock                           
0     00082b73  _register_unlock                         
0     00082ba0  _system_post_cinit                       
0     00082b9e  _system_pre_init                         
0     000080d6  _unlock                                  
0     000828dc  abort                                    
0     00082000  applicationStartAddress                  
0     00080100  bootloaderStartAddress                   
0     00082000  code_start_application                   
0     000828de  exit                                     
0     00082b99  main                                     
0     000829cb  memcpy                                   


GLOBAL SYMBOLS: SORTED BY Symbol Address 

page  address   name                                     
----  -------   ----                                     
0     00000400  __stack                                  
0     00000600  __TI_STACK_END                           
0     00008000  Flash_initModule                         
0     00008000  RamfuncsRunStart                         
0     000080ca  SysCtl_delay                             
0     000080ce  RamfuncsRunEnd                           
0     000080ce  __TI_enable_exit_profile_output          
0     000080d0  __TI_cleanup_ptr                         
0     000080d2  __TI_dtors_ptr                           
0     000080d4  _lock                                    
0     000080d6  _unlock                                  
0     00080100  bootloaderStartAddress                   
0     00082000  applicationStartAddress                  
0     00082000  code_start_application                   
0     00082100  RamfuncsLoadStart                        
0     000821ce  RamfuncsLoadEnd                          
0     000821d0  SysCtl_setClock                          
0     0008230e  __error__                                
0     00082311  Device_initGPIO                          
0     00082321  Device_enableAllPeripherals              
0     00082392  Device_init                              
0     00082412  SysCtl_isPLLValid                        
0     000824fc  GPIO_setAnalogMode                       
0     0008259f  __c28xabi_divf                           
0     0008269a  SysCtl_getClock                          
0     000826ff  GPIO_setPadConfig                        
0     00082796  SysCtl_selectOscSource                   
0     000827d8  Interrupt_initModule                     
0     00082815  SysCtl_selectXTAL                        
0     00082852  GPIO_setDirectionMode                    
0     00082883  __TI_decompress_lzss                     
0     000828b1  __TI_auto_init_nobinit_nopinit           
0     000828dc  C$$EXIT                                  
0     000828dc  abort                                    
0     000828de  exit                                     
0     00082905  System_init                              
0     00082927  System_handle                            
0     00082951  SysCtl_selectXTALSingleEnded             
0     000829ad  Interrupt_initVectorTable                
0     000829cb  memcpy                                   
0     000829e8  SysCtl_getLowSpeedClock                  
0     00082a19  _c_int00                                 
0     00082a46  Interrupt_defaultHandler                 
0     00082b3e  _args_main                               
0     00082b5f  Interrupt_illegalOperationHandler        
0     00082b69  Interrupt_nmiHandler                     
0     00082b73  _register_unlock                         
0     00082b77  _register_lock                           
0     00082b7b  _nop                                     
0     00082b7c  __TI_decompress_none                     
0     00082b93  FirmwareHeader_getBootloaderFirmwareInfo 
0     00082b96  FirmwareHeader_getApplicationFirmwareInfo
0     00082b99  main                                     
0     00082b9e  _system_pre_init                         
0     00082ba0  _system_post_cinit                       
0     00082d8a  __TI_Handler_Table_Base                  
0     00082d8e  __TI_Handler_Table_Limit                 
0     00082d90  __TI_CINIT_Base                          
0     00082d94  __TI_CINIT_Limit                         
0     00082d94  __TI_CINIT_Warm                          
abs   000000ce  RamfuncsLoadSize                         
abs   000000ce  RamfuncsRunSize                          
abs   00000200  __TI_STACK_SIZE                          
abs   ffffffff  __TI_pprof_out_hndl                      
abs   ffffffff  __TI_prof_data_size                      
abs   ffffffff  __TI_prof_data_start                     
n/a   UNDEFED   __c_args__                               

[67 symbols]

如有任何需要说明、请联系!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    有人可以帮助我解决这个问题吗?

    提前感谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我非常希望有人能在这个问题上给予我支持。

    现在它使发展变得比它所应有的更加困难。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    更新;我自己设法解决了这个问题。

    当然、我使用的收割台注入工具必须提供一个地址。 此设置加数以字节为单位、而不是以字为单位。 因此、标头将两个位置设置为尽早、从而覆盖前2个存储器地址上的 codestart 汇编代码、又称为4个字节、而不是2个字节。 将标头移位两个字节(总共4个字节)后、引导加载程序将成功跳转到应用程序!