Subject: Re: Embedded development platform
To: NetBSD Tech-embed <tech-embed@NetBSD.org>
From: Brian Rose <lists@brianrose.net>
List: tech-embed
Date: 08/31/2004 10:18:18
This is my (very) basic program that I am trying to write using a
cross-compiled NetBSD toolchain. To do this i simply did the following...
$ cd /usr/src
<download and unpack sources into /usr/src>
$ ./build.sh -m m68k -t
$ cd ~
$ mkdir coldfire
$ mkdir coldfire/tools
$ cd coldfire/tools
$ cp -R /usr/src/tools/obj/tools.NetBSD-1.6.2-i386/* .
$ cd ..
$ mkdir Projects
$ mkdir Projects/EvalBoard
$ cd Projects/EvalBoard
In this folder I have the following files...
init.asm
1)
2) .text
3) .global _start
4)
5) # A Comment
6) # .equ TEST_CONSTANT, 0x200
7) .set TEST_CONSTANT,0x200
8) _start:
9)
10) move.b TEST_CONSTANT,d0
11)
Makefile
1) TOOLBIN=../../tools/bin
2) ASM=$(TOOLBIN)/m68k--netbsdelf-as
3) LINKER=$(TOOLBIN)/m68k--netbsdelf-ld
4) OBJCOPY=$(TOOLBIN)/m68k--netbsdelf-objcopy
5)
6) code.o : init.o
7) $(LINKER) init.o -o code.o
8)
9) init.o : init.asm
10) $(ASM) -m68020 -o init.o init.asm
11)
12) clean :
13) rm init.o
14)
When I do a "make" I get the following error...
../../tools/bin/m68k--netbsdelf-as -o init.o init.asm
../../tools/bin/m68k--netbsdelf-ld init.o -o code.o
init.o: In function `_start':
init.o(.text+0x4): undefined reference to `d0'
*** Error code 1
Stop.
make: stopped in /usr/coldfire/Projects/EvalBoard
It looks like the assembler assumes that d0 is a variable, when it should
be data register 0. Looking at the docs for the assembler, I don't see
anything special.
Any ideas? Thanks in advance.
--
Brian