我有一个自构建的引导加载程序、它存储在地址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]
如有任何需要说明、请联系!