"Unknown opcode, expecting opcode or Macro" in AREA statement

-2
SIM_SCGC5 EQU 0x40048038

GPIOB_PSOR EQU 0x400FF044
GPIOB_PCOR EQU 0x400FF048
GPIOB_PDDR EQU 0x400FF054
GPIOD_PDIR EQU 0x400FF0D0
GPIOD_PDDR EQU 0x400FF0D4

;inputs:

PORTD_PCR0 EQU 0x4004C000
PORTD_PCR2 EQU 0x4004C008

;outputs:

PORTB_PCR1 EQU 0x4004A004
PORTB_PCR2 EQU 0x4004A008
PORTB_PCR3 EQU 0x4004A00C

;input masks:

SEATSWITCH_MASK EQU 0x00000001
BELTSWITCH_MASK EQU 0x00000004

;output masks:



GREEN_MASK EQU 0x00000002
YELLOW_MASK EQU 0x00000004
FLRED_MASK EQU 0x00000008

;delay counter:

DELAY_COUNTER1 EQU 0x04000000
DELAY_COUNTER2 EQU 0x00020000

AREA asm_area, CODE, READONLY
EXPORT asm_main

asm_main
BL init_gpio

stateA

BL greenoff
BL yellowoff
BL flashingredoff

LDR R2,=SEATSWITCH_MASK
BL CHECK_INPUT
BEQ stateB
BNE stateA

stateB

BL greenoff



BL yellowon
BL flashingredoff

LDR R0,=DELAY_COUNTER1
BL delay

LDR R2,=SEATSWITCH_MASK
BL CHECK_INPUT
BNE stateA

LDR R2,=BELTSWITCH_MASK
BL CHECK_INPUT
BEQ stateD
BNE stateC

stateC

BL greenoff
BL yellowon
BL flashingredon

LDR R0,=DELAY_COUNTER2
BL delay
BL flashingredoff
LDR R0,=DELAY_COUNTER2
BL delay

LDR R2,=SEATSWITCH_MASK



BL CHECK_INPUT
BNE stateA

LDR R2,=BELTSWITCH_MASK
BL CHECK_INPUT
BEQ stateD

BNE stateC

stateD

BL greenon
BL yellowon
BL flashingredoff

LDR R2,=SEATSWITCH_MASK
BL CHECK_INPUT
BNE stateA

LDR R2,=BELTSWITCH_MASK
BL CHECK_INPUT
BNE stateB

BEQ stateD

greenon



LDR R0,=GPIOB_PSOR
LDR R1,[R0]
LDR R2,=GREEN_MASK
ORRS R1,R2
STR R1,[R0]
BX LR

greenoff

LDR R0,=GPIOB_PCOR
LDR R1,[R0]
LDR R2,=GREEN_MASK
ORRS R1,R2
STR R1,[R0]
BX LR

yellowon

LDR R0,=GPIOB_PSOR
LDR R1,[R0]
LDR R2,=YELLOW_MASK
ORRS R1,R2
STR R1,[R0]
BX LR

yellowoff

LDR R0,=GPIOB_PCOR
LDR R1,[R0]



LDR R2,=YELLOW_MASK
ORRS R1,R2
STR R1,[R0]
BX LR

flashingredon

LDR R0,=GPIOB_PSOR
LDR R1,[R0]
LDR R2,=FLRED_MASK
ORRS R1,R2
STR R1,[R0]
BX LR

flashingredoff

LDR R0,=GPIOB_PCOR
LDR R1,[R0]
LDR R2,=FLRED_MASK
ORRS R1,R2
STR R1,[R0]
BX LR

CHECK_INPUT

LDR R0,=GPIOD_PDIR
LDR R1,[R0]
TST R1,R2
BX LR



delay

SUBS R0,#1
BNE delay
BX LR

init_gpio

LDR R0,=SIM_SCGC5
LDR R1,[R0]
LDR R2,=0x00003E00
ORRS R1,R2
STR R1,[R0]

;outputs:
LDR R0,=PORTB_PCR1
LDR R1,=0x00000100
STR R1,[R0]

LDR R0,=PORTB_PCR2
LDR R1,=0x00000100
STR R1,[R0]

LDR R0,=PORTB_PCR3
LDR R1,=0x00000100
STR R1,[R0]

;inputs:



LDR R0,=PORTD_PCR0
LDR R1,=0x00000103
STR R1,[R0]

LDR R0,=PORTD_PCR2
LDR R1,=0x00000103
STR R1,[R0]

;data direction:

LDR R2,=GREEN_MASK
LDR R0,=GPIOB_PDDR
LDR R1,[R0]
ORRS R1,R2
STR R1,[R0]

LDR R2,=YELLOW_MASK
LDR R0,=GPIOB_PDDR
LDR R1,[R0]
ORRS R1,R2
STR R1,[R0]

LDR R2,=FLRED_MASK
LDR R0,=GPIOB_PDDR
LDR R1,[R0]
ORRS R1,R2
STR R1,[R0]



LDR R0,=GPIOB_PSOR
LDR R1,[R0]
ORRS R1,R2
STR R1,[R0]
BX LR

END

This is the whole code and I am using Keil Uvision 5 and this is assembly language.

This is the errors that I am getting when I run the code with above the snippet:

assembling main.s...
main.s(74): error: A1163E: Unknown opcode asm_area, , expecting opcode or Macro
main.s(76): error: A1163E: Unknown opcode asm_main , expecting opcode or Macro
main.s(80): error: A1355U: A Label was found which was in no AREA
"main.s" - 3 Error(s), 0 Warning(s).
assembly
arm
keil
asked on Stack Overflow Nov 27, 2018 by Parth Trivedi • edited Nov 28, 2018 by Raymond Chen

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0