Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
card10
openocd
Commits
1d2f4f14
Commit
1d2f4f14
authored
Mar 01, 2008
by
mifi
Browse files
- added at91r40008 test example, and test result
git-svn-id:
svn://svn.berlios.de/openocd/trunk@419
b42882b7-edfa-0310-969c-e2dbd0fdcd60
parent
06433b2d
Changes
9
Hide whitespace changes
Inline
Side-by-side
testing/examples/AT91R40008Test/inc/typedefs.h
0 → 100644
View file @
1d2f4f14
/****************************************************************************
* Copyright (c) 2006 by Michael Fischer. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the author nor the names of its contributors may
* be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
* THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
* THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
****************************************************************************
* History:
*
* 30.03.06 mifi First Version for Insight tutorial
****************************************************************************/
#ifndef __TYPEDEFS_H__
#define __TYPEDEFS_H__
/*
* Some types to use Windows like source
*/
typedef
char
CHAR
;
/* 8-bit signed data */
typedef
unsigned
char
BYTE
;
/* 8-bit unsigned data */
typedef
unsigned
short
WORD
;
/* 16-bit unsigned data */
typedef
long
LONG
;
/* 32-bit signed data */
typedef
unsigned
long
ULONG
;
/* 32-bit unsigned data */
typedef
unsigned
long
DWORD
;
/* 32-bit unsigned data */
#endif
/* !__TYPEDEFS_H_ */
/*** EOF ***/
testing/examples/AT91R40008Test/makefile
0 → 100644
View file @
1d2f4f14
##############################################################################################
#
# !!!! Do NOT edit this makefile with an editor which replace tabs by spaces !!!!
#
##############################################################################################
#
# On command line:
#
# make all = Create project
#
# make clean = Clean project files.
#
# To rebuild project do "make clean" and "make all".
#
##############################################################################################
# Start of default section
#
TRGT
=
arm-elf-
CC
=
$(TRGT)
gcc
CP
=
$(TRGT)
objcopy
AS
=
$(TRGT)
gcc
-x
assembler-with-cpp
BIN
=
$(CP)
-O
ihex
MCU
=
arm7tdmi
# List all default C defines here, like -D_DEBUG=1
DDEFS
=
# List all default ASM defines here, like -D_DEBUG=1
DADEFS
=
# List all default directories to look for include files here
DINCDIR
=
# List the default directory to look for the libraries here
DLIBDIR
=
# List all default libraries here
DLIBS
=
#
# End of default section
##############################################################################################
##############################################################################################
# Start of user section
#
# Define project name here
PROJECT
=
test
# Define linker script file here
LDSCRIPT_RAM
=
./prj/ethernut3_ram.ld
# List all user C define here, like -D_DEBUG=1
UDEFS
=
# Define ASM defines here
UADEFS
=
# List C source files here
SRC
=
./src/main.c
# List ASM source files here
ASRC
=
./src/crt.s
# List all user directories here
UINCDIR
=
./inc
# List the user directory to look for the libraries here
ULIBDIR
=
# List all user libraries here
ULIBS
=
# Define optimisation level here
OPT
=
-O0
#
# End of user defines
##############################################################################################
INCDIR
=
$(
patsubst
%,-I%,
$(DINCDIR)
$(UINCDIR)
)
LIBDIR
=
$(
patsubst
%,-L%,
$(DLIBDIR)
$(ULIBDIR)
)
DEFS
=
$(DDEFS)
$(UDEFS)
ADEFS
=
$(DADEFS)
$(UADEFS)
OBJS
=
$(ASRC:.s=.o)
$(SRC:.c=.o)
LIBS
=
$(DLIBS)
$(ULIBS)
MCFLAGS
=
-mcpu
=
$(MCU)
ASFLAGS
=
$(MCFLAGS)
-g
-gdwarf-2
-Wa
,-amhls
=
$
(
<:.s
=
.lst
)
$(ADEFS)
CPFLAGS
=
$(MCFLAGS)
$(OPT)
-gdwarf-2
-mthumb-interwork
-fomit-frame-pointer
-Wall
-Wstrict-prototypes
-fverbose-asm
-Wa
,-ahlms
=
$
(
<:.c
=
.lst
)
$(DEFS)
LDFLAGS_RAM
=
$(MCFLAGS)
-nostartfiles
-T
$(LDSCRIPT_RAM)
-Wl
,-Map
=
$(PROJECT)
_ram.map,--cref,--no-warn-mismatch
$(LIBDIR)
# Generate dependency information
CPFLAGS
+=
-MD
-MP
-MF
.dep/
$
(
@F
)
.d
#
# makefile rules
#
all
:
RAM
RAM
:
$(OBJS) $(PROJECT)_ram.elf $(PROJECT)_ram.hex
%o
:
%c
$(CC)
-c
$(CPFLAGS)
-I
.
$(INCDIR)
$<
-o
$@
%o
:
%s
$(AS)
-c
$(ASFLAGS)
$<
-o
$@
%ram.elf
:
$(OBJS)
$(CC)
$(OBJS)
$(LDFLAGS_RAM)
$(LIBS)
-o
$@
%hex
:
%elf
$(BIN)
$<
$@
clean
:
-
rm
-f
$(OBJS)
-
rm
-f
$(PROJECT)
_ram.elf
-
rm
-f
$(PROJECT)
_ram.map
-
rm
-f
$(PROJECT)
_ram.hex
-
rm
-f
$(SRC:.c=.c.bak)
-
rm
-f
$(SRC:.c=.lst)
-
rm
-f
$(ASRC:.s=.s.bak)
-
rm
-f
$(ASRC:.s=.lst)
-
rm
-fR
.dep
#
# Include the dependency files, should be the last of the makefile
#
-include
$(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*)
#
***
EOF
***
\ No newline at end of file
testing/examples/AT91R40008Test/prj/at91r40008_reset.script
0 → 100644
View file @
1d2f4f14
wait_halt
sleep 10
poll
# Ethernut 3 remapping is required to access external flash memory.
mww 0xffe00000 0x1000213d
mww 0xffe00004 0x20003e3d
mww 0xffe00020 0x00000001
testing/examples/AT91R40008Test/prj/at91r40008_turtle.cfg
0 → 100644
View file @
1d2f4f14
#daemon configuration
telnet_port 4444
gdb_port 3333
# tell gdb our flash memory map
gdb_memory_map enable
# enable flash programming
gdb_flash_program enable
#interface
interface ft2232
ft2232_device_desc "Turtelizer JTAG/RS232 Adapter A"
ft2232_layout turtelizer2
ft2232_vid_pid 0x0403 0xbdc8
jtag_speed 0
jtag_nsrst_delay 200
jtag_ntrst_delay 200
#use combined on interfaces or targets that can't set TRST/SRST separately
reset_config srst_only
#jtag scan chain
#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE)
jtag_device 4 0x1 0xf 0xe
#target configuration
daemon_startup reset
#target <type> <startup mode>
#target arm7tdmi <reset mode> <chainpos> <endianness> <variant>
target arm7tdmi little run_and_init 0 arm7tdmi
run_and_halt_time 0 30
target_script 0 reset .\prj\at91r40008_reset.script
working_area 0 0x3C000 0x4000 nobackup
flash bank cfi 0x10000000 0x400000 2 2 0
# For more information about the configuration files, take a look at:
# http://openfacts.berlios.de/index-en.phtml?title=Open+On-Chip+Debugger
testing/examples/AT91R40008Test/prj/eclipse_ram.gdb
0 → 100644
View file @
1d2f4f14
target remote localhost:3333
monitor reset
monitor sleep 500
monitor poll
monitor soft_reset_halt
monitor arm7_9 sw_bkpts enable
monitor mww 0xFFE00000 0x1000213D
monitor mww 0xFFE00004 0x20003E3D
monitor mww 0xFFE00020 0x00000001
monitor mdw 0xFFE00000 1
monitor mdw 0xFFE00004 1
load
break main
continue
testing/examples/AT91R40008Test/prj/ethernut3_ram.ld
0 → 100644
View file @
1d2f4f14
/****************************************************************************
* Copyright (c) 2006 by Michael Fischer. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the author nor the names of its contributors may
* be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
* THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
* THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
****************************************************************************
*
* History:
*
* 09.04.06 mifi First Version
****************************************************************************/
ENTRY(ResetHandler)
SEARCH_DIR(.)
/*
* Define stack size here
*/
FIQ_STACK_SIZE = 0x0100;
IRQ_STACK_SIZE = 0x0100;
ABT_STACK_SIZE = 0x0100;
UND_STACK_SIZE = 0x0100;
SVC_STACK_SIZE = 0x0400;
/*
* This file, ethernut3_ram.ld, locate the program in the internal
* ram of the AT91R40008. For more information about the memory of the
* AT91R40008 take a look in the AT91 ARM data sheet.
* Reference is made to Rev. 1354D-ATARM-08/02
*
* Take a look at page 15, Memory Map, Figure 3
*/
MEMORY
{
ram : org = 0x00000000, len = 256k
}
/*
* Do not change the next code
*/
SECTIONS
{
.text :
{
*(.vectors);
. = ALIGN(4);
*(.init);
. = ALIGN(4);
*(.text);
. = ALIGN(4);
*(.rodata);
. = ALIGN(4);
*(.rodata*);
. = ALIGN(4);
*(.glue_7t);
. = ALIGN(4);
*(.glue_7);
. = ALIGN(4);
etext = .;
} > ram
.data :
{
PROVIDE (__data_start = .);
*(.data)
. = ALIGN(4);
edata = .;
_edata = .;
PROVIDE (__data_end = .);
} > ram
.bss :
{
PROVIDE (__bss_start = .);
*(.bss)
*(COMMON)
. = ALIGN(4);
PROVIDE (__bss_end = .);
. = ALIGN(256);
PROVIDE (__stack_start = .);
PROVIDE (__stack_fiq_start = .);
. += FIQ_STACK_SIZE;
. = ALIGN(4);
PROVIDE (__stack_fiq_end = .);
PROVIDE (__stack_irq_start = .);
. += IRQ_STACK_SIZE;
. = ALIGN(4);
PROVIDE (__stack_irq_end = .);
PROVIDE (__stack_abt_start = .);
. += ABT_STACK_SIZE;
. = ALIGN(4);
PROVIDE (__stack_abt_end = .);
PROVIDE (__stack_und_start = .);
. += UND_STACK_SIZE;
. = ALIGN(4);
PROVIDE (__stack_und_end = .);
PROVIDE (__stack_svc_start = .);
. += SVC_STACK_SIZE;
. = ALIGN(4);
PROVIDE (__stack_svc_end = .);
PROVIDE (__stack_end = .);
PROVIDE (__heap_start = .);
} > ram
}
/*** EOF ***/
testing/examples/AT91R40008Test/src/crt.s
0 → 100644
View file @
1d2f4f14
/****************************************************************************
*
Copyright
(
c
)
2006
by
Michael
Fischer
.
All
rights
reserved
.
*
*
Redistribution
and
use
in
source
and
binary
forms
,
with
or
without
*
modification
,
are
permitted
provided
that
the
following
conditions
*
are
met
:
*
*
1.
Redistributions
of
source
code
must
retain
the
above
copyright
*
notice
,
this
list
of
conditions
and
the
following
disclaimer
.
*
2.
Redistributions
in
binary
form
must
reproduce
the
above
copyright
*
notice
,
this
list
of
conditions
and
the
following
disclaimer
in
the
*
documentation
and
/
or
other
materials
provided
with
the
distribution
.
*
3.
Neither
the
name
of
the
author
nor
the
names
of
its
contributors
may
*
be
used
to
endorse
or
promote
products
derived
from
this
software
*
without
specific
prior
written
permission
.
*
*
THIS
SOFTWARE
IS
PROVIDED
BY
THE
COPYRIGHT
HOLDERS
AND
CONTRIBUTORS
*
"
AS
IS
" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
*
LIMITED
TO
,
THE
IMPLIED
WARRANTIES
OF
MERCHANTABILITY
AND
FITNESS
*
FOR
A
PARTICULAR
PURPOSE
ARE
DISCLAIMED
.
IN
NO
EVENT
SHALL
*
THE
COPYRIGHT
OWNER
OR
CONTRIBUTORS
BE
LIABLE
FOR
ANY
DIRECT
,
INDIRECT
,
*
INCIDENTAL
,
SPECIAL
,
EXEMPLARY
,
OR
CONSEQUENTIAL
DAMAGES
(
INCLUDING
,
*
BUT
NOT
LIMITED
TO
,
PROCUREMENT
OF
SUBSTITUTE
GOODS
OR
SERVICES
; LOSS
*
OF
USE
,
DATA
,
OR
PROFITS
; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
*
AND
ON
ANY
THEORY
OF
LIABILITY
,
WHETHER
IN
CONTRACT
,
STRICT
LIABILITY
,
*
OR
TORT
(
INCLUDING
NEGLIGENCE
OR
OTHERWISE
)
ARISING
IN
ANY
WAY
OUT
OF
*
THE
USE
OF
THIS
SOFTWARE
,
EVEN
IF
ADVISED
OF
THE
POSSIBILITY
OF
*
SUCH
DAMAGE
.
*
****************************************************************************
*
*
History
:
*
*
09.04.06
mifi
First
Version
****************************************************************************/
/*
*
Some
defines
for
the
program
status
registers
*/
ARM_MODE_USER
=
0x10
/*
Normal
User
Mode
*/
ARM_MODE_FIQ
=
0x11
/*
FIQ
Fast
Interrupts
Mode
*/
ARM_MODE_IRQ
=
0x12
/*
IRQ
Standard
Interrupts
Mode
*/
ARM_MODE_SVC
=
0x13
/*
Supervisor
Interrupts
Mode
*/
ARM_MODE_ABORT
=
0x17
/*
Abort
Processing
memory
Faults
Mode
*/
ARM_MODE_UNDEF
=
0x1B
/*
Undefined
Instructions
Mode
*/
ARM_MODE_SYS
=
0x1F
/*
System
Running
in
Priviledged
Operating
Mode
*/
ARM_MODE_MASK
=
0x1F
I_BIT
=
0x80
/*
disable
IRQ
when
I
bit
is
set
*/
F_BIT
=
0x40
/*
disable
IRQ
when
I
bit
is
set
*/
.
section
.
vectors
,
"ax"
.
code
32
/****************************************************************************/
/*
Vector
table
and
reset
entry
*/
/****************************************************************************/
_vectors
:
ldr
pc
,
ResetAddr
/*
Reset
*/
ldr
pc
,
UndefAddr
/*
Undefined
instruction
*/
ldr
pc
,
SWIAddr
/*
Software
interrupt
*/
ldr
pc
,
PAbortAddr
/*
Prefetch
abort
*/
ldr
pc
,
DAbortAddr
/*
Data
abort
*/
ldr
pc
,
ReservedAddr
/*
Reserved
*/
ldr
pc
,
IRQAddr
/*
IRQ
interrupt
*/
ldr
pc
,
FIQAddr
/*
FIQ
interrupt
*/
ResetAddr
:
.
word
ResetHandler
UndefAddr
:
.
word
UndefHandler
SWIAddr
:
.
word
SWIHandler
PAbortAddr
:
.
word
PAbortHandler
DAbortAddr
:
.
word
DAbortHandler
ReservedAddr
:
.
word
0
IRQAddr
:
.
word
IRQHandler
FIQAddr
:
.
word
FIQHandler
.
ltorg
.
section
.
init
,
"ax"
.
code
32
.
global
ResetHandler
.
global
ExitFunction
.
extern
main
/****************************************************************************/
/*
Reset
handler
*/
/****************************************************************************/
ResetHandler
:
/
*
*
Setup
a
stack
for
each
mode
*/
msr
CPSR_c
,
#
ARM_MODE_UNDEF
| I_BIT |
F_BIT
/*
Undefined
Instruction
Mode
*/
ldr
sp
,
=
__stack_und_end
msr
CPSR_c
,
#
ARM_MODE_ABORT
| I_BIT |
F_BIT
/*
Abort
Mode
*/
ldr
sp
,
=
__stack_abt_end
msr
CPSR_c
,
#
ARM_MODE_FIQ
| I_BIT |
F_BIT
/*
FIQ
Mode
*/
ldr
sp
,
=
__stack_fiq_end
msr
CPSR_c
,
#
ARM_MODE_IRQ
| I_BIT |
F_BIT
/*
IRQ
Mode
*/
ldr
sp
,
=
__stack_irq_end
msr
CPSR_c
,
#
ARM_MODE_SVC
| I_BIT |
F_BIT
/*
Supervisor
Mode
*/
ldr
sp
,
=
__stack_svc_end
/
*
*
Clear
.
bss
section
*/
ldr
r1
,
=
__bss_start
ldr
r2
,
=
__bss_end
ldr
r3
,
=
0
bss_clear_loop
:
cmp
r1
,
r2
strne
r3
,
[
r1
],
#+
4
bne
bss_clear_loop
/
*
*
Jump
to
main
*/
mrs
r0
,
cpsr
bic
r0
,
r0
,
#
I_BIT
|
F_BIT
/*
Enable
FIQ
and
IRQ
interrupt
*/
msr
cpsr
,
r0
mov
r0
,
#
0
/*
No
arguments
*/
mov
r1
,
#
0
/*
No
arguments
*/
ldr
r2
,
=
main
mov
lr
,
pc
bx
r2
/*
And
jump
...
*/
ExitFunction
:
nop
nop
nop
b
ExitFunction
/****************************************************************************/
/*
Default
interrupt
handler
*/
/****************************************************************************/
UndefHandler
:
b
UndefHandler
SWIHandler
:
b
SWIHandler
PAbortHandler
:
b
PAbortHandler
DAbortHandler
:
b
DAbortHandler
IRQHandler
:
b
IRQHandler
FIQHandler
:
b
FIQHandler
.
weak
ExitFunction
.
weak
UndefHandler
,
PAbortHandler
,
DAbortHandler
.
weak
IRQHandler
,
FIQHandler
.
ltorg
/***
EOF
***/
testing/examples/AT91R40008Test/src/main.c
0 → 100644
View file @
1d2f4f14
/****************************************************************************
* Copyright (c) 2006 by Michael Fischer. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the author nor the names of its contributors may
* be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
* THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
* THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
****************************************************************************
* History:
*
* 30.03.06 mifi First Version for Insight tutorial
* 26.01.08 mifi Added variable "d" to test const variable.
****************************************************************************/
#define __MAIN_C__
/*
* I use the include only, to show
* how to setup a include dir in the makefile
*/
#include
<stdio.h>
#include
<stdlib.h>
#include
"typedefs.h"
/*=========================================================================*/