Ich habe das folgende Code-Schnippsel (eingedampft auf das folgende
kleine Programm). Das produziert den nachstehenden Fehler. Ändere ich
#0x16c9 in #0x16c0, so läuft es ohne Fehler durch.
1 | .syntax unified
|
2 | .cpu cortex-m4
|
3 | .thumb
|
4 | .equ USART3_BRR , 0x40004808
|
5 |
|
6 | @ fCLK 42MHz
|
7 | @ 0x16c9 364.58333_ 16c0 + 9
|
8 | @ 115200 Bd
|
9 | ldr r1, = USART3_BRR
|
10 | movs r0, #0x16c9
|
11 | str r0, [r1]
|
12 |
|
13 | .ltorg
|
14 | .end
|
15 |
|
16 |
|
17 | $ make
|
18 | arm-none-eabi-as -g -al -o myfirst.o myfirst.s >myfirst.lst
|
19 | myfirst.s: Assembler messages:
|
20 | myfirst.s:482: Error: invalid constant (16c9) after fixup
|
21 | make: *** [myfirst.o] Error 1
|
22 | $ arm-none-eabi-as --version
|
23 | GNU assembler (GNU Tools for Arm Embedded Processors 8-2018-q4-major) 2.31.51.20181213
|
24 | Copyright (C) 2018 Free Software Foundation, Inc.
|
25 | This program is free software; you may redistribute it under the terms of
|
26 | the GNU General Public License version 3 or later.
|
27 | This program has absolutely no warranty.
|
28 | This assembler was configured for a target of `arm-none-eabi'.
|