Merge branch 'devel' into fw4

This commit is contained in:
Oskar Weigl
2018-05-15 10:22:19 -07:00
10 changed files with 49 additions and 12 deletions
+12 -3
View File
@@ -19,11 +19,18 @@ cache:
- "$HOME/dl"
install:
- export GCC_DIR=$HOME/dl/gcc-arm-none-eabi-5_2-2015q4
- export GCC_ARCHIVE=$HOME/dl/gcc-arm-none-eabi-5_2-2015q4-20151219-linux.tar.bz2
- export GCC_URL=https://launchpad.net/gcc-arm-embedded/5.0/5-2015-q4-major/+download/gcc-arm-none-eabi-5_2-2015q4-20151219-linux.tar.bz2
# - export GCC_DIR=$HOME/dl/gcc-arm-none-eabi-5_2-2015q4
# - export GCC_ARCHIVE=$HOME/dl/gcc-arm-none-eabi-5_2-2015q4-20151219-linux.tar.bz2
# - export GCC_URL=https://launchpad.net/gcc-arm-embedded/5.0/5-2015-q4-major/+download/gcc-arm-none-eabi-5_2-2015q4-20151219-linux.tar.bz2
# - if [ ! -e $GCC_DIR/bin/arm-none-eabi-gcc ]; then wget $GCC_URL -O $GCC_ARCHIVE; tar xfj $GCC_ARCHIVE -C $HOME/dl; fi
# - export PATH=$PATH:$GCC_DIR/bin
- export GCC_DIR=$HOME/dl/gcc-arm-none-eabi-7-2017-q4-major
- export GCC_ARCHIVE=$HOME/dl/gcc-arm-none-eabi-7-2017-q4-major-linux.tar.bz2
- export GCC_URL=https://developer.arm.com/-/media/Files/downloads/gnu-rm/7-2017q4/gcc-arm-none-eabi-7-2017-q4-major-linux.tar.bz2
- if [ ! -e $GCC_DIR/bin/arm-none-eabi-gcc ]; then wget $GCC_URL -O $GCC_ARCHIVE; tar xfj $GCC_ARCHIVE -C $HOME/dl; fi
- export PATH=$PATH:$GCC_DIR/bin
- export TUP_DIR=$HOME/dl/tup_0.7.5-0~16.04.york0_amd64
- export TUP_ARCHIVE=$HOME/dl/tup_0.7.5-0~16.04.york0_amd64.deb
- export TUP_URL=http://ppa.launchpad.net/jonathonf/tup/ubuntu/pool/main/t/tup/tup_0.7.5-0~16.04.york0_amd64.deb
@@ -36,6 +43,8 @@ env:
- CONFIG_BOARD_VERSION=v3.3 DEPLOY=v3.3
- CONFIG_BOARD_VERSION=v3.4-24V DEPLOY=v3.4-24V
- CONFIG_BOARD_VERSION=v3.4-48V DEPLOY=v3.4-48V
- CONFIG_BOARD_VERSION=v3.5-24V DEPLOY=v3.5-24V
- CONFIG_BOARD_VERSION=v3.5-48V DEPLOY=v3.5-48V
# Various protocol combinations
- CONFIG_BOARD_VERSION=v3.4-24V CONFIG_USB_PROTOCOL=native-stream CONFIG_UART_PROTOCOL=native
+1 -1
View File
@@ -130,7 +130,7 @@ bool Encoder::run_offset_calibration() {
static const float start_lock_duration = 1.0f;
static const float scan_omega = 4.0f * M_PI;
static const float scan_distance = 16.0f * M_PI;
static const int num_steps = scan_distance / scan_omega * current_meas_hz;
static const int num_steps = (int)(scan_distance / scan_omega * (float)current_meas_hz);
// Temporarily disable index search so it doesn't mess
// with the offset calibration
+8 -3
View File
@@ -49,7 +49,12 @@ end
function GCCToolchain(prefix, builddir, compiler_flags, linker_flags)
-- add some default compiler flags
compiler_flags += '-fstack-usage'
-- -fstack-usage gives a warning for some functions containing inline assembly (prvPortStartFirstTask in particular)
-- so for now we just disable it
calculate_stack_usage = false
if calculate_stack_usage then
compiler_flags += '-fstack-usage'
end
gcc_generic_compiler = function(compiler, compiler_flags, gen_su_file, src, flags, includes, outputs)
-- convert include list to flags
@@ -79,8 +84,8 @@ function GCCToolchain(prefix, builddir, compiler_flags, linker_flags)
}
end
return {
compile_c = function(src, flags, includes, outputs) gcc_generic_compiler(prefix..'gcc -std=c99', compiler_flags, true, src, flags, includes, outputs) end,
compile_cpp = function(src, flags, includes, outputs) gcc_generic_compiler(prefix..'g++ -std=c++14', compiler_flags, true, src, flags, includes, outputs) end,
compile_c = function(src, flags, includes, outputs) gcc_generic_compiler(prefix..'gcc -std=c99', compiler_flags, calculate_stack_usage, src, flags, includes, outputs) end,
compile_cpp = function(src, flags, includes, outputs) gcc_generic_compiler(prefix..'g++ -std=c++14', compiler_flags, calculate_stack_usage, src, flags, includes, outputs) end,
compile_asm = function(src, flags, includes, outputs) gcc_generic_compiler(prefix..'gcc -x assembler-with-cpp', compiler_flags, false, src, flags, includes, outputs) end,
link = function(objects, output_name)
output_name = builddir..'/'..output_name
+3 -3
View File
@@ -147,7 +147,7 @@ static inline auto make_obj_tree() {
make_protocol_property("test_property", &test_property),
make_protocol_function("test_function", static_functions, &StaticFunctions::test_function, "delta"),
make_protocol_function("get_oscilloscope_val", static_functions, &StaticFunctions::get_oscilloscope_val, "index"),
#if HW_VERSION_MAJOR == 3 && HW_VERSION_MINOR == 4
#if HW_VERSION_MAJOR == 3 && HW_VERSION_MINOR >= 3
make_protocol_property("adc_gpio1", &adc_measurements_[0]),
make_protocol_property("adc_gpio2", &adc_measurements_[1]),
#endif
@@ -197,10 +197,10 @@ int _write(int file, const char* data, int len);
// @brief This is what printf calls internally
int _write(int file, const char* data, int len) {
#ifdef USB_PROTOCOL_STDOUT
usb_stream_output.process_bytes((const uint8_t *)data, len);
usb_stream_output_ptr->process_bytes((const uint8_t *)data, len);
#endif
#ifdef UART_PROTOCOL_STDOUT
uart4_stream_output.process_bytes((const uint8_t *)data, len);
uart4_stream_output_ptr->process_bytes((const uint8_t *)data, len);
#endif
return len;
}
@@ -48,6 +48,7 @@ public:
private:
uint8_t tx_buf_[UART_TX_BUFFER_SIZE];
} uart4_stream_output;
StreamSink* uart4_stream_output_ptr = &uart4_stream_output;
PacketToStreamConverter uart4_packet_output(uart4_stream_output);
BidirectionalPacketBasedChannel uart4_channel(uart4_packet_output);
+3
View File
@@ -2,6 +2,9 @@
#define __INTERFACE_UART_HPP
#ifdef __cplusplus
#include "protocol.hpp"
extern StreamSink* uart4_stream_output_ptr;
extern "C" {
#endif
+3 -2
View File
@@ -2,6 +2,8 @@
#include "interface_usb.h"
#include "protocol.hpp"
#include "ascii_protocol.h"
#include <MotorControl/utils.h>
#include <usbd_cdc.h>
@@ -47,7 +49,6 @@ public:
}
} usb_packet_output;
#if !defined(USB_PROTOCOL_NATIVE)
class TreatPacketSinkAsStreamSink : public StreamSink {
public:
TreatPacketSinkAsStreamSink(PacketSink& output) : output_(output) {}
@@ -66,7 +67,7 @@ public:
private:
PacketSink& output_;
} usb_stream_output(usb_packet_output);
#endif
StreamSink* usb_stream_output_ptr = &usb_stream_output;
#if defined(USB_PROTOCOL_NATIVE)
BidirectionalPacketBasedChannel usb_channel(usb_packet_output);
+3
View File
@@ -2,6 +2,9 @@
#define __INTERFACE_USB_HPP
#ifdef __cplusplus
#include "protocol.hpp"
extern StreamSink* usb_stream_output_ptr;
extern "C" {
#endif
+12
View File
@@ -812,6 +812,18 @@ public:
LOG_PROTO("my tuple is at %x and of size %u\r\n", (uintptr_t)&in_args_, sizeof(in_args_));
}
// The custom copy constructor is needed because otherwise the
// input_properties_ and output_properties_ would point to memory
// locations of the old object.
ProtocolFunction(const ProtocolFunction& other) :
name_(other.name_), obj_(other.obj_), func_ptr_(other.func_ptr_),
input_names_{other.input_names_}, output_names_{other.output_names_},
input_properties_(PropertyListFactory<TInputs...>::template make_property_list<0>(input_names_, in_args_)),
output_properties_(PropertyListFactory<TOutputs...>::template make_property_list<0>(output_names_, out_args_))
{
LOG_PROTO("COPIED! my tuple is at %x and of size %u\r\n", (uintptr_t)&in_args_, sizeof(in_args_));
}
void write_json(size_t id, StreamSink* output) {
// write name
write_string("{\"name\":\"", output);
+3
View File
@@ -3,3 +3,6 @@
#CONFIG_BOARD_VERSION=v3.5-24V
CONFIG_USB_PROTOCOL=native
CONFIG_UART_PROTOCOL=ascii
# Uncomment this to error on compilation warnings
#CONFIG_STRICT=true