Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
bel
bel4_ezb_public
Commits
71ba1d0b
Commit
71ba1d0b
authored
Feb 20, 2018
by
Martin Horauer
Browse files
added interrupt example!
parent
5df4e4df
Changes
15
Expand all
Hide whitespace changes
Inline
Side-by-side
XMC_MBED/APP_AnalogOut/Makefile
View file @
71ba1d0b
...
...
@@ -70,10 +70,10 @@ GDB_ARGS += -ex "monitor SWO EnableTarget 16000000 0 1 0"
################################################################################
# BUILD RULES
all
:
$(BUILDDIR)/$(TOOLCHAIN)/$(TARGET).elf
all
:
$(BUILDDIR)/$(
BOARD)/$(
TOOLCHAIN)/$(TARGET).elf
$(BUILDDIR)/$(TOOLCHAIN)/$(TARGET).elf
:
$(wildcard *.cpp)
$(BUILDDIR)/$(
BOARD)/$(
TOOLCHAIN)/$(TARGET).elf
:
$(wildcard *.cpp)
@
echo
"----------------------------------------------------------------------"
@
echo
"Building"
@
echo
""
...
...
XMC_MBED/APP_BLINKY/Makefile
View file @
71ba1d0b
...
...
@@ -70,10 +70,10 @@ GDB_ARGS += -ex "monitor SWO EnableTarget 16000000 0 1 0"
################################################################################
# BUILD RULES
all
:
$(BUILDDIR)/$(TOOLCHAIN)/$(TARGET).elf
all
:
$(BUILDDIR)/$(
BOARD)/$(
TOOLCHAIN)/$(TARGET).elf
$(BUILDDIR)/$(TOOLCHAIN)/$(TARGET).elf
:
$(wildcard *.cpp)
$(BUILDDIR)/$(
BOARD)/$(
TOOLCHAIN)/$(TARGET).elf
:
$(wildcard *.cpp)
@
echo
"----------------------------------------------------------------------"
@
echo
"Building"
@
echo
""
...
...
XMC_MBED/APP_InterruptIn/.cproject
0 → 100644
View file @
71ba1d0b
This diff is collapsed.
Click to expand it.
XMC_MBED/APP_InterruptIn/.mbed
0 → 100644
View file @
71ba1d0b
TARGET=XMC_4500_RELAX_KIT
TOOLCHAIN=GCC_ARM
XMC_MBED/APP_InterruptIn/.project
0 → 100644
View file @
71ba1d0b
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>
APP_BLINKY
</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>
org.eclipse.cdt.managedbuilder.core.genmakebuilder
</name>
<triggers>
clean,full,incremental,
</triggers>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>
org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
</name>
<triggers>
full,incremental,
</triggers>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>
org.eclipse.cdt.core.cnature
</nature>
<nature>
org.eclipse.cdt.core.ccnature
</nature>
<nature>
org.eclipse.cdt.managedbuilder.core.managedBuildNature
</nature>
<nature>
org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
</nature>
</natures>
</projectDescription>
\ No newline at end of file
XMC_MBED/APP_InterruptIn/BUILD/.mbedignore
0 → 100644
View file @
71ba1d0b
*
XMC_MBED/APP_InterruptIn/DOC/tw_logo.png
0 → 100644
View file @
71ba1d0b
18 KB
XMC_MBED/APP_InterruptIn/Makefile
0 → 100644
View file @
71ba1d0b
################################################################################
# Makefile for XMC4500 RelaxKit using uCOS-III
# v1, 02/2018
# Martin Horauer, UAS Technikum Wien
#
# Supported: Windows, Linux, OSX
# Requirements:
# * GCC ARM https://launchpad.net/gcc-arm-embedded/+download
# * SEGGER JLINK https://www.segger.com/jlink-software.html
# * DOXYGEN http://www.stack.nl/~dimitri/doxygen/
################################################################################
# USAGE
# -----
# make .... build the program image
# make debug .... build the program image and invoke gdb
# make flash .... build an flash the application
# make erase .... erase the target device
# make doc .... run doxygen - output will be in > doc
# make clean .... remove intermediate and generated files
################################################################################
# define the name of the generated output file
#
TARGET
=
main
################################################################################
# below only edit with care
#
VENDOR
=
Infineon
################################################################################
# define the following symbol -D JLINK_RTT to enable JLINK_RTT tracing
# -D SEMI_HOSTING to enable semi hosted tracing
# comment the line to disable tracing
TRACE
=
-D
SEMI_HOSTING
################################################################################
# TOOLS & ARGS
#
TERMINAL
=
gnome-terminal
TOOLCHAIN
=
GCC_ARM
BOARD
=
XMC_4500_RELAX_KIT
BUILDDIR
=
BUILD
DOCDIR
=
DOC
MBED
=
mbed
GDB
=
arm-none-eabi-gdb
# DETERMINE OS
ifdef
SystemRoot
RM
=
del /Q
FixPath
=
$(
subst
/,
\,
$1
)
else
RM
=
rm
-rf
FixPath
=
$1
endif
GDB_ARGS
=
-ex
"target remote :2331"
GDB_ARGS
+=
-ex
"monitor reset"
GDB_ARGS
+=
-ex
"load"
GDB_ARGS
+=
-ex
"monitor reset"
################################################################################
# SEMI_HOSTED DEBUGGING
GDB_ARGS
+=
-ex
"monitor SWO EnableTarget 16000000 0 1 0"
# RTT OPTION
#GDB_ARGS += -ex "monitor exec SetRTTAddr 0x20000000"
#GDB_ARGS += -ex "monitor exec SetRTTSearchRanges 0x20000000 0x1000"
################################################################################
# BUILD RULES
all
:
$(BUILDDIR)/$(BOARD)/$(TOOLCHAIN)/$(TARGET).elf
$(BUILDDIR)/$(BOARD)/$(TOOLCHAIN)/$(TARGET).elf
:
$(wildcard *.cpp)
@
echo
"----------------------------------------------------------------------"
@
echo
"Building"
@
echo
""
$(MBED)
compile
-m
$(BOARD)
-t
$(TOOLCHAIN)
-N
main
@
echo
""
################################################################################
# DEBUG RULES
debug
:
$(BUILDDIR)/$(BOARD)/$(TOOLCHAIN)/$(TARGET).elf
ifdef
SystemRoot
@
call start JLinkGDBServer
-Device
XMC4500-1024
-if
SWD
else
$(TERMINAL)
-e
"JLinkGDBServer -Device XMC4500-1024 -if SWD"
&
sleep
1
&&
$(TERMINAL)
-e
"telnet 127.0.0.1 2333"
&
endif
$(GDB)
-q
$(BUILDDIR)
/
$(BOARD)
/
$(TOOLCHAIN)
/
$(TARGET)
.elf
$(GDB_ARGS)
################################################################################
# FLASH RULES
flash
:
$(BUILDDIR)/$(BOARD)/$(TOOLCHAIN)/$(TARGET).hex
echo
-e
'speed 4000\nconnect\nh\nloadbin
$(BUILDDIR)
/
$(BOARD)
/
$(TOOLCHAIN)
/
$(TARGET)
.hex,0xC000000\nr\ng\nq'
| JLinkExe
-Device
XMC4500-1024
-if
SWD
################################################################################
# ERASE DEVICE
erase
:
echo
-e
'speed 4000\nconnect\nerase\nr\nq'
| JLinkExe
-Device
XMC4500-1024
-if
SWD
################################################################################
# DOCUMENTATION RULES
doc
:
$(wildcard *.cpp)
doxygen
################################################################################
# CLEAN RULES
clean
:
$(RM)
$(
call
FixPath,
*
.pyc
)
$(RM)
$(
call
FixPath,
${BUILDDIR}
/
*
)
$(RM)
$(
call
FixPath,
${DOCDIR}
/html/
*
)
################################################################################
# EOF
################################################################################
XMC_MBED/APP_InterruptIn/README.md
0 → 100644
View file @
71ba1d0b
# InterruptIn Example
This example illustrates how to facilitate an interrupt using an IO asd input
with the XMC4500 Relax Kit. In particular, port P1_15 connected to BUTTON2 is
used as interrupt source. Whenever a rising edge is detected LED2 will be
switched on, otherwise, when a falling edge is detected LED2 will be switched
off. In other words, when you press BUTTON2 LED2 will be on when you release the
button, LED2 will be off.

This example also uses MBED-OS queue functionality as well as UART1 on the XMC
Relax-Kit.
## Makefile Usage
```
make # build the application
make flash # flash the application
make debug # debug the application
make erase # erase the program memory
make doc # invoke doxygen
make clean # clean the project
```
# Manuell
## Building
```
mbed compile -c -m XMC_4500_RELAX_KIT -t GCC_ARM -N main
```
This creates several files in the BUILD directory where you can find the
executables (bin, elf, hex ...).
## Flashing
```
$ JLinkExe -Device XMC4500-1024 -if SWD -speed 4000
J-LINK> h
J-Link> loadfile BUILD/XMC_4500_RELAX_KIT/GCC_ARM/main.hex
J-Link> r
J-Link> g
```
## Debugging
(1) Start the
`JLinkGDEBServer`
, e.g.:
```
JLinkGDBServer -Device XMC4500-1024 -if SWD
```
(2) In order to log messages printed to
`stdout`
we connect to port 2333 via
telnet.
```
telnet 127.0.0.1 2333
```
(3) We launch the debugger and control the debug session:
```
arm-none-eabi-gdb -q BUILD/XMC_4500_RELAX_KIT/GCC_ARM/main.elf
(gdb) target remote :2331
(gdb) monitor reset
(gdb) load
(gdb) monitor reset
(gdb) b main
(gdb) c
[...]
```
XMC_MBED/APP_InterruptIn/doxyfile
0 → 100644
View file @
71ba1d0b
This diff is collapsed.
Click to expand it.
XMC_MBED/APP_InterruptIn/main.cpp
0 → 100644
View file @
71ba1d0b
/* mbed Example Program
* Copyright (c) 2006-2014 ARM Limited
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/******************************************************************* Includes */
#include "mbed.h"
#include "rtos.h"
/***************************************************************** Prototypes */
InterruptIn
sw
(
SW2
);
// BUTTON2 = P1.15
DigitalOut
led1
(
LED1
);
// LED1 = P1.1
Serial
device
(
P0_1
,
P0_0
);
// UART1 -> Tx = P0.1, Rx = P0.0
/****************************************************************** Callbacks */
/**
* Callback if rising edge on P1.15 is detected
*/
void
rise_handler
(
void
)
{
// Toggle LED1
led1
=
!
led1
;
}
/**
* Callback if falling edge on P1.15 is detected
*/
void
fall_handler
(
void
)
{
// output message via UART1
device
.
printf
(
"fall_handler in context %p
\r\n
"
,
Thread
::
gettid
());
// Toggle LED1
led1
=
!
led1
;
}
/****************************************************************** Functions */
/**
* Main Function
*/
int
main
(
void
)
{
// Request the shared queue
EventQueue
*
queue
=
mbed_event_queue
();
// Output message via UART1
device
.
printf
(
"Starting in context %p
\r\n
"
,
Thread
::
gettid
());
// The 'rise' handler will execute in the IRQ context
sw
.
rise
(
rise_handler
);
// The 'fall' handler will execute in the context of the shared queue thread
sw
.
fall
(
queue
->
event
(
fall_handler
));
}
/*! EOF */
XMC_MBED/APP_InterruptIn/mbed-os
0 → 120000
View file @
71ba1d0b
../mbed-os/
\ No newline at end of file
XMC_MBED/APP_InterruptIn/mbed-os.lib
0 → 100644
View file @
71ba1d0b
https://github.com/mbed-Infineon-XMC/mbed-os.git
XMC_MBED/APP_InterruptIn/mbed_settings.py
0 → 100644
View file @
71ba1d0b
"""
mbed SDK
Copyright (c) 2016 ARM Limited
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
"""
from
os.path
import
join
,
abspath
,
dirname
,
subprocess
#ROOT = abspath(join(dirname(__file__), "."))
##############################################################################
# Build System Settings
##############################################################################
#BUILD_DIR = abspath(join(ROOT, "build"))
# ARM
#ARM_PATH = "C:/Program Files/ARM"
# GCC ARM
#GCC_ARM_PATH = ""
GCC_ARM_PATH
=
dirname
(
subprocess
.
check_output
([
"which"
,
"arm-none-eabi-gcc"
]))
# GCC CodeRed
#GCC_CR_PATH = "C:/code_red/RedSuite_4.2.0_349/redsuite/Tools/bin"
# IAR
#IAR_PATH = "C:/Program Files (x86)/IAR Systems/Embedded Workbench 7.0/arm"
# Goanna static analyser. Please overload it in private_settings.py
#GOANNA_PATH = "c:/Program Files (x86)/RedLizards/Goanna Central 3.2.3/bin"
#BUILD_OPTIONS = []
# mbed.org username
#MBED_ORG_USER = ""
XMC_MBED/APP_InterruptIn/seriallog.png
0 → 100644
View file @
71ba1d0b
44.3 KB
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment