Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🔖 Release 3.2.0 #166

Merged
merged 37 commits into from
Sep 15, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
9ca0364
Better errno for registry validation failure, update vision sensor er…
edjubuh Jan 30, 2019
01315cc
✨ Add Makefile-variable for excluding libraries from cold image (#121)
Jerrylum Feb 22, 2019
99dd577
Update vdml_vision.c
edjubuh Feb 26, 2019
44aaee5
Merge branch 'develop' into arcpatch-D266
edjubuh Feb 26, 2019
5aabc29
Merge branch 'arcpatch-D266' of github.com:purduesigbots/pros into ar…
edjubuh Feb 26, 2019
e5700ed
Update vdml_vision.c
edjubuh Feb 26, 2019
6824927
Update vdml_vision.c
edjubuh Feb 26, 2019
db6e101
Update Copyright info to current year
baylessj Mar 3, 2019
7a355c9
Merge pull request #128 from purduesigbots/copyright-update
baylessj Mar 3, 2019
bfefbdf
🐛 Fix cold libraries variable assignment (#129)
baylessj Mar 4, 2019
01f2c79
Apply suggestions from code review
HotelCalifornia Mar 10, 2019
7b865af
Fix whitespace
edjubuh Mar 10, 2019
e4b2505
Fix up errno when mismatch/not connected
edjubuh Mar 10, 2019
64ed114
Fix up errno when mismatch/not connected for ADI
edjubuh Mar 10, 2019
9b2e651
Fix up errno when mismatched/not connected for ADI round 2
edjubuh Mar 10, 2019
afcbc32
Fix up errno when mismatched/not connected for ADI round 3
edjubuh Mar 10, 2019
021f8be
✨ Improve Makefile compile speed (#123)
Jerrylum Mar 11, 2019
59d92c3
Migate kernel makefile to test_output_2 (#130)
edjubuh Mar 11, 2019
ad6c6ff
Fix incorrect port type (#139)
TixoRebel Apr 23, 2019
3fc4099
Add alternate generic serial API and fix generic serial filesystem dr…
TixoRebel May 30, 2019
195dfdb
🐛 Update vision_read_by_sig to be less funky (#124)
edjubuh Jun 10, 2019
42c44df
🚸 Improve error Handling in VDML (#125)
baylessj Jun 10, 2019
338fbd7
🚨 Make things work with GCC 8.3 (#155)
HotelCalifornia Aug 18, 2019
761bbb9
🔧 Enable hot/cold by default (#154)
Octogonapus Aug 19, 2019
b58f8ab
🏗 Combine template source files (#152)
Octogonapus Aug 19, 2019
61eb20a
🐛 Fix multiple ADI bugs and inconsistencies (#151)
TixoRebel Aug 19, 2019
330469c
⬆️ Upgrade LVGL to 5.3 (#144)
HotelCalifornia Aug 19, 2019
6865c59
🤫 Suppress ignored qualifiers when including lvgl (#147)
Octogonapus Aug 24, 2019
65a5845
🔧 Add default `.gitignore` to template (#156)
theol0403 Aug 26, 2019
89e4333
🚸 Add alternate constructor for pros::Task (#158)
jm-spencer Aug 29, 2019
4a00c5e
💚 Update toolchain installation for azure (#163)
HotelCalifornia Sep 1, 2019
6394b23
🚨🔊 Add a better Data Abort Handler (#112)
edjubuh Sep 2, 2019
acda534
🐛 Add default LLEMU init code back to main.cpp (#165)
HotelCalifornia Sep 3, 2019
fde44c4
Bump to 3.2.0
HotelCalifornia Sep 3, 2019
b939502
🔧 Recompile on header change (#167)
nathan-moore Sep 12, 2019
be07299
🐛 Return proper error code for VDML functions that return floating po…
Jerrylum Sep 12, 2019
7469a3b
🐛 Fix motor PID functions bug (#162)
Jerrylum Sep 15, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 2 additions & 1 deletion .arclint
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
},
"spelling": {
"type": "spelling",
"include": "(.*)"
"include": "(.*)",
"exclude": "(^(src|include)|(rtos/|display/lv_.*))"
},
"text": {
"type": "text",
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ cquery_log.txt
compile_commands.json
temp.log
temp.errors
.d/
18 changes: 9 additions & 9 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,16 @@ VERSION=$(shell cat $(ROOT)/version)
# EXCLUDE_SRC_FROM_LIB= $(SRCDIR)/unpublishedfile.c
EXCLUDE_SRC_FROM_LIB+=$(EXCLUDE_SRCDIRS)
# this line excludes opcontrol.c and similar files
EXCLUDE_SRC_FROM_LIB+=$(foreach file, $(SRCDIR)/opcontrol $(SRCDIR)/initialize $(SRCDIR)/autonomous,$(foreach cext,$(CEXTS),$(file).$(cext)) $(foreach cxxext,$(CXXEXTS),$(file).$(cxxext)))
EXCLUDE_SRC_FROM_LIB+=$(foreach file, $(SRCDIR)/main,$(foreach cext,$(CEXTS),$(file).$(cext)) $(foreach cxxext,$(CXXEXTS),$(file).$(cxxext)))

# files that get distributed to every user (beyond your source archive) - add
# whatever files you want here. This line is configured to add all header files
# that are in the the include directory get exported
TEMPLATE_FILES=$(ROOT)/common.mk $(FWDIR)/v5.ld $(FWDIR)/v5-common.ld $(FWDIR)/v5-hot.ld
TEMPLATE_FILES+=$(FWDIR)/libc.a $(FWDIR)/libm.a
TEMPLATE_FILES+= $(INCDIR)/api.h $(INCDIR)/main.h $(INCDIR)/pros/*.* $(INCDIR)/display
TEMPLATE_FILES+= $(SRCDIR)/opcontrol.cpp $(SRCDIR)/initialize.cpp $(SRCDIR)/autonomous.cpp
TEMPLATE_FILES+= $(SRCDIR)/main.cpp
TEMPLATE_FILES+= $(ROOT)/template-gitignore

PATCHED_SDK=$(FWDIR)/libv5rts/sdk/vexv5/libv5rts.patched.a

Expand All @@ -53,12 +55,11 @@ $(INCDIR)/api.h: version.py
$(VV)python version.py

$(PATCHED_SDK): $(FWDIR)/libv5rts/sdk/vexv5/libv5rts.a
@echo -n "Stripping unwanted symbols from libv5rts.a "
$(call test_output,$D$(STRIP) $^ @libv5rts-strip-options.txt -o $@, $(DONE_STRING))
$(call test_output_2,Stripping unwanted symbols from libv5rts.a ,$(STRIP) $^ @libv5rts-strip-options.txt -o $@, $(DONE_STRING))


CREATE_TEMPLATE_ARGS=--system "./**/*"
CREATE_TEMPLATE_ARGS+=--user "src/opcontrol.{c,cpp,cc}" --user "src/initialize.{cpp,c,cc}" --user "src/autonomous.{cpp,c,cc}" --user "include/main.{hpp,h,hh}" --user "Makefile"
CREATE_TEMPLATE_ARGS+=--user "src/main.{cpp,c,cc}" --user "include/main.{hpp,h,hh}" --user "Makefile" --user ".gitignore"
CREATE_TEMPLATE_ARGS+=--target v5
CREATE_TEMPLATE_ARGS+=--output bin/monolith.bin --cold_output bin/cold.package.bin --hot_output bin/hot.package.bin --cold_addr 58720256 --hot_addr 125829120

Expand All @@ -69,17 +70,16 @@ template: clean-template library
$(VV)mkdir -p $(TEMPLATE_DIR)/firmware
$Dcp $(LIBAR) $(TEMPLATE_DIR)/firmware
$Dcp $(ROOT)/template-Makefile $(TEMPLATE_DIR)/Makefile
$Dmv $(TEMPLATE_DIR)/template-gitignore $(TEMPLATE_DIR)/.gitignore
@echo "Creating template"
$Dprosv5 c create-template $(TEMPLATE_DIR) kernel $(shell cat $(ROOT)/version) $(CREATE_TEMPLATE_ARGS)

LIBV5RTS_EXTRACTION_DIR=$(BINDIR)/libv5rts
$(LIBAR): $(call GETALLOBJ,$(EXCLUDE_SRC_FROM_LIB)) $(EXTRA_LIB_DEPS)
$(VV)mkdir -p $(LIBV5RTS_EXTRACTION_DIR)
@echo -n "Extracting libv5rts "
$(call test_output,$Dcd $(LIBV5RTS_EXTRACTION_DIR) && $(AR) x ../../$(PATCHED_SDK),$(DONE_STRING))
$(call test_output_2,Extracting libv5rts ,cd $(LIBV5RTS_EXTRACTION_DIR) && $(AR) x ../../$(PATCHED_SDK),$(DONE_STRING))
$(eval LIBV5RTS_OBJECTS := $(shell $(AR) t $(PATCHED_SDK)))
-$Drm -f $@
@echo -n "Creating $@ "
$(call test_output,$D$(AR) rcs $@ $(addprefix $(LIBV5RTS_EXTRACTION_DIR)/, $(LIBV5RTS_OBJECTS)) $(call GETALLOBJ,$(EXCLUDE_SRC_FROM_LIB)),$(DONE_STRING))
$(call test_output_2,Creating $@ ,$(AR) rcs $@ $(addprefix $(LIBV5RTS_EXTRACTION_DIR)/, $(LIBV5RTS_OBJECTS)) $(call GETALLOBJ,$(EXCLUDE_SRC_FROM_LIB)),$(DONE_STRING))
# @echo -n "Stripping non-public symbols "
# $(call test_output,$D$(OBJCOPY) -S -D -g --strip-unneeded --keep-symbols public_symbols.txt $@,$(DONE_STRING))
2 changes: 1 addition & 1 deletion STYLEGUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ These should be placed at the very start of a file.
* This file should not be modified by users, since it gets replaced whenever
* a kernel upgrade occurs.
*
* Copyright (c) 2017-2018, Purdue University ACM SIGBots.
* Copyright (c) 2017-2019, Purdue University ACM SIGBots.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
Expand Down
2 changes: 2 additions & 0 deletions VSCode.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,5 @@ Use the following include paths for intellisense completion:
"${env:PROS_TOOLCHAIN}/lib/gcc/arm-none-eabi/6.3.1/include",
"${workspaceRoot}",
"${workspaceRoot}/include"

Add "_INTELLISENSE" to your defines to fix certain intellisense errors that will actually compile without issue
85 changes: 85 additions & 0 deletions azure-build-libc.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
###############################################################################
#
# This pipeline builds newlib with the same flags as the official toolchain,
# but adds -funwind-tables so we can have proper unwind info inside libc
#
###############################################################################
variables:
source_url: 'https://developer.arm.com/-/media/Files/downloads/gnu-rm/8-2018q4/gcc-arm-none-eabi-8-2018-q4-major-src.tar.bz2'
source_directory: 'gcc-arm-none-eabi-8-2018-q4-major'

jobs:
- job: BuildLibc
pool:
vmImage: 'ubuntu-16.04'
timeoutInMinutes: 0
steps:
- bash: |
sudo apt-get install software-properties-common
sudo dpkg --add-architecture i386
sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
sudo apt-get update
sudo apt-get install build-essential autoconf autogen bison dejagnu flex flip gawk git gperf gzip \
nsis openssh-client p7zip-full perl python-dev libisl-dev scons tcl tofrodos \
wget libncurses5-dev pv
sudo apt-get install gcc-arm-embedded
displayName: Install apt packages
- bash: |
curl -L $(source_url) -o $(source_directory).tar.bz2
pv -f $(source_directory).tar.bz2 | tar -xjf -
displayName: Download/extract arm-none-eabi-gcc source
- bash: |
sed -i '95s/TERM|\\/TERM|agent.jobstatus|\\/' ./build-common.sh
sed -i '302s/http:\/\/www.mr511.de\/software\//https:\/\/github.com\/gnu-mcu-eclipse\/files\/raw\/master\/libs\//' ./build-common.sh
displayName: Edit ./build-common.sh
workingDirectory: $(source_directory)
- bash: |
sed -i "294s/.*/saveenvvar CFLAGS_FOR_TARGET '-g -O2 -ffunction-sections -fdata-sections -funwind-tables'/" ./build-toolchain.sh
head -n 316 ./build-toolchain.sh > ./build-toolchain.sh
displayName: Edit ./build-toolchain.sh
workingDirectory: $(source_directory)
- bash: |
./install-sources.sh --skip_steps=mingw32
displayName: Install sources
workingDirectory: $(source_directory)
- bash: |
./build-prerequisites.sh --skip_steps=mingw32
displayName: Build prerequisites
workingDirectory: $(source_directory)
- bash: |
export CFLAGS_FOR_TARGET='-g -O2 -ffunction-sections -fdata-sections -funwind-tables'
export ROOT=`pwd`
mkdir -p $ROOT/build-native/newlib
pushd $ROOT/build-native/newlib
$ROOT/src/newlib/configure \
--build="`uname -m | sed 'y/XI/xi/'`"-linux-gnu --host="`uname -m | sed 'y/XI/xi/'`"-linux-gnu \
--target=arm-none-eabi \
--prefix=$ROOT/newlib \
--enable-newlib-io-long-long \
--enable-newlib-io-c99-formats \
--enable-newlib-register-fini \
--enable-newlib-retargetable-locking \
--disable-newlib-supplied-syscalls \
--disable-nls \

make -j`grep ^processor /proc/cpuinfo|wc -l`
make install

ls -R $ROOT/newlib
ls -R $ROOT/build-native/newlib

cp $ROOT/newlib/arm-none-eabi/lib/thumb/v7-ar/libc.a $(Build.ArtifactStagingDirectory)
cp $ROOT/newlib/arm-none-eabi/lib/thumb/v7-ar/libm.a $(Build.ArtifactStagingDirectory)
ls $(Build.ArtifactStagingDirectory)

TARGET_LIBRARIES=`find $(Build.ArtifactStagingDirectory) -name \*.a`
for target_lib in $TARGET_LIBRARIES ; do
echo Stripping $target_lib
arm-none-eabi-objcopy -R .comment -R .note -R .debug_info -R .debug_aranges -R .debug_pubnames -R .debug_pubtypes -R .debug_abbrev -R .debug_line -R .debug_str -R .debug_ranges -R .debug_loc $target_lib || true
done
displayName: Build toolchain
workingDirectory: $(source_directory)
- task: PublishPipelineArtifact@0
inputs:
artifactName: 'newlib'
targetPath: $(Build.ArtifactStagingDirectory)
10 changes: 7 additions & 3 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
jobs:
- job: BuildTemplate
variables:
toolchain_update_short: 8-2019q3
toolchain_update: 8-2019-q3
toolchain: https://developer.arm.com/-/media/Files/downloads/gnu-rm/$(toolchain_update_short)/RC1.1/gcc-arm-none-eabi-$(toolchain_update)-update-linux.tar.bz2
pool:
vmImage: 'ubuntu-16.04'
steps:
Expand All @@ -10,9 +14,9 @@ jobs:
sshPublicKey: $(gh.publickey)
- checkout: self
- bash: |
sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
sudo apt-get update
sudo apt-get install gcc-arm-embedded
curl -LSso toolchain.tar.bz2 $(toolchain)
tar -xjvf toolchain.tar.bz2
echo "##vso[task.prependpath]$(pwd)/gcc-arm-none-eabi-$(toolchain_update)-update/bin"
displayName: Install gcc-arm-embedded
- task: UsePythonVersion@0
inputs:
Expand Down
Loading