[qemu][cortex-m4] Support qemu-m4 target.
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -11,3 +11,4 @@ t
|
|||||||
tagit
|
tagit
|
||||||
blk.bin
|
blk.bin
|
||||||
*.dSYM
|
*.dSYM
|
||||||
|
scripts/toolpaths.local
|
||||||
8
project/qemu-m4-test.mk
Normal file
8
project/qemu-m4-test.mk
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
# main project for qemu-m4
|
||||||
|
MODULES += \
|
||||||
|
app/shell
|
||||||
|
|
||||||
|
include project/virtual/test.mk
|
||||||
|
include project/virtual/fs.mk
|
||||||
|
include project/virtual/minip.mk
|
||||||
|
include project/target/qemu-m4.mk
|
||||||
4
project/target/qemu-m4.mk
Normal file
4
project/target/qemu-m4.mk
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
# main project for qemu-m4
|
||||||
|
TARGET := qemu-m4
|
||||||
|
|
||||||
|
WITH_LINKER_GC := 0
|
||||||
57
scripts/do-qemum4
Executable file
57
scripts/do-qemum4
Executable file
@@ -0,0 +1,57 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
DEFAULT_TOOLPATH="$DIR/toolpaths.default"
|
||||||
|
if [ -e "$DEFAULT_TOOLPATH" ]
|
||||||
|
then
|
||||||
|
source $DEFAULT_TOOLPATH
|
||||||
|
fi
|
||||||
|
|
||||||
|
function HELP {
|
||||||
|
echo "help:"
|
||||||
|
echo "-c cmpctmalloc instead of dlmalloc"
|
||||||
|
echo "-M miniheap instead of dlmalloc"
|
||||||
|
echo "-h for help"
|
||||||
|
echo "all arguments after -- are passed to qemu directly"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
DO_CMPCTMALLOC=0
|
||||||
|
DO_MINIHEAP=0
|
||||||
|
MEMSIZE=8
|
||||||
|
|
||||||
|
while getopts bdhm:cMnt6 FLAG; do
|
||||||
|
case $FLAG in
|
||||||
|
c) DO_CMPCTMALLOC=1;;
|
||||||
|
M) DO_MINIHEAP=1;;
|
||||||
|
M) DO_MINIHEAP=1;;
|
||||||
|
h) HELP;;
|
||||||
|
\?)
|
||||||
|
echo unrecognized option
|
||||||
|
HELP
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
shift $((OPTIND-1))
|
||||||
|
|
||||||
|
if [ -z "$QEMUM4" ]; then
|
||||||
|
echo "QEMUM4 is not defined. Set QEMUM4='path/to/qemu-m4' inside scripts/toolpaths.local"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
PROJECT="qemu-m4-test"
|
||||||
|
|
||||||
|
ARGS=" -serial tcp::12345,server,nowait " # Logs
|
||||||
|
ARGS+=" -serial tcp::12344,server,nowait " # Debug
|
||||||
|
ARGS+=" -serial stdio" # Console
|
||||||
|
ARGS+=" -machine pebble-s4-bb -cpu cortex-m4"
|
||||||
|
ARGS+=" -pflash build-${PROJECT}/lk.bin "
|
||||||
|
|
||||||
|
if [ $DO_CMPCTMALLOC == 1 ]; then
|
||||||
|
MAKE_VARS=LK_HEAP_IMPLEMENTATION=cmpctmalloc
|
||||||
|
elif [ $DO_MINIHEAP == 1 ]; then
|
||||||
|
MAKE_VARS=LK_HEAP_IMPLEMENTATION=miniheap
|
||||||
|
fi
|
||||||
|
|
||||||
|
make $MAKE_VARS $PROJECT -j4 &&
|
||||||
|
echo $QEMUM4 $ARGS $@ &&
|
||||||
|
$QEMUM4 $ARGS $@
|
||||||
8
scripts/toolpaths.default
Normal file
8
scripts/toolpaths.default
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
LOCAL_TOOLPATH="$DIR/toolpaths.local"
|
||||||
|
if [ -e "$LOCAL_TOOLPATH" ]
|
||||||
|
then
|
||||||
|
source $LOCAL_TOOLPATH
|
||||||
|
fi
|
||||||
29
target/qemu-m4/include/target/debugconfig.h
Normal file
29
target/qemu-m4/include/target/debugconfig.h
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2012 Travis Geiselbrecht
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
* a copy of this software and associated documentation files
|
||||||
|
* (the "Software"), to deal in the Software without restriction,
|
||||||
|
* including without limitation the rights to use, copy, modify, merge,
|
||||||
|
* publish, distribute, sublicense, and/or sell copies of the Software,
|
||||||
|
* and to permit persons to whom the Software is furnished to do so,
|
||||||
|
* subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be
|
||||||
|
* included in all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||||
|
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||||
|
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||||
|
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
#ifndef __TARGET_DEBUGCONFIG_H
|
||||||
|
#define __TARGET_DEBUGCONFIG_H
|
||||||
|
|
||||||
|
// UART 3 is the console
|
||||||
|
#define DEBUG_UART 3
|
||||||
|
|
||||||
|
#endif
|
||||||
48
target/qemu-m4/init.c
Normal file
48
target/qemu-m4/init.c
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2012 Travis Geiselbrecht
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
* a copy of this software and associated documentation files
|
||||||
|
* (the "Software"), to deal in the Software without restriction,
|
||||||
|
* including without limitation the rights to use, copy, modify, merge,
|
||||||
|
* publish, distribute, sublicense, and/or sell copies of the Software,
|
||||||
|
* and to permit persons to whom the Software is furnished to do so,
|
||||||
|
* subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be
|
||||||
|
* included in all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||||
|
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||||
|
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||||
|
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
#include <err.h>
|
||||||
|
#include <debug.h>
|
||||||
|
#include <trace.h>
|
||||||
|
#include <target.h>
|
||||||
|
#include <compiler.h>
|
||||||
|
#include <dev/gpio.h>
|
||||||
|
#include <stm32f4xx_usart.h>
|
||||||
|
#include <stm32f4xx_rcc.h>
|
||||||
|
#include <stm32f4xx_gpio.h>
|
||||||
|
#include <platform/stm32.h>
|
||||||
|
#include <platform/gpio.h>
|
||||||
|
#include <target/debugconfig.h>
|
||||||
|
|
||||||
|
void target_early_init(void)
|
||||||
|
{
|
||||||
|
stm32_debug_early_init();
|
||||||
|
}
|
||||||
|
|
||||||
|
void target_init(void)
|
||||||
|
{
|
||||||
|
TRACE_ENTRY;
|
||||||
|
|
||||||
|
stm32_debug_init();
|
||||||
|
|
||||||
|
TRACE_EXIT;
|
||||||
|
}
|
||||||
22
target/qemu-m4/rules.mk
Normal file
22
target/qemu-m4/rules.mk
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
LOCAL_DIR := $(GET_LOCAL_DIR)
|
||||||
|
|
||||||
|
MODULE := $(LOCAL_DIR)
|
||||||
|
|
||||||
|
STM32_CHIP := stm32f407
|
||||||
|
|
||||||
|
PLATFORM := stm32f4xx
|
||||||
|
|
||||||
|
GLOBAL_DEFINES += \
|
||||||
|
ENABLE_UART2=1 \
|
||||||
|
ENABLE_UART3=1 \
|
||||||
|
HSE_VALUE=8000000 \
|
||||||
|
PLL_M_VALUE=8 \
|
||||||
|
PLL_N_VALUE=336 \
|
||||||
|
PLL_P_VALUE=2 \
|
||||||
|
PKTBUF_POOL_SIZE=16
|
||||||
|
|
||||||
|
MODULE_SRCS += \
|
||||||
|
$(LOCAL_DIR)/init.c
|
||||||
|
|
||||||
|
include make/module.mk
|
||||||
|
|
||||||
Reference in New Issue
Block a user