完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
;******************************************************************************
;* BOOT v4.6.4 * ;* Copyright (c) 1996-2010 Texas Instruments Incorporated * ;****************************************************************************** ;**************************************************************************** ;* BOOT.ASM ;* ;* THIS IS THE INITAL BOOT ROUtiNE FOR TMS470 C++ PROGRAMS. ;* IT MUST BE LINKED AND LOADED WITH ALL C++ PROGRAMS. ;* ;* THIS MODULE PERFORMS THE FOLLOWING ACTIONS: ;* 1) ALLOCATES THE STACK AND INITIALIZES THE STACK POINTER ;* 2) CALLS AUTO-INITIALIZATION ROUTINE ;* 3) CALLS THE FUNCTION MAIN TO START THE C++ PROGRAM ;* 4) CALLS THE STANDARD EXIT ROUTINE ;* ;* THIS MODULE DEFINES THE FOLLOWING GLOBAL SYMBOLS: ;* 1) __stack STACK MEMORY AREA ;* 2) _c_int00 BOOT ROUTINE ;* ;**************************************************************************** .if __TI_TMS470_V7M3__ .thumbfunc _c_int00 .else .armfunc _c_int00 .endif ;**************************************************************************** ; Accomodate different lowerd names in different ABIs ;**************************************************************************** .if __TI_EABI_ASSEMBLER .asg _args_main, ARGS_MAIN_RTN .asg exit, EXIT_RTN .asg main_func_sp, MAIN_FUNC_SP .elseif __TI_ARM9ABI_ASSEMBLER | .TMS470_32BIS .asg __args_main, ARGS_MAIN_RTN .asg _exit, EXIT_RTN .asg _main_func_sp, MAIN_FUNC_SP .else .asg $_args_main, ARGS_MAIN_RTN .asg $exit, EXIT_RTN .asg _main_func_sp, MAIN_FUNC_SP .endif .if .TMS470_16BIS ;**************************************************************************** ;* 16 BIT STATE BOOT ROUTINE * ;**************************************************************************** .if __TI_TMS470_V7M3__ .state16 .else .state32 .endif .global __stack ;*************************************************************** ;* DEFINE THE USER MODE STACK (DEFAULT SIZE IS 512) ;*************************************************************** __stack:.usect ".stack", 0, 4 .global _c_int00 ;*************************************************************** ;* FUNCTION DEF: _c_int00 ;*************************************************************** _c_int00: .asmfunc .if !__TI_TMS470_V7M3__ .if __TI_NEON_SUPPORT__ | __TI_VFP_SUPPORT__ ;*------------------------------------------------------ ;* SETUP PRIVILEGED AND USER MODE ACCESS TO COPROCESSORS ;* 10 AND 11, REQUIRED TO ENABLE NEON/VFP ;* COPROCESSOR ACCESS CONTROL REG ;* BITS [23:22] - CP11, [21:20] - CP10 ;* SET TO 0b11 TO ENABLE USER AND PRIV MODE ACCESS ;*------------------------------------------------------ MRC p15,#0x0,r0,c1,c0,#2 MOV r3,#0xf00000 ORR r0,r0,r3 MCR p15,#0x0,r0,c1,c0,#2 ;*------------------------------------------------------ ; SET THE EN BIT, FPEXC[30] TO ENABLE NEON AND VFP ;*------------------------------------------------------ MOV r0,#0x40000000 FMXR FPEXC,r0 .endif ;------------------------------------------------------ ;* SET TO USER MODE ;*------------------------------------------------------ MRS r0, cpsr BIC r0, r0, #0x1F ; CLEAR MODES ORR r0, r0, #0x10 ; SET USER MODE MSR cpsr_cf, r0 ;*------------------------------------------------------ ;* CHANGE TO 16 BIT STATE ;*------------------------------------------------------ ADD r0, pc, #1 BX r0 .state16 .endif ;*------------------------------------------------------ ;* INITIALIZE THE USER MODE STACK ;*------------------------------------------------------ LDR r0, c_stack MOV sp, r0 LDR r0, c_STACK_SIZE ADD sp, r0 ;*----------------------------------------------------- ;* ALIGN THE STACK TO 64-BITS IF EABI. ;*----------------------------------------------------- .if __TI_EABI_ASSEMBLER MOV r7, sp MOV r0, #0x07 BIC r7, r0 ; Clear upper 3 bits for 64-bit alignment. MOV sp, r7 .endif ;*----------------------------------------------------- ;* SAVE CURRENT STACK POINTER FOR SDP ANALYSIS ;*----------------------------------------------------- LDR r0, c_mf_sp MOV r7, sp STR r7, [r0] ;*------------------------------------------------------ ;* Perform all the required initilizations: ;* - Process BINIT Table ;* - Perform C auto initialization ;* - Call global constructors ;*------------------------------------------------------ BL __TI_auto_init ;*------------------------------------------------------ ;* CALL APPLICATION ;*------------------------------------------------------ BL ARGS_MAIN_RTN ;*------------------------------------------------------ ;* IF APPLICATION DIDN'T CALL EXIT, CALL EXIT(1) ;*------------------------------------------------------ MOV r0, #1 BL EXIT_RTN ;*------------------------------------------------------ ;* DONE, LOOP FOREVER ;*------------------------------------------------------ L1: B L1 .endasmfunc .else ; !.TMS470_16BIS ;**************************************************************************** ;* 32 BIT STATE BOOT ROUTINE * ;**************************************************************************** .global __stack ;*************************************************************** ;* DEFINE THE USER MODE STACK (DEFAULT SIZE IS 512) ;*************************************************************** __stack:.usect ".stack", 0, 4 .global _c_int00 ;*************************************************************** ;* FUNCTION DEF: _c_int00 ;*************************************************************** _c_int00: .asmfunc .if __TI_NEON_SUPPORT__ | __TI_VFP_SUPPORT__ ;*------------------------------------------------------ ;* SETUP PRIVILEGED AND USER MODE ACCESS TO COPROCESSORS ;* 10 AND 11, REQUIRED TO ENABLE NEON/VFP ;* COPROCESSOR ACCESS CONTROL REG ;* BITS [23:22] - CP11, [21:20] - CP10 ;* SET TO 0b11 TO ENABLE USER AND PRIV MODE ACCESS ;*------------------------------------------------------ MRC p15,#0x0,r0,c1,c0,#2 MOV r3,#0xf00000 ORR r0,r0,r3 MCR p15,#0x0,r0,c1,c0,#2 ;*------------------------------------------------------ ; SET THE EN BIT, FPEXC[30] TO ENABLE NEON AND VFP ;*------------------------------------------------------ MOV r0,#0x40000000 FMXR FPEXC,r0 .endif ;*------------------------------------------------------ ;* SET TO USER MODE ;*------------------------------------------------------ MRS r0, cpsr BIC r0, r0, #0x1F ; CLEAR MODES ORR r0, r0, #0x13 ; SET USER MODE MSR cpsr_cf, r0 ;*------------------------------------------------------ ;* INITIALIZE THE USER MODE STACK ;*------------------------------------------------------ LDR sp, c_stack LDR r0, c_STACK_SIZE ADD sp, sp, r0 ;*----------------------------------------------------- ;* ALIGN THE STACK TO 64-BITS IF EABI. ;*----------------------------------------------------- .if __TI_EABI_ASSEMBLER BIC sp, sp, #0x07 ; Clear upper 3 bits for 64-bit alignment. .endif ;*----------------------------------------------------- ;* SAVE CURRENT STACK POINTER FOR SDP ANALYSIS ;*----------------------------------------------------- LDR r0, c_mf_sp STR sp, [r0] ;*------------------------------------------------------ ;* Perform all the required initilizations: ;* - Process BINIT Table ;* - Perform C auto initialization ;* - Call global constructors ;*------------------------------------------------------ BL __TI_auto_init ;*------------------------------------------------------ ;* CALL APPLICATION ;*------------------------------------------------------ BL ARGS_MAIN_RTN ;*------------------------------------------------------ ;* IF APPLICATION DIDN'T CALL EXIT, CALL EXIT(1) ;*------------------------------------------------------ MOV R0, #1 BL EXIT_RTN ;*------------------------------------------------------ ;* DONE, LOOP FOREVER ;*------------------------------------------------------ L1: B L1 .endasmfunc .endif ; !.TMS470_16BIS ;*************************************************************** ;* CONSTANTS USED BY THIS MODULE ;*************************************************************** c_stack .long __stack c_STACK_SIZE .long __STACK_SIZE c_mf_sp .long MAIN_FUNC_SP .if __TI_EABI_ASSEMBLER .data .align 4 _stkchk_called: .field 0,32 .else .sect ".cinit" .align 4 .field 4,32 .field _stkchk_called+0,32 .field 0,32 .bss _stkchk_called,4,4 .symdepend ".cinit", ".bss" .symdepend ".cinit", ".text" .symdepend ".bss", ".text" .endif ;****************************************************** ;* UNDEFINED REFERENCES * ;****************************************************** .global _stkchk_called .global __STACK_SIZE .global ARGS_MAIN_RTN .global MAIN_FUNC_SP .global EXIT_RTN .global __TI_auto_init .end 编译出错,请问__TI_TMS470_V7M3__这些定义在那里有? "boot.asm", ERROR! at line 23: [E0004] Absolute, well-defined integer value expected .if __TI_TMS470_V7M3__ "boot.asm", ERROR! at line 177: [E0004] Absolute, well-defined integer value expected .if __TI_NEON_SUPPORT__ | __TI_VFP_SUPPORT__ "boot.asm", ERROR! at line 272: [E0002] Illegal mnemonic specified .symdepend ".cinit", ".bss" "boot.asm", ERROR! at line 273: [E0002] Illegal mnemonic specified .symdepend ".cinit", ".text" "boot.asm", ERROR! at line 274: [E0002] Illegal mnemonic specified .symdepend ".bss", ".text" "boot.asm", ERROR! at EOF: [E0300] The following symbols are undefined: 6 Assembly Errors, No Assembly Warnings __TI_TMS470_V7M3__ __TI_NEON_SUPPORT__ __TI_VFP_SUPPORT__ Errors in Source - Assembler Aborted |
|
相关推荐
4 个讨论
|
|
lifei639156 发表于 2020-4-22 07:19 在用ccs3.3编译TI的官方UBL例程时出现了与上面同样的错误: [E0004] Absolute, well-defined integer value expected .if __TI_TMS470_V7M3__ E0002] Illegal mnemonic specified .symdepend ".cinit", ".bss" 请问是什么问题导致的错误,该如何解决?谢谢! |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
549 浏览 0 评论
1613 浏览 0 评论
2047 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1513 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1337 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1757浏览 29评论
2781浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1724浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1634浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1645浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 05:57 , Processed in 0.807695 second(s), Total 56, Slave 45 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1803