Migrates Pigweed off of SpinLock to use the new InterruptSpinLock
name.
Also updates some stale documentation regarding SystemClock backends
which use InterruptSpinLocks before C++ construction now that there
is a constexpr constructor, as it was already getting updated for
the rename.
Change-Id: Ie821b7c5c59f21a16bcc9bd9674c5df6a85e27b1
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/37561
Commit-Queue: Ewout van Bekkum <ewout@google.com>
Pigweed-Auto-Submit: Ewout van Bekkum <ewout@google.com>
Reviewed-by: Wyatt Hepler <hepler@google.com>
Renames the existing pw::sync::SpinLock to InterruptSpinLock to
make it obvious that this is not just a spin lock and that interrupt
masking is included.
This change leaves C++ & GN redirects in place in order to support
migrating Pigweed and customers in follow up changes.
Change-Id: If9fb5594e7d71778b15cd15a9cd7ec71ca0e403b
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/37560
Commit-Queue: Ewout van Bekkum <ewout@google.com>
Reviewed-by: Wyatt Hepler <hepler@google.com>
Summary of Changes
==================
1. Rename arduino build args to support cores in any location and have
consistent naming.
2. Update docs to reflect above.
3. `pw package install teensy` working with nice status message on how
to use ge pw_arduino_build_* args.
4. Added gn_teensy_build presubmit test step, not run by default.
`pw presubmit --step gn_teensy_build`
5. Added missing system_rpc_server impl for //targets/arduino. This is
just a copy of the stm32f429i one.
Build arg Change Examples
=========================
OLD:
dir_pw_third_party_arduino = "//third_party/arduino"
arduino_core_name = "teensy"
arduino_package_name = "teensy/avr"
arduino_board = "teensy41"
arduino_menu_options = ["menu.usb.serial",
"menu.opt.o2std"]
NEW:
pw_arduino_build_CORE_PATH =
"/mnt/pigweed/pigweed/.environment/packages"
pw_arduino_build_CORE_NAME = "teensy"
pw_arduino_build_PACKAGE_NAME = "teensy/avr"
pw_arduino_build_BOARD = "teensy41"
pw_arduino_build_MENU_OPTIONS = ["menu.usb.serial",
"menu.opt.o2std"]
All BUILD.gn checks for enabled arduino builds changed too:
OLD:
if (dir_pw_third_party_arduino != "") {}
NEW:
if (pw_arduino_build_CORE_PATH != "") {}
All gn target deps on arduino core sources changed.
OLD:
"$dir_pw_third_party_arduino:arduino_core_sources",
NEW:
"$dir_pw_third_party/arduino:arduino_core_sources",
Teensy package post install & status message
============================================
$ pw package status teensy
20210114 11:58:18 INF teensy is installed.
20210114 11:58:18 INF teensy currently installed in:
/mnt/pigweed/pigweed/.environment/packages/teensy
20210114 11:58:18 INF Enable by running "gn args out" and adding
these lines:
pw_arduino_build_CORE_PATH =
"/mnt/pigweed/pigweed/.environment/packages"
pw_arduino_build_CORE_NAME = "teensy"
pw_arduino_build_PACKAGE_NAME = "teensy/avr"
pw_arduino_build_BOARD = "BOARD_NAME"
20210114 11:58:18 INF Where BOARD_NAME is any supported board.
20210114 11:58:18 INF List available boards by running:
arduino_builder
--arduino-package-path
/mnt/pigweed/pigweed/.environment/packages/teensy
--arduino-package-name teensy/avr
list-boards
Requires: pigweed:29490
Change-Id: Ifd0bd214777392a29af3ab24711edf2f2c1086f3
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/26240
Commit-Queue: Anthony DiGirolamo <tonymd@google.com>
Reviewed-by: Keir Mierle <keir@google.com>
Reviewed-by: Rob Mohr <mohrr@google.com>
The "# gn-format disable" comments are no longer necessary. Delete these
comments and reformat with a Vim macro and gn format.
Change-Id: Ia62c40ad73eef91187d0d443d6e3b0fa723e5aa9
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/21380
Reviewed-by: Armando Montanez <amontanez@google.com>
Commit-Queue: Wyatt Hepler <hepler@google.com>
- New unit test scripts
- arduino_unit_test_runner
- arduino_test_server
- arduino_test_client
- teensy_detector
- arduino_builder changes
- '--config-file' loading and '--save-config' options
- '--set-variable' option to set arduino recipe vars. This is used
for passing vars to the teensyloader flash recipe.
- GN changes
- exec_script(arduino_builder) calls will save config files to:
./out/arduino_debug/gen/arduino_builder_config.json
- 'pw_arduino_use_test_server' gn build arg
The test_runner and test_server both require a options to
run properly, see targets/arduino/target_docs.rst for usage.
Change-Id: I118498c291d2fbb034faa372b9250f6a0783a478
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/19220
Commit-Queue: Anthony DiGirolamo <tonymd@google.com>
Reviewed-by: Armando Montanez <amontanez@google.com>
- Remove simple_printing_main_arduino.cc which used loop() and setup()
- Rename main() in arduino core sources to ArduinoMain()
- Define setup() and loop() in arduino_main_wrapper.cc and call pigweed
main() in setup() after pw_arduino_Init();
- Switch to pw_unit_test_MAIN = "$dir_pw_unit_test:simple_printing_main"
in //targets/arduino/target_toolchains.gni
- Add pw_arduino_build/public/pw_arduino_build/init.h facade
- Documentation!
- Fix bug in arduinobuilder.py when using an arduino core which uses
only one sub-core folder.
Change-Id: I94630b25f6c914ef46bdb9c32e6ddb5154690045
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/18640
Reviewed-by: Armando Montanez <amontanez@google.com>
Commit-Queue: Anthony DiGirolamo <tonymd@google.com>
- New arduino pigweed target that uses gn build args to set arduino
target board and specific build options.
- Add arduinobuilder.py (includes core installer for Linux/Mac/Windows)
- Working builds for Teensy 4.1, 4.0, 3.6, 3.5, 3.2
Change-Id: Ib751b5f92352ac3ec7fa649f444dc13efd080d12
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/18001
Commit-Queue: Anthony DiGirolamo <tonymd@google.com>
Reviewed-by: Armando Montanez <amontanez@google.com>