commit
23e8d6adf5
|
|
@ -16,3 +16,17 @@ Firmware/Doc
|
||||||
/html
|
/html
|
||||||
/latex
|
/latex
|
||||||
/Doxyfile
|
/Doxyfile
|
||||||
|
/lang/*.bin
|
||||||
|
/lang/*.hex
|
||||||
|
/lang/*.dat
|
||||||
|
/lang/*.tmp
|
||||||
|
/lang/*.out
|
||||||
|
/lang/not_tran.txt
|
||||||
|
/lang/not_used.txt
|
||||||
|
/lang/progmem1.chr
|
||||||
|
/lang/progmem1.lss
|
||||||
|
/lang/progmem1.txt
|
||||||
|
/lang/progmem1.var
|
||||||
|
/lang/text.sym
|
||||||
|
/lang/textaddr.txt
|
||||||
|
/build-env/
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
dist: trusty
|
||||||
|
before_install:
|
||||||
|
- sudo apt-get install -y ninja-build
|
||||||
|
script:
|
||||||
|
- bash -x test.sh
|
||||||
|
- bash -x build.sh
|
||||||
|
- rm Firmware/Configuration_prusa.h
|
||||||
|
- cp Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h Firmware/Configuration_prusa.h
|
||||||
|
- bash -x build.sh
|
||||||
|
- rm Firmware/Configuration_prusa.h
|
||||||
|
- cp Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h Firmware/Configuration_prusa.h
|
||||||
|
- bash -x build.sh
|
||||||
|
- rm Firmware/Configuration_prusa.h
|
||||||
|
- cp Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h Firmware/Configuration_prusa.h
|
||||||
|
- bash -x build.sh
|
||||||
|
- rm Firmware/Configuration_prusa.h
|
||||||
|
- cp Firmware/variants/1_75mm_MK2-RAMBo10a-E3Dv6full.h Firmware/Configuration_prusa.h
|
||||||
|
- bash -x build.sh
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
cmake_minimum_required(VERSION 3.0)
|
cmake_minimum_required(VERSION 3.1)
|
||||||
|
|
||||||
|
set (CMAKE_CXX_STANDARD 11)
|
||||||
|
|
||||||
project(cmake_test)
|
project(cmake_test)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -43,8 +43,8 @@
|
||||||
#define W25X20CL_SPSR SPI_SPSR(W25X20CL_SPI_RATE)
|
#define W25X20CL_SPSR SPI_SPSR(W25X20CL_SPI_RATE)
|
||||||
|
|
||||||
//LANG - Multi-language support
|
//LANG - Multi-language support
|
||||||
#define LANG_MODE 0 // primary language only
|
//#define LANG_MODE 0 // primary language only
|
||||||
//#define LANG_MODE 1 // sec. language support
|
#define LANG_MODE 1 // sec. language support
|
||||||
#define LANG_SIZE_RESERVED 0x2f00 // reserved space for secondary language (12032 bytes)
|
#define LANG_SIZE_RESERVED 0x2f00 // reserved space for secondary language (12032 bytes)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
30
README.md
30
README.md
|
|
@ -1,15 +1,24 @@
|
||||||
# Table of contents
|
# Table of contents
|
||||||
|
|
||||||
<!--ts-->
|
<!--ts-->
|
||||||
* [Development environment preparation](#1-development-environment-preparation)
|
* [Linux build](#linux)
|
||||||
* [Source code compilation](#2-source-code-compilation)
|
* [Windows build](#windows)
|
||||||
* [Automated tests](#3-automated-tests)
|
* [Automated tests](#3-automated-tests)
|
||||||
* [Documentation](#4-documentation)
|
* [Documentation](#4-documentation)
|
||||||
<!--te-->
|
<!--te-->
|
||||||
|
|
||||||
# 1. Development environment preparation
|
|
||||||
|
|
||||||
1. install `"Arduino Software IDE"` for your preferred operating system
|
# Build
|
||||||
|
## Linux
|
||||||
|
Run shell script build.sh to build for MK3 and flash with Sli3er.
|
||||||
|
If you have different printel model, follow step [2.b](#2b) from Windows build first.
|
||||||
|
If you wish to flash from Arduino, follow step [2.c](#2c) from Windows build first.
|
||||||
|
|
||||||
|
The script downloads Arduino with our modifications and Rambo board support installed, unpacks it into folder PF-build-env-\<version\> on the same level, as your Prusa-Firmware folder is located, builds firmware for MK3 using that Arduino in Prusa-Firmware-build folder on the same level as Prusa-Firmware, runs secondary language support scripts. Firmware with secondary language support is generated in lang subfolder. Use firmware.hex for MK3 variant. Use firmware_\<lang\>.hex for other printers. Don't forget to follow step [2.b](#2b) first for non-MK3 printers.
|
||||||
|
## Windows
|
||||||
|
### 1. Development environment preparation
|
||||||
|
|
||||||
|
a. install `"Arduino Software IDE"` for your preferred operating system
|
||||||
`https://www.arduino.cc -> Software->Downloads`
|
`https://www.arduino.cc -> Software->Downloads`
|
||||||
it is recommended to use older version `"1.6.9"`, as it is used on out build server to produce official builds.
|
it is recommended to use older version `"1.6.9"`, as it is used on out build server to produce official builds.
|
||||||
_note: in the case of persistent compilation problems, check the version of the currently used C/C++ compiler (GCC) - should be `4.8.1`; version can be verified by entering the command
|
_note: in the case of persistent compilation problems, check the version of the currently used C/C++ compiler (GCC) - should be `4.8.1`; version can be verified by entering the command
|
||||||
|
|
@ -17,7 +26,7 @@ _note: in the case of persistent compilation problems, check the version of the
|
||||||
if you are not sure where the file is placed (depends on how `"Arduino Software IDE"` was installed), you can use the search feature within the file system_
|
if you are not sure where the file is placed (depends on how `"Arduino Software IDE"` was installed), you can use the search feature within the file system_
|
||||||
_note: name collision for `"LiquidCrystal"` library known from previous versions is now obsolete (so there is no need to delete or rename original file/-s)_
|
_note: name collision for `"LiquidCrystal"` library known from previous versions is now obsolete (so there is no need to delete or rename original file/-s)_
|
||||||
|
|
||||||
2. add (`UltiMachine`) `RAMBo` board into the list of Arduino target boards
|
b. add (`UltiMachine`) `RAMBo` board into the list of Arduino target boards
|
||||||
`File->Preferences->Settings`
|
`File->Preferences->Settings`
|
||||||
into text field `"Additional Boards Manager URLs"`
|
into text field `"Additional Boards Manager URLs"`
|
||||||
type location
|
type location
|
||||||
|
|
@ -34,16 +43,19 @@ _note: select this item for any variant of board used in printers `'Prusa i3 MKx
|
||||||
'clicking' the item will display the installation button; select choice `"1.0.1"` from the list(last known version as of the date of issue of this document)
|
'clicking' the item will display the installation button; select choice `"1.0.1"` from the list(last known version as of the date of issue of this document)
|
||||||
_(after installation, the item is labeled as `"INSTALLED"` and can then be used for target board selection)_
|
_(after installation, the item is labeled as `"INSTALLED"` and can then be used for target board selection)_
|
||||||
|
|
||||||
3. modify platform.txt to enable float printf support:
|
c. modify platform.txt to enable float printf support:
|
||||||
add "-Wl,-u,vfprintf -lprintf_flt -lm" to "compiler.c.elf.flags=" before existing flag "-Wl,--gc-sections"
|
add "-Wl,-u,vfprintf -lprintf_flt -lm" to "compiler.c.elf.flags=" before existing flag "-Wl,--gc-sections"
|
||||||
example:
|
example:
|
||||||
`"compiler.c.elf.flags=-w -Os -Wl,-u,vfprintf -lprintf_flt -lm -Wl,--gc-sections"`
|
`"compiler.c.elf.flags=-w -Os -Wl,-u,vfprintf -lprintf_flt -lm -Wl,--gc-sections"`
|
||||||
|
|
||||||
# 2. Source code compilation
|
### 2. Source code compilation
|
||||||
|
|
||||||
place the source codes corresponding to your printer model obtained from the repository into the selected directory on your disk
|
a. place the source codes corresponding to your printer model obtained from the repository into the selected directory on your disk
|
||||||
`https://github.com/prusa3d/Prusa-Firmware/`
|
`https://github.com/prusa3d/Prusa-Firmware/`
|
||||||
in the subdirectory `"Firmware/variants/"` select the configuration file (`.h`) corresponding to your printer model, make copy named `"Configuration_prusa.h"` (or make simple renaming) and copy them into `"Firmware/"` directory
|
|
||||||
|
b.<a name="2b"></a> In the subdirectory `"Firmware/variants/"` select the configuration file (`.h`) corresponding to your printer model, make copy named `"Configuration_prusa.h"` (or make simple renaming) and copy it into `"Firmware/"` directory.
|
||||||
|
|
||||||
|
c.<a name="2c"></a> In file `"Firmware/config.h"` set LANG_MODE to 0.
|
||||||
|
|
||||||
run `"Arduino IDE"`; select the file `"Firmware.ino"` from the subdirectory `"Firmware/"` at the location, where you placed the source codes
|
run `"Arduino IDE"`; select the file `"Firmware.ino"` from the subdirectory `"Firmware/"` at the location, where you placed the source codes
|
||||||
`File->Open`
|
`File->Open`
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
#!/bin/bash
|
||||||
|
BUILD_ENV="1.0.1"
|
||||||
|
SCRIPT_PATH="$( cd "$(dirname "$0")" ; pwd -P )"
|
||||||
|
|
||||||
|
if [ ! -d "build-env" ]; then
|
||||||
|
mkdir build-env || exit 1
|
||||||
|
fi
|
||||||
|
cd build-env || exit 2
|
||||||
|
|
||||||
|
if [ ! -f "PF-build-env-Linux64-$BUILD_ENV.zip" ]; then
|
||||||
|
wget https://github.com/mkbel/PF-build-env/releases/download/$BUILD_ENV/PF-build-env-Linux64-$BUILD_ENV.zip || exit 3
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d "../../PF-build-env-$BUILD_ENV" ]; then
|
||||||
|
unzip PF-build-env-Linux64-$BUILD_ENV.zip -d ../../PF-build-env-$BUILD_ENV || exit 4
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd ../../PF-build-env-$BUILD_ENV || exit 5
|
||||||
|
BUILD_ENV_PATH="$( pwd -P )"
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
if [ ! -d "Prusa-Firmware-build" ]; then
|
||||||
|
mkdir Prusa-Firmware-build || exit 6
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd Prusa-Firmware-build || exit 7
|
||||||
|
BUILD_PATH="$( pwd -P )"
|
||||||
|
|
||||||
|
if [ ! -f "$SCRIPT_PATH/Firmware/Configuration_prusa.h" ]; then
|
||||||
|
cp $SCRIPT_PATH/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 8
|
||||||
|
fi
|
||||||
|
|
||||||
|
$BUILD_ENV_PATH/arduino $SCRIPT_PATH/Firmware/Firmware.ino --verify --board rambo:avr:rambo --pref build.path=$BUILD_PATH || exit 9
|
||||||
|
|
||||||
|
export ARDUINO=$BUILD_ENV_PATH
|
||||||
|
|
||||||
|
cd $SCRIPT_PATH/lang
|
||||||
|
./lang-build.sh || exit 10
|
||||||
|
./fw-build.sh || exit 11
|
||||||
|
|
@ -5,17 +5,19 @@
|
||||||
# This file is 'included' in all scripts.
|
# This file is 'included' in all scripts.
|
||||||
#
|
#
|
||||||
# Arduino main folder:
|
# Arduino main folder:
|
||||||
export ARDUINO=C:/arduino-1.8.5
|
if [ -z "$ARDUINO" ]; then
|
||||||
|
export ARDUINO=C:/arduino-1.8.5
|
||||||
|
fi
|
||||||
#
|
#
|
||||||
# Arduino builder:
|
# Arduino builder:
|
||||||
export BUILDER=$ARDUINO/arduino_debug.exe
|
export BUILDER=$ARDUINO/arduino-builder
|
||||||
#
|
#
|
||||||
# AVR gcc tools:
|
# AVR gcc tools:
|
||||||
export OBJCOPY=$ARDUINO/hardware/tools/avr/bin/avr-objcopy.exe
|
export OBJCOPY=$ARDUINO/hardware/tools/avr/bin/avr-objcopy
|
||||||
export OBJDUMP=$ARDUINO/hardware/tools/avr/bin/avr-objdump.exe
|
export OBJDUMP=$ARDUINO/hardware/tools/avr/bin/avr-objdump
|
||||||
#
|
#
|
||||||
# Output folder:
|
# Output folder:
|
||||||
export OUTDIR="../../output"
|
export OUTDIR="../../Prusa-Firmware-build"
|
||||||
#
|
#
|
||||||
# Objects folder:
|
# Objects folder:
|
||||||
export OBJDIR="$OUTDIR/sketch"
|
export OBJDIR="$OUTDIR/sketch"
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
#!/bin/bash
|
||||||
|
cd .. || exit 5
|
||||||
|
|
||||||
|
if [ ! -d "Prusa-Firmware-test" ]; then
|
||||||
|
mkdir Prusa-Firmware-test || exit 10
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd Prusa-Firmware-test || exit 20
|
||||||
|
|
||||||
|
cmake -G "Eclipse CDT4 - Ninja" ../Prusa-Firmware || exit 30
|
||||||
|
cmake --build . || exit 35
|
||||||
|
./tests || exit 40
|
||||||
Loading…
Reference in New Issue