有关于Cpress CYBL10162芯片开发工程中导入到Keil中想利用J-Link进行调试,但是遇到了一些麻烦,就是在BootAsmGnu中汇编实现上不知道怎么回事,一直报错,希望有大佬能够回答一下。同样的,我没有MIni,所以选择使用J-Link去通过Keil来进行相应的调试,不知道可不可行,看了网上有些介绍,发现并不能行得通,有了解的大佬也帮帮忙。下面是KEIL报错:
Generated_Source\PSoC4\CyBootAsmGnu.s(15): error: A1158E: Illegal line start, should be blank
Generated_Source\PSoC4\CyBootAsmGnu.s(16): error: A1167E: Invalid line start
Generated_Source\PSoC4\CyBootAsmGnu.s(17): error: A1167E: Invalid line start
Generated_Source\PSoC4\CyBootAsmGnu.s(18): error: A1167E: Invalid line start
Generated_Source\PSoC4\CyBootAsmGnu.s(36): error: A1167E: Invalid line start
Generated_Source\PSoC4\CyBootAsmGnu.s(37): error: A1163E: Unknown opcode CyDelayCycles , expecting opcode or Macro
Generated_Source\PSoC4\CyBootAsmGnu.s(38): error: A1163E: Unknown opcode CyDelayCycles, , expecting opcode or Macro
Generated_Source\PSoC4\CyBootAsmGnu.s(39): error: A1163E: Unknown opcode CyDelayCycles, , expecting opcode or Macro
Generated_Source\PSoC4\CyBootAsmGnu.s(40): error: A1167E: Invalid line start
Generated_Source\PSoC4\CyBootAsmGnu.s(41): error: A1167E: Invalid line start
Generated_Source\PSoC4\CyBootAsmGnu.s(42): error: A1105E: Area directive missing
Generated_Source\PSoC4\CyBootAsmGnu.s(42): warning: A1088W: Faking declaration of area AREA |$$$$$$$|
Generated_Source\PSoC4\CyBootAsmGnu.s(45): error: A1167E: Invalid line start
Generated_Source\PSoC4\CyBootAsmGnu.s(47): error: A1167E: Invalid line start
Generated_Source\PSoC4\CyBootAsmGnu.s(49): error: A1167E: Invalid line start
Generated_Source\PSoC4\CyBootAsmGnu.s(50): error: A1167E: Invalid line start
Generated_Source\PSoC4\CyBootAsmGnu.s(55): error: A1167E: Invalid line start
Generated_Source\PSoC4\CyBootAsmGnu.s(58): error: A1167E: Invalid line start
Generated_Source\PSoC4\CyBootAsmGnu.s(86): error: A1163E: Unknown opcode CyEnterCriticalSection , expecting opcode or Macro
Generated_Source\PSoC4\CyBootAsmGnu.s(87): error: A1163E: Unknown opcode CyEnterCriticalSection, , expecting opcode or Macro
Generated_Source\PSoC4\CyBootAsmGnu.s(88): error: A1163E: Unknown opcode CyEnterCriticalSection, , expecting opcode or Macro
Generated_Source\PSoC4\CyBootAsmGnu.s(89): error: A1167E: Invalid line start
Generated_Source\PSoC4\CyBootAsmGnu.s(90): error: A1167E: Invalid line start
Generated_Source\PSoC4\CyBootAsmGnu.s(94): error: A1167E: Invalid line start
Generated_Source\PSoC4\CyBootAsmGnu.s(115): error: A1163E: Unknown opcode CyExitCriticalSection , expecting opcode or Macro
Generated_Source\PSoC4\CyBootAsmGnu.s(116): error: A1163E: Unknown opcode CyExitCriticalSection, , expecting opcode or Macro
Generated_Source\PSoC4\CyBootAsmGnu.s(117): error: A1163E: Unknown opcode CyExitCriticalSection, , expecting opcode or Macro
下面是部分代码:
.syntax unified
.text
.thumb
.include "cyfittergnu.inc"
.align 3 /* Align to 8 byte boundary (2^n) */
.global CyDelayCycles
.func CyDelayCycles, CyDelayCycles
.type CyDelayCycles, %function
.thumb_func
CyDelayCycles: /* cycles bytes */
ADDS r0, r0, #2 /* 1 2 Round to nearest multiple of 4 */
LSRS r0, r0, #2 /* 1 2 Divide by 4 and set flags */
BEQ CyDelayCycles_done /* 2 2 Skip if 0 */
.IF ((CYIPBLOCK_m0s8cpussv2_VERSION == 1) && ((CYIPBLOCK_m0s8srssv2_VERSION == 1) || (CYIPBLOCK_m0s8srssv2_VERSION == 2)))
/* If device is using CPUSSv2 and SRSSv2 leave loop unaligned */
.ELSE
NOP /* 1 2 Loop alignment padding */
.ENDIF
CyDelayCycles_loop:
SUBS r0, r0, #1 /* 1 2 Decrement counter */
BNE CyDelayCycles_loop /* 3 2 3 CPU cycles (if branche is taken)*/
NOP /* 1 2 Loop alignment padding */
NOP /* 1 2 Loop alignment padding */
CyDelayCycles_done:
NOP /* 1 2 Loop alignment padding */
BX lr /* 3 2 */
.endfunc
希望不要沉贴。。。
|