diff --git a/src/scripts/configure_rpiA.bat b/src/scripts/configure_rpiA.bat new file mode 100644 index 00000000..4fcba39d --- /dev/null +++ b/src/scripts/configure_rpiA.bat @@ -0,0 +1 @@ +cmake -G "CodeBlocks - MinGW Makefiles" %* -DCMAKE_TOOLCHAIN_FILE=../toolchain-arm-none-eabi-rpiA.cmake ../ diff --git a/src/scripts/configure_rpiA.sh b/src/scripts/configure_rpiA.sh new file mode 100644 index 00000000..e4bef85e --- /dev/null +++ b/src/scripts/configure_rpiA.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +cmake -G "CodeBlocks - Unix Makefiles" "$*" -DCMAKE_TOOLCHAIN_FILE=../toolchain-arm-none-eabi-rpiA.cmake ../ diff --git a/src/scripts/release.sh b/src/scripts/release.sh index c2a0d09b..01f4cb1e 100755 --- a/src/scripts/release.sh +++ b/src/scripts/release.sh @@ -17,7 +17,7 @@ NAME=RGBtoHDMI_$(date +"%Y%m%d")_$VERSION DIR=releases/${NAME} mkdir -p $DIR -for MODEL in rpi rpi2 rpi3 rpi4 +for MODEL in rpi rpiA rpi2 rpi3 rpi4 do # compile debug kernel ./clobber.sh diff --git a/src/toolchain-arm-none-eabi-rpiA.cmake b/src/toolchain-arm-none-eabi-rpiA.cmake new file mode 100644 index 00000000..366b2482 --- /dev/null +++ b/src/toolchain-arm-none-eabi-rpiA.cmake @@ -0,0 +1,71 @@ + +# Part of the Raspberry-Pi Bare Metal Tutorials +# Copyright (c) 2013-2015, Brian Sidebotham +# 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. + +# 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 HOLDER 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. + +# A CMake toolchain file so we can cross-compile for the Rapsberry-Pi bare-metal + +include(CMakeForceCompiler) + +# usage +# cmake -DCMAKE_TOOLCHAIN_FILE=../toolchain-arm-none-eabi.cmake ../ + +# The Generic system name is used for embedded targets (targets without OS) in +# CMake +set( CMAKE_SYSTEM_NAME Generic ) +set( CMAKE_SYSTEM_PROCESSOR BCM2835 ) + +# Set a toolchain path. You only need to set this if the toolchain isn't in +# your system path. Don't forget a trailing path separator! +set( TC_PATH "" ) + +# The toolchain prefix for all toolchain executables +set( CROSS_COMPILE arm-none-eabi- ) + +# specify the cross compiler. We force the compiler so that CMake doesn't +# attempt to build a simple test program as this will fail without us using +# the -nostartfiles option on the command line +CMAKE_FORCE_C_COMPILER( ${TC_PATH}${CROSS_COMPILE}gcc GNU ) + +# We must set the OBJCOPY setting into cache so that it's available to the +# whole project. Otherwise, this does not get set into the CACHE and therefore +# the build doesn't know what the OBJCOPY filepath is +set( CMAKE_OBJCOPY ${TC_PATH}${CROSS_COMPILE}objcopy + CACHE FILEPATH "The toolchain objcopy command " FORCE ) + +# Set the CMAKE C flags (which should also be used by the assembler! +set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=vfp" ) +set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfloat-abi=hard" ) +set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv6zk" ) +set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mtune=arm1176jzf-s" ) + +set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "" ) +set( CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "" ) + +# Add the USE_ARM_CAPTURE definition so conditional compilation works +add_definitions( -DUSE_ARM_CAPTURE=1 ) + +set( KERNEL_NAME "./kernelrpiA.img" ) +