commit
23e8d6adf5
13 changed files with 117 additions and 17 deletions
14
.gitignore
vendored
14
.gitignore
vendored
|
@ -16,3 +16,17 @@ Firmware/Doc
|
|||
/html
|
||||
/latex
|
||||
/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/
|
||||
|
|
18
.travis.yml
Normal file
18
.travis.yml
Normal file
|
@ -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)
|
||||
|
||||
|
|
|
@ -43,8 +43,8 @@
|
|||
#define W25X20CL_SPSR SPI_SPSR(W25X20CL_SPI_RATE)
|
||||
|
||||
//LANG - Multi-language support
|
||||
#define LANG_MODE 0 // primary language only
|
||||
//#define LANG_MODE 1 // sec. language support
|
||||
//#define LANG_MODE 0 // primary language only
|
||||
#define LANG_MODE 1 // sec. language support
|
||||
#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
|
||||
|
||||
<!--ts-->
|
||||
* [Development environment preparation](#1-development-environment-preparation)
|
||||
* [Source code compilation](#2-source-code-compilation)
|
||||
* [Linux build](#linux)
|
||||
* [Windows build](#windows)
|
||||
* [Automated tests](#3-automated-tests)
|
||||
* [Documentation](#4-documentation)
|
||||
<!--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`
|
||||
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
|
||||
|
@ -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_
|
||||
_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`
|
||||
into text field `"Additional Boards Manager URLs"`
|
||||
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)
|
||||
_(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"
|
||||
example:
|
||||
`"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/`
|
||||
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
|
||||
`File->Open`
|
||||
|
|
40
build.sh
Executable file
40
build.sh
Executable file
|
@ -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.
|
||||
#
|
||||
# Arduino main folder:
|
||||
export ARDUINO=C:/arduino-1.8.5
|
||||
if [ -z "$ARDUINO" ]; then
|
||||
export ARDUINO=C:/arduino-1.8.5
|
||||
fi
|
||||
#
|
||||
# Arduino builder:
|
||||
export BUILDER=$ARDUINO/arduino_debug.exe
|
||||
export BUILDER=$ARDUINO/arduino-builder
|
||||
#
|
||||
# AVR gcc tools:
|
||||
export OBJCOPY=$ARDUINO/hardware/tools/avr/bin/avr-objcopy.exe
|
||||
export OBJDUMP=$ARDUINO/hardware/tools/avr/bin/avr-objdump.exe
|
||||
export OBJCOPY=$ARDUINO/hardware/tools/avr/bin/avr-objcopy
|
||||
export OBJDUMP=$ARDUINO/hardware/tools/avr/bin/avr-objdump
|
||||
#
|
||||
# Output folder:
|
||||
export OUTDIR="../../output"
|
||||
export OUTDIR="../../Prusa-Firmware-build"
|
||||
#
|
||||
# Objects folder:
|
||||
export OBJDIR="$OUTDIR/sketch"
|
||||
|
|
0
lang/fw-build.sh
Normal file → Executable file
0
lang/fw-build.sh
Normal file → Executable file
0
lang/lang-build.sh
Normal file → Executable file
0
lang/lang-build.sh
Normal file → Executable file
0
lang/progmem.sh
Normal file → Executable file
0
lang/progmem.sh
Normal file → Executable file
0
lang/textaddr.sh
Normal file → Executable file
0
lang/textaddr.sh
Normal file → Executable file
0
lang/update_lang.sh
Normal file → Executable file
0
lang/update_lang.sh
Normal file → Executable file
12
test.sh
Executable file
12
test.sh
Executable file
|
@ -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 a new issue