mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-16 08:00:52 +02:00
+ experimental support unit for Phillips/NXP arm microcontroller
git-svn-id: trunk@12597 -
This commit is contained in:
parent
2a29180517
commit
c07a60f8e0
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -5219,6 +5219,7 @@ rtl/darwin/x86_64/sig_cpu.inc svneol=native#text/plain
|
||||
rtl/darwin/x86_64/sighnd.inc svneol=native#text/plain
|
||||
rtl/embedded/Makefile svneol=native#text/plain
|
||||
rtl/embedded/Makefile.fpc svneol=native#text/plain
|
||||
rtl/embedded/arm/lpc21x4.pp svneol=native#text/plain
|
||||
rtl/embedded/check.inc svneol=native#text/plain
|
||||
rtl/embedded/empty.cfg -text
|
||||
rtl/embedded/rtl.cfg -text
|
||||
|
@ -1,8 +1,8 @@
|
||||
#
|
||||
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2008/10/22]
|
||||
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2009/01/23]
|
||||
#
|
||||
default: all
|
||||
MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded avr-embedded armeb-linux armeb-embedded
|
||||
MAKEFILETARGETS=i386-embedded m68k-embedded powerpc-embedded sparc-embedded x86_64-embedded arm-embedded powerpc64-embedded avr-embedded armeb-embedded
|
||||
BSDs = freebsd netbsd openbsd darwin
|
||||
UNIXs = linux $(BSDs) solaris qnx
|
||||
LIMIT83fs = go32v2 os2 emx watcom
|
||||
@ -275,530 +275,94 @@ override FPCOPT+=@rtl.cfg
|
||||
ifdef RELEASE
|
||||
override FPCOPT+=-Ur
|
||||
endif
|
||||
CPU_UNITS=
|
||||
SYSINIT_UNITS=
|
||||
ifeq ($(ARCH),arm)
|
||||
CPU_UNITS=lpc21x4
|
||||
endif
|
||||
OBJPASDIR=$(RTL)/objpas
|
||||
GRAPHDIR=$(INC)/graph
|
||||
ifeq ($(FULL_TARGET),i386-linux)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-go32v2)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-win32)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-os2)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-freebsd)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-beos)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-haiku)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netbsd)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-solaris)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-qnx)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netware)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-openbsd)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-wdosx)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-darwin)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-emx)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-watcom)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netwlibc)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-wince)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-embedded)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-symbian)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-linux)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-freebsd)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-netbsd)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-amiga)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-atari)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-openbsd)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-palmos)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-embedded)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-linux)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-netbsd)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-amiga)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-macos)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-darwin)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-morphos)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-embedded)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-linux)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-netbsd)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-solaris)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-embedded)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-linux)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-freebsd)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-darwin)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-win64)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-embedded)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-linux)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-palmos)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-darwin)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-wince)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-gba)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-nds)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-embedded)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-symbian)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-linux)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-darwin)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-embedded)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),avr-embedded)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),armeb-linux)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) # objpas macpas strings
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),armeb-embedded)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) # objpas macpas strings
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) # objpas macpas strings
|
||||
endif
|
||||
override INSTALL_FPCPACKAGE=y
|
||||
ifeq ($(FULL_TARGET),i386-linux)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-go32v2)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-win32)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-os2)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-freebsd)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-beos)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-haiku)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netbsd)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-solaris)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-qnx)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netware)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-openbsd)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-wdosx)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-darwin)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-emx)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-watcom)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netwlibc)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-wince)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-embedded)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-symbian)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-linux)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-freebsd)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-netbsd)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-amiga)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-atari)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-openbsd)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-palmos)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-embedded)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-linux)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-netbsd)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-amiga)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-macos)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-darwin)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-morphos)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-embedded)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-linux)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-netbsd)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-solaris)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-embedded)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-linux)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-freebsd)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-darwin)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-win64)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-embedded)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-linux)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-palmos)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-darwin)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-wince)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-gba)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-nds)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-embedded)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-symbian)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-linux)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-darwin)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-embedded)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),avr-embedded)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),armeb-linux)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),armeb-embedded)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-linux)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-go32v2)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-win32)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-os2)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-freebsd)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-beos)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-haiku)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netbsd)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-solaris)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-qnx)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netware)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-openbsd)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-wdosx)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-darwin)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-emx)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-watcom)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netwlibc)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-wince)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-embedded)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-symbian)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-linux)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-freebsd)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-netbsd)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-amiga)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-atari)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-openbsd)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-palmos)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-embedded)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-linux)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-netbsd)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-amiga)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-macos)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-darwin)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-morphos)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-embedded)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-linux)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-netbsd)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-solaris)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-embedded)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-linux)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-freebsd)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-darwin)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-win64)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-embedded)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-linux)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-palmos)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-darwin)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-wince)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-gba)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-nds)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-embedded)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-symbian)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-linux)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-darwin)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-embedded)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),avr-embedded)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),armeb-linux)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),armeb-embedded)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
|
||||
endif
|
||||
ifdef REQUIRE_UNITSDIR
|
||||
override UNITSDIR+=$(REQUIRE_UNITSDIR)
|
||||
|
@ -7,7 +7,7 @@ main=rtl
|
||||
|
||||
[target]
|
||||
loaders=
|
||||
units=$(SYSTEMUNIT) # objpas macpas strings \
|
||||
units=$(SYSTEMUNIT) $(CPU_UNITS) # objpas macpas strings \
|
||||
# dos \
|
||||
# sysutils \
|
||||
# classes math typinfo varutils fmtbcd \
|
||||
@ -29,8 +29,7 @@ target=embedded
|
||||
|
||||
[compiler]
|
||||
includedir=$(INC) $(PROCINC)
|
||||
sourcedir=$(INC) $(PROCINC) $(COMMON)
|
||||
|
||||
sourcedir=$(INC) $(PROCINC) $(COMMON) $(ARCH)
|
||||
|
||||
[prerules]
|
||||
RTL=..
|
||||
@ -45,6 +44,13 @@ ifdef RELEASE
|
||||
override FPCOPT+=-Ur
|
||||
endif
|
||||
|
||||
CPU_UNITS=
|
||||
SYSINIT_UNITS=
|
||||
|
||||
ifeq ($(ARCH),arm)
|
||||
CPU_UNITS=lpc21x4
|
||||
endif
|
||||
|
||||
# Paths
|
||||
OBJPASDIR=$(RTL)/objpas
|
||||
GRAPHDIR=$(INC)/graph
|
||||
|
478
rtl/embedded/arm/lpc21x4.pp
Normal file
478
rtl/embedded/arm/lpc21x4.pp
Normal file
@ -0,0 +1,478 @@
|
||||
{******************************************************************************
|
||||
lpc2114.h - Register defs for Philips LPC2114, LPC2124
|
||||
|
||||
|
||||
THE SOFTWARE IS DELIVERED "AS IS" WITHOUT WARRANTY OR CONDITION OF ANY KIND,
|
||||
EITHER EXPRESS, IMPLIED OR STATUTORY. THIS INCLUDES WITHOUT LIMITATION ANY
|
||||
WARRANTY OR CONDITION WITH RESPECT TO MERCHANTABILITY OR FITNESS FOR ANY
|
||||
PARTICULAR PURPOSE, OR AGAINST THE INFRINGEMENTS OF INTELLECTUAL PROPERTY RIGHTS
|
||||
OF OTHERS.
|
||||
|
||||
This file may be freely used for commercial and non-commercial applications,
|
||||
including being redistributed with any tools.
|
||||
|
||||
If you find a problem with the file, please report it so that it can be fixed.
|
||||
|
||||
Created by Sten Larsson (sten_larsson at yahoo com)
|
||||
|
||||
Free Pascal conversion by the Free Pascal development team
|
||||
******************************************************************************}
|
||||
unit lpc21x4;
|
||||
|
||||
interface
|
||||
|
||||
{##############################################################################
|
||||
## MISC
|
||||
##############################################################################}
|
||||
|
||||
{ Constants for data to put in IRQ/FIQ Exception Vectors }
|
||||
const
|
||||
VECTDATA_IRQ = dword($E51FFFF0); { LDR PC,[PC,#-0xFF0] }
|
||||
// VECTDATA_FIQ { __TODO }
|
||||
|
||||
type
|
||||
BITS32 = bitpacked array[0..31] of 0..1;
|
||||
|
||||
|
||||
{##############################################################################
|
||||
## VECTORED INTERRUPT CONTROLLER
|
||||
##############################################################################}
|
||||
|
||||
var
|
||||
VICIRQStatus : DWord absolute dword($FFFFF000);
|
||||
VICFIQStatus : DWord absolute $FFFFF004;
|
||||
VICRawIntr : DWord absolute $FFFFF008;
|
||||
VICIntSelect : DWord absolute $FFFFF00C;
|
||||
VICIntEnable : DWord absolute $FFFFF010;
|
||||
VICIntEnClear : DWord absolute $FFFFF014;
|
||||
VICSoftInt : DWord absolute $FFFFF018;
|
||||
VICSoftIntClear : DWord absolute $FFFFF01C;
|
||||
VICProtection : DWord absolute $FFFFF020;
|
||||
VICVectAddr : DWord absolute $FFFFF030;
|
||||
VICDefVectAddr : DWord absolute $FFFFF034;
|
||||
|
||||
VICVectAddr0 : DWord absolute $FFFFF100;
|
||||
VICVectAddr1 : DWord absolute $FFFFF104;
|
||||
VICVectAddr2 : DWord absolute $FFFFF108;
|
||||
VICVectAddr3 : DWord absolute $FFFFF10C;
|
||||
VICVectAddr4 : DWord absolute $FFFFF110;
|
||||
VICVectAddr5 : DWord absolute $FFFFF114;
|
||||
VICVectAddr6 : DWord absolute $FFFFF118;
|
||||
VICVectAddr7 : DWord absolute $FFFFF11C;
|
||||
VICVectAddr8 : DWord absolute $FFFFF120;
|
||||
VICVectAddr9 : DWord absolute $FFFFF124;
|
||||
VICVectAddr10 : DWord absolute $FFFFF128;
|
||||
VICVectAddr11 : DWord absolute $FFFFF12C;
|
||||
VICVectAddr12 : DWord absolute $FFFFF130;
|
||||
VICVectAddr13 : DWord absolute $FFFFF134;
|
||||
VICVectAddr14 : DWord absolute $FFFFF138;
|
||||
VICVectAddr15 : DWord absolute $FFFFF13C;
|
||||
|
||||
VICVectCntl0 : DWord absolute $FFFFF200;
|
||||
VICVectCntl1 : DWord absolute $FFFFF204;
|
||||
VICVectCntl2 : DWord absolute $FFFFF208;
|
||||
VICVectCntl3 : DWord absolute $FFFFF20C;
|
||||
VICVectCntl4 : DWord absolute $FFFFF210;
|
||||
VICVectCntl5 : DWord absolute $FFFFF214;
|
||||
VICVectCntl6 : DWord absolute $FFFFF218;
|
||||
VICVectCntl7 : DWord absolute $FFFFF21C;
|
||||
VICVectCntl8 : DWord absolute $FFFFF220;
|
||||
VICVectCntl9 : DWord absolute $FFFFF224;
|
||||
VICVectCntl10 : DWord absolute $FFFFF228;
|
||||
VICVectCntl11 : DWord absolute $FFFFF22C;
|
||||
VICVectCntl12 : DWord absolute $FFFFF230;
|
||||
VICVectCntl13 : DWord absolute $FFFFF234;
|
||||
VICVectCntl14 : DWord absolute $FFFFF238;
|
||||
VICVectCntl15 : DWord absolute $FFFFF23C;
|
||||
|
||||
VICITCR : DWord absolute $FFFFF300;
|
||||
VICITIP1 : DWord absolute $FFFFF304;
|
||||
VICITIP2 : DWord absolute $FFFFF308;
|
||||
VICITOP1 : DWord absolute $FFFFF30C;
|
||||
VICITOP2 : DWord absolute $FFFFF310;
|
||||
VICPeriphID0 : DWord absolute $FFFFFFE0;
|
||||
VICPeriphID1 : DWord absolute $FFFFFFE4;
|
||||
VICPeriphID2 : DWord absolute $FFFFFFE8;
|
||||
VICPeriphID3 : DWord absolute $FFFFFFEC;
|
||||
|
||||
VICIntEnClr : DWord absolute $FFFFF014;
|
||||
VICSoftIntClr : DWord absolute $FFFFF01C;
|
||||
|
||||
|
||||
{##############################################################################
|
||||
## PCB - Pin Connect Block
|
||||
##############################################################################}
|
||||
|
||||
PCB_PINSEL0 : DWord absolute $E002C000;
|
||||
PCB_PINSEL1 : DWord absolute $E002C004;
|
||||
PCB_PINSEL2 : DWord absolute $E002C014;
|
||||
|
||||
|
||||
{##############################################################################
|
||||
## GPIO - General Purpose I/O
|
||||
##############################################################################}
|
||||
|
||||
GPIO0_IOPIN : DWord absolute $E0028000;
|
||||
GPIO0_IOSET : DWord absolute $E0028004;
|
||||
GPIO0_IODIR : DWord absolute $E0028008;
|
||||
GPIO0_IOCLR : DWord absolute $E002800C;
|
||||
|
||||
GPIO1_IOPIN : DWord absolute $E0028010;
|
||||
GPIO1_IOSET : DWord absolute $E0028014;
|
||||
GPIO1_IODIR : DWord absolute $E0028018;
|
||||
GPIO1_IOCLR : DWord absolute $E002801C;
|
||||
|
||||
|
||||
{##############################################################################
|
||||
## UART0 / UART1
|
||||
##############################################################################}
|
||||
|
||||
{ ---- UART 0 --------------------------------------------- }
|
||||
UART0_RBR : DWord absolute $E000C000;
|
||||
UART0_THR : DWord absolute $E000C000;
|
||||
UART0_IER : DWord absolute $E000C004;
|
||||
UART0_IIR : DWord absolute $E000C008;
|
||||
UART0_FCR : DWord absolute $E000C008;
|
||||
UART0_LCR : DWord absolute $E000C00C;
|
||||
UART0_LSR : DWord absolute $E000C014;
|
||||
UART0_SCR : DWord absolute $E000C01C;
|
||||
UART0_DLL : DWord absolute $E000C000;
|
||||
UART0_DLM : DWord absolute $E000C004;
|
||||
|
||||
{ ---- UART 1 --------------------------------------------- }
|
||||
UART1_RBR : DWord absolute $E0010000;
|
||||
UART1_THR : DWord absolute $E0010000;
|
||||
UART1_IER : DWord absolute $E0010004;
|
||||
UART1_IIR : DWord absolute $E0010008;
|
||||
UART1_FCR : DWord absolute $E0010008;
|
||||
UART1_LCR : DWord absolute $E001000C;
|
||||
UART1_LSR : DWord absolute $E0010014;
|
||||
UART1_SCR : DWord absolute $E001001C;
|
||||
UART1_DLL : DWord absolute $E0010000;
|
||||
UART1_DLM : DWord absolute $E0010004;
|
||||
UART1_MCR : DWord absolute $E0010010;
|
||||
UART1_MSR : DWord absolute $E0010018;
|
||||
|
||||
|
||||
{##############################################################################
|
||||
## I2C
|
||||
##############################################################################}
|
||||
|
||||
I2C_I2CONSET : DWord absolute $E001C000;
|
||||
I2C_I2STAT : DWord absolute $E001C004;
|
||||
I2C_I2DAT : DWord absolute $E001C008;
|
||||
I2C_I2ADR : DWord absolute $E001C00C;
|
||||
I2C_I2SCLH : DWord absolute $E001C010;
|
||||
I2C_I2SCLL : DWord absolute $E001C014;
|
||||
I2C_I2CONCLR : DWord absolute $E001C018;
|
||||
|
||||
|
||||
{##############################################################################
|
||||
## SPI - Serial Peripheral Interface
|
||||
##############################################################################}
|
||||
|
||||
SPI_SPCR : DWord absolute $E0020000; { SPI = SPI0 }
|
||||
SPI_SPSR : DWord absolute $E0020004;
|
||||
SPI_SPDR : DWord absolute $E0020008;
|
||||
SPI_SPCCR : DWord absolute $E002000C;
|
||||
SPI_SPTCR : DWord absolute $E0020010;
|
||||
SPI_SPTSR : DWord absolute $E0020014;
|
||||
SPI_SPTOR : DWord absolute $E0020018;
|
||||
SPI_SPINT : DWord absolute $E002001C;
|
||||
|
||||
SPI0_SPCR : DWord absolute $E0020000; { SPI = SPI0 }
|
||||
SPI0_SPSR : DWord absolute $E0020004;
|
||||
SPI0_SPDR : DWord absolute $E0020008;
|
||||
SPI0_SPCCR : DWord absolute $E002000C;
|
||||
SPI0_SPTCR : DWord absolute $E0020010;
|
||||
SPI0_SPTSR : DWord absolute $E0020014;
|
||||
SPI0_SPTOR : DWord absolute $E0020018;
|
||||
SPI0_SPINT : DWord absolute $E002001C;
|
||||
|
||||
SPI1_SPCR : DWord absolute $E0030000;
|
||||
SPI1_SPSR : DWord absolute $E0030004;
|
||||
SPI1_SPDR : DWord absolute $E0030008;
|
||||
SPI1_SPCCR : DWord absolute $E003000C;
|
||||
SPI1_SPTCR : DWord absolute $E0030010;
|
||||
SPI1_SPTSR : DWord absolute $E0030014;
|
||||
SPI1_SPTOR : DWord absolute $E0030018;
|
||||
SPI1_SPINT : DWord absolute $E003001C;
|
||||
|
||||
|
||||
{##############################################################################
|
||||
## Timer 0 and Timer 1
|
||||
##############################################################################}
|
||||
|
||||
{ ---- Timer 0 -------------------------------------------- }
|
||||
T0_IR : DWord absolute $E0004000;
|
||||
T0_TCR : DWord absolute $E0004004;
|
||||
T0_TC : DWord absolute $E0004008;
|
||||
T0_PR : DWord absolute $E000400C;
|
||||
T0_PC : DWord absolute $E0004010;
|
||||
T0_MCR : DWord absolute $E0004014;
|
||||
T0_MR0 : DWord absolute $E0004018;
|
||||
T0_MR1 : DWord absolute $E000401C;
|
||||
T0_MR2 : DWord absolute $E0004020;
|
||||
T0_MR3 : DWord absolute $E0004024;
|
||||
T0_CCR : DWord absolute $E0004028;
|
||||
T0_CR0 : DWord absolute $E000402C;
|
||||
T0_CR1 : DWord absolute $E0004030;
|
||||
T0_CR2 : DWord absolute $E0004034;
|
||||
T0_CR3 : DWord absolute $E0004038;
|
||||
T0_EMR : DWord absolute $E000403C;
|
||||
|
||||
{ ---- Timer 1 -------------------------------------------- }
|
||||
T1_IR : DWord absolute $E0008000;
|
||||
T1_TCR : DWord absolute $E0008004;
|
||||
T1_TC : DWord absolute $E0008008;
|
||||
T1_PR : DWord absolute $E000800C;
|
||||
T1_PC : DWord absolute $E0008010;
|
||||
T1_MCR : DWord absolute $E0008014;
|
||||
T1_MR0 : DWord absolute $E0008018;
|
||||
T1_MR1 : DWord absolute $E000801C;
|
||||
T1_MR2 : DWord absolute $E0008020;
|
||||
T1_MR3 : DWord absolute $E0008024;
|
||||
T1_CCR : DWord absolute $E0008028;
|
||||
T1_CR0 : DWord absolute $E000802C;
|
||||
T1_CR1 : DWord absolute $E0008030;
|
||||
T1_CR2 : DWord absolute $E0008034;
|
||||
T1_CR3 : DWord absolute $E0008038;
|
||||
T1_EMR : DWord absolute $E000803C;
|
||||
|
||||
|
||||
{##############################################################################
|
||||
## PWM
|
||||
##############################################################################}
|
||||
|
||||
PWM_IR : DWord absolute $E0014000;
|
||||
PWM_TCR : DWord absolute $E0014004;
|
||||
PWM_TC : DWord absolute $E0014008;
|
||||
PWM_PR : DWord absolute $E001400C;
|
||||
PWM_PC : DWord absolute $E0014010;
|
||||
PWM_MCR : DWord absolute $E0014014;
|
||||
PWM_MR0 : DWord absolute $E0014018;
|
||||
PWM_MR1 : DWord absolute $E001401C;
|
||||
PWM_MR2 : DWord absolute $E0014020;
|
||||
PWM_MR3 : DWord absolute $E0014024;
|
||||
PWM_MR4 : DWord absolute $E0014040;
|
||||
PWM_MR5 : DWord absolute $E0014044;
|
||||
PWM_MR6 : DWord absolute $E0014048;
|
||||
PWM_EMR : DWord absolute $E001403C;
|
||||
PWM_PCR : DWord absolute $E001404C;
|
||||
PWM_LER : DWord absolute $E0014050;
|
||||
PWM_CCR : DWord absolute $E0014028;
|
||||
PWM_CR0 : DWord absolute $E001402C;
|
||||
PWM_CR1 : DWord absolute $E0014030;
|
||||
PWM_CR2 : DWord absolute $E0014034;
|
||||
PWM_CR3 : DWord absolute $E0014038;
|
||||
|
||||
{##############################################################################
|
||||
## RTC
|
||||
##############################################################################}
|
||||
|
||||
{ ---- RTC: Miscellaneous Register Group ------------------ }
|
||||
RTC_ILR : DWord absolute $E0024000;
|
||||
RTC_CTC : DWord absolute $E0024004;
|
||||
RTC_CCR : DWord absolute $E0024008;
|
||||
RTC_CIIR : DWord absolute $E002400C;
|
||||
RTC_AMR : DWord absolute $E0024010;
|
||||
RTC_CTIME0 : DWord absolute $E0024014;
|
||||
RTC_CTIME1 : DWord absolute $E0024018;
|
||||
RTC_CTIME2 : DWord absolute $E002401C;
|
||||
|
||||
{ ---- RTC: Timer Control Group --------------------------- }
|
||||
RTC_SEC : DWord absolute $E0024020;
|
||||
RTC_MIN : DWord absolute $E0024024;
|
||||
RTC_HOUR : DWord absolute $E0024028;
|
||||
RTC_DOM : DWord absolute $E002402C;
|
||||
RTC_DOW : DWord absolute $E0024030;
|
||||
RTC_DOY : DWord absolute $E0024034;
|
||||
RTC_MONTH : DWord absolute $E0024038;
|
||||
RTC_YEAR : DWord absolute $E002403C;
|
||||
|
||||
{ ---- RTC: Alarm Control Group --------------------------- }
|
||||
RTC_ALSEC : DWord absolute $E0024060;
|
||||
RTC_ALMIN : DWord absolute $E0024064;
|
||||
RTC_ALHOUR : DWord absolute $E0024068;
|
||||
RTC_ALDOM : DWord absolute $E002406C;
|
||||
RTC_ALDOW : DWord absolute $E0024070;
|
||||
RTC_ALDOY : DWord absolute $E0024074;
|
||||
RTC_ALMON : DWord absolute $E0024078;
|
||||
RTC_ALYEAR : DWord absolute $E002407C;
|
||||
|
||||
{ ---- RTC: Reference Clock Divider Group ----------------- }
|
||||
RTC_PREINT : DWord absolute $E0024080;
|
||||
RTC_PREFRAC : DWord absolute $E0024084;
|
||||
|
||||
|
||||
{##############################################################################
|
||||
## AE - AD Converter
|
||||
##############################################################################}
|
||||
|
||||
AD_ADCR : DWord absolute $E0034000;
|
||||
AD_ADDR : DWord absolute $E0034004;
|
||||
|
||||
|
||||
{##############################################################################
|
||||
## WD - Watchdog
|
||||
##############################################################################}
|
||||
|
||||
WD_WDMOD : DWord absolute $E0000000;
|
||||
WD_WDTC : DWord absolute $E0000004;
|
||||
WD_WDFEED : DWord absolute $E0000008;
|
||||
WD_WDTV : DWord absolute $E000000C;
|
||||
|
||||
|
||||
{##############################################################################
|
||||
## SCB - System Control Block
|
||||
##############################################################################}
|
||||
|
||||
SCB_EXTINT : DWord absolute $E01FC140;
|
||||
SCB_EXTWAKE : DWord absolute $E01FC144;
|
||||
SCB_EXTMODE : DWord absolute $E01FC148;
|
||||
SCB_EXTPOLAR : DWord absolute $E01FC14C;
|
||||
SCB_MEMMAP : DWord absolute $E01FC040;
|
||||
SCB_PLLCON : DWord absolute $E01FC080;
|
||||
SCB_PLLCFG : DWord absolute $E01FC084;
|
||||
SCB_PLLSTAT : DWord absolute $E01FC088;
|
||||
SCB_PLLFEED : DWord absolute $E01FC08C;
|
||||
SCB_PCON : DWord absolute $E01FC0C0;
|
||||
SCB_PCONP : DWord absolute $E01FC0C4;
|
||||
SCB_VPBDIV : DWord absolute $E01FC100;
|
||||
|
||||
|
||||
{##############################################################################
|
||||
## MAM - Memory Accelerator Module
|
||||
##############################################################################}
|
||||
|
||||
MAM_MAMCR : DWord absolute $E01FC000;
|
||||
MAM_MAMTIM : DWord absolute $E01FC004;
|
||||
MAM_MAMMAP : DWord absolute $E01FC040;
|
||||
|
||||
var
|
||||
Undefined_Handler
|
||||
SWI_Handler,
|
||||
Prefetch_Handler,
|
||||
Abort_Handler,
|
||||
FIQ_Handler : pointer;
|
||||
|
||||
procedure InitPLL(m : 1..32;p : 1..8);
|
||||
procedure PLLFeed;
|
||||
function GetProcessorClock : DWord;
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
procedure PLLFeed;
|
||||
begin
|
||||
SCB_PLLFEED:=$aa
|
||||
SCB_PLLFEED:=$55
|
||||
end;
|
||||
|
||||
|
||||
function GetProcessorClock(CrystalFrequency : DWord) : DWord;
|
||||
begin
|
||||
if (TBitvector32(SCB_PLLSTAT)[8] and 1)<>0 then
|
||||
Result:=((SCB_PLLSTAT and $f)+1)*CrystalFrequency;
|
||||
else
|
||||
Result:=CrystalFrequency;
|
||||
end;
|
||||
|
||||
|
||||
procedure InitPLL(m : 1..32;p : 1..8);
|
||||
begin
|
||||
case p of
|
||||
1: p:=0;
|
||||
2..3: p:=1;
|
||||
4..7: p:=2;
|
||||
8: p:=3;
|
||||
end;
|
||||
{ set p and m }
|
||||
SCB_PLLCFG:=(m-1) or (p shl 5);
|
||||
|
||||
{ write changes }
|
||||
PLLFeed;
|
||||
|
||||
{ start PLL }
|
||||
TBitvector32(SCB_PLLCON)[0]:=1;
|
||||
|
||||
{ write changes }
|
||||
PLLFeed;
|
||||
|
||||
{ wait for pll sync }
|
||||
while TBitvector32(SCB_PLLSTAT)[10]=0 do
|
||||
;
|
||||
|
||||
{ connect PLL }
|
||||
TBitvector32(SCB_PLLCON)[1]:=1;
|
||||
|
||||
{ write changes }
|
||||
PLLFeed;
|
||||
end;
|
||||
|
||||
begin
|
||||
asm
|
||||
// code derived from phillips appnote 10254
|
||||
.init
|
||||
Entry:
|
||||
ldr pc, _start
|
||||
ldr pc, Undefined_Addr
|
||||
ldr pc, SWI_Addr
|
||||
ldr pc, Prefetch_Addr
|
||||
ldr pc, Abort_Addr
|
||||
|
||||
// signature
|
||||
nop
|
||||
ldr pc, [PC, #-0xFF0] // load irq vector from vic
|
||||
ldr pc, FIQ_Addr
|
||||
Undefined_Addr:
|
||||
ldr
|
||||
.L1:
|
||||
.word Un
|
||||
SWI_Handler:
|
||||
B SWI_Handler
|
||||
Prefetch_Handler:
|
||||
B Prefetch_Handler
|
||||
Abort_Handler:
|
||||
B Abort_Handler
|
||||
FIQ_Handler:
|
||||
B FIQ_Handler
|
||||
_start:
|
||||
{
|
||||
Set SP for Supervisor mode. Depending upon
|
||||
the stack the application needs this value
|
||||
needs to be set.
|
||||
stack is already set by bootloader
|
||||
but if this point is entered by any
|
||||
other means than reset, the stack pointer
|
||||
needs to be set explicity
|
||||
}
|
||||
// LDR SP,=0x40001000
|
||||
|
||||
{
|
||||
Setting up SP for IRQ and FIQ mode.
|
||||
Change mode before setting each one
|
||||
move back again to Supervisor mode
|
||||
Each interrupt has its own link
|
||||
register, stack pointer and program
|
||||
counter The stack pointers must be
|
||||
initialized for interrupts to be
|
||||
used later.
|
||||
}
|
||||
|
||||
{
|
||||
setup for fiq and irq interrupt stacks to run
|
||||
below current stack by 1000.
|
||||
}
|
||||
mov r0, sp // copy current stack pointer
|
||||
sub r0, r0, #1000 // make irq stack pointer
|
||||
sub r1, r0, #1000 // make fiq stack pointer
|
||||
msr cpsr_c, #0x12 // switch to irq mode
|
||||
mov sp, r0 // set irq stack pointer
|
||||
msr cpsr_c, #0x11 // fiq mode
|
||||
mov sp, r1 // set fiq stack pointer
|
||||
msr cpsr_c, #0x13 // supervisor mode F,I enabled
|
||||
|
||||
bl PASCALMAIN
|
||||
end;
|
||||
end.
|
Loading…
Reference in New Issue
Block a user