Ayke van Laethem
0c73d56861
compiler: add debug info for local variables
...
Local variables aren't scoped yet and not all are included, but this is
a start. To use it, run `info locals` in GDB.
2020-03-11 14:55:04 -07:00
gwtnz
c8a4994feb
stm32f4: refactor GPIO, in prep for adding SPI, I2C, PWM etc
2020-03-07 15:34:42 +01:00
Daniel Esteban
3aaa029c70
added support for ADC1 on atsamd51 (PB04 / PB05 / PB06 / PB07)
2020-03-01 21:27:59 +01:00
Justin Clift
aeb7539f67
wasm: add js.copyBytesToJS()
2020-03-01 13:51:57 +01:00
Ayke van Laethem
978a0cd9b0
Makefile: fix LLVM tools detection for wasi-libc
...
This makes the `make wasi-libc` command much more reliable and makes the
CI configuration simpler. Also, it avoids warnings when they are not
relevant.
2020-02-28 14:23:31 +01:00
Jaden Weiss
6896b0014b
compiler: fix deferred calls to exported functions
...
Previously using defer with an exported function generated an invalid function call due to differences between TinyGo's calling convention and the C calling convention.
2020-02-27 16:35:31 +01:00
Ayke van Laethem
4dfc289ae5
compiler,runtime: support operations on nil map
...
The index expression and delete keyword are valid on nil maps, so the
runtime must be modified to support this.
2020-02-26 20:42:01 +01:00
Ayke van Laethem
53688c86c8
gameboy-advance: enable debugging with GDB
2020-02-26 20:39:43 +01:00
Ron Evans
100cbad65e
main: increment version to 0.13.0-dev
...
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2020-02-26 20:14:04 +01:00
Ayke van Laethem
b3d3debd4c
main: check for error after starting the OCD daemon
...
This replaces a panic with an informative error message if the right
tool (such as OpenOCD) is not installed.
2020-02-26 20:04:32 +01:00
Ayke van Laethem
e83d1a02b6
avr: support tinygo run
with simavr
...
This commit adds support for running both the Arduino Uno and the
DigiSpark under a simulator.
2020-02-26 19:50:54 +01:00
Ayke van Laethem
1a2f051bee
main: use gdb-multiarch for debugging Cortex-M chips
...
Previously this was set to arm-none-eabi-gdb, but that has been replaced
by gdb-multiarch in recent Debian/Ubuntu versions.
2020-02-26 19:03:04 +01:00
Jaden Weiss
2ca0f0d0c6
compiler/llvmutil: move constant pointer packs into constant globals
...
This adds an optimization to EmitPointerPack when all values are constants.
The values are stored in a constant global instead of on the heap.
This eliminates a heap allocation, and can reduce binary size.
2020-02-24 23:27:04 +01:00
Ayke van Laethem
4da137d7c8
compiler: check for non-static allocas
...
Non-static allocas are disallowed for a number of reasons, so check for
their presence. See the commit diff for details.
2020-02-24 23:11:07 +01:00
Jaden Weiss
c622cbac39
compiler: mark abort as noreturn
...
This marks the libc function abort as non-returning. This allows LLVM to optimize away code after panics. Also, this allows deadlocks to be properly propogated with the coroutines scheduler.
2020-02-24 21:43:27 +01:00
Jaden Weiss
67229af879
transform: do not track const globals
2020-02-24 21:04:50 +01:00
Johann Freymuth
c0b8716d7f
targets/wasm: update wasm_exec.js for go 1.13
...
This fixes the wasm examples for go 1.13, but breaks them for older go versions.
2020-02-23 23:55:04 +01:00
BCG
0655086048
machine/nrf: implement auto-reset over USB for nrf52840
2020-02-22 15:46:33 +01:00
Ayke van Laethem
bf57ae01fa
machine: remove old comment on volatile behavior
...
The volatile pragma has long since been replaced by builtins, so this
commentis now outdated.
2020-02-20 21:36:56 +01:00
Ayke van Laethem
3f74e3c41f
main: update cmsis-svd module
...
This reverts back to the upstream repository which has merged all
necessary updates.
2020-02-19 09:39:26 +01:00
Wojtek Siudzinski
0c0af6d3fe
Apply review suggestions
2020-02-18 23:34:56 +01:00
Wojtek Siudzinski
765440b8ec
Add smoke tests
2020-02-18 23:34:56 +01:00
Wojtek Siudzinski
b07b13ca1b
Add the boards to README
2020-02-18 23:34:56 +01:00
Wojtek Siudzinski
19c6ac01df
Fix UART variables
2020-02-18 23:34:56 +01:00
Wojtek Siudzinski
9e79b41bb4
Add GPIOs and fix errors
2020-02-18 23:34:56 +01:00
Wojtek Siudzinski
b4ee57db26
Add the missing Pin type
2020-02-18 23:34:56 +01:00
Wojtek Siudzinski
6f0c49ad7a
Fix copypasta
2020-02-18 23:34:56 +01:00
Wojtek Siudzinski
e29379ce3a
Fix the formatting
2020-02-18 23:34:56 +01:00
Wojtek Siudzinski
f0fd24e7ba
Add Argon and Boron
2020-02-18 23:34:56 +01:00
Wojtek Siudzinski
bdef52ad62
Allow changing the UART pins
2020-02-18 23:34:56 +01:00
Wojtek Siudzinski
fd1785ed2d
Add Particle Xenon
2020-02-18 23:34:56 +01:00
Jaden Weiss
94ec082f6c
Makefile: autodetect llvm-ar and llvm-nm commands
2020-02-18 19:17:28 +01:00
Scott Yoder
630c498efa
nrf52840: implement USB-CDC ( #883 )
...
* machine/nrf52840: usb-cdc implementation
2020-02-17 15:14:24 +01:00
Elliott Sales de Andrade
d11abb33fe
main: use go mod expected path for go.bug.st/serial
2020-02-11 20:09:22 +01:00
gwtnz
e3ae57090f
runtime/volatile: include ReplaceBits method
2020-02-11 15:55:14 +01:00
Scott Yoder
a0cdd6b4ed
fix typo in pin configuration options for NRF
2020-02-09 22:32:27 +01:00
BCG
c721cae48b
machine: add Adafruit CLUE Alpha
2020-02-07 23:49:59 +01:00
BCG
2138fd7854
machine/samd51: Moving QSPI definitions to common file
...
The QSPI peripheral is only available on a fixed set of pins, so these can be added as constants for all atsamd51 boards.
2020-02-05 17:45:33 +01:00
Ayke van Laethem
1d913a62bc
main: version 0.12.0
2020-01-31 00:01:47 +01:00
Ayke van Laethem
24a0f237d8
wasm: use wasi ABI for basic startup/stdout
...
This allows TinyGo-built binaries to run under wasmtime, for example:
tinygo build -o test.wasm -no-debug -target=wasm examples/test
wasmtime run test.wasm 0
2020-01-28 20:31:09 +01:00
BCG
eb9c2c276e
Added indexBytePortal from standard library to link as implementation for internal/bytealg.IndexByte
2020-01-28 20:17:11 +01:00
Ayke van Laethem
519adf3aef
transform: wasm-abi: create temporary allocas in the entry block
...
This avoids problems with goroutines in WebAssembly, and is generally a
good thing. It fixes some cases of the following problem:
LLVM ERROR: Coroutines cannot handle non static allocas yet
2020-01-28 19:29:09 +01:00
Ayke van Laethem
4d79d473c4
compiler: move wasm ABI workaround to transform package
...
By considering this as a regular transformation, it can be easily
tested.
2020-01-28 19:29:09 +01:00
Ron Evans
91299b6466
docs: correct count for list of supported boards
...
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2020-01-27 23:10:58 +01:00
Ayke van Laethem
8687f3f8f4
targets/gba: implement interrupt handler
...
Thanks to Kyle Lemons for the inspiration and original design. The
implementation in this commit is very different however, building on top
of the software vectoring needed in RISC-V. The result is a flexible
interrupt handler that does not take up any RAM for configuration.
2020-01-27 21:56:17 +01:00
Ayke van Laethem
f14127be76
targets/gba: make linker script cleaner
...
Make it clearer where the stack is located. Additionally, get the heap
to work (the GC needs to have _stack_top defined to work correctly).
2020-01-27 21:56:17 +01:00
Ron Evans
a9b2d8c294
docs: add Arduino Nano to list of supported boards
...
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2020-01-27 21:02:29 +01:00
Ayke van Laethem
960ab3fca4
runtime: fix external address declarations
...
This is the same problem as in
https://github.com/tinygo-org/tinygo/pull/605 , but other targets also
suffer from it.
Discovered with the GBA target, but as pointed out in
https://bugs.llvm.org/show_bug.cgi?id=42881#c1 this appears to be a bug
in the way external globals are declared, not in LLVM. Therefore I
decided that fixing it everywhere would be the best thing to do.
2020-01-27 20:34:10 +01:00
Ayke van Laethem
94fec09b31
machine/fe310: implement UART receive interrupts
...
This makes the echo example work on the HiFive1 rev B board.
2020-01-27 19:58:39 +01:00
Ayke van Laethem
415c60551e
runtime/fe310: add support for PLIC interrupts
...
This commit adds support for software vectoring in the PLIC interrupt.
The interrupt table is created by the compiler, which leads to very
compact code while retaining the flexibility that the interrupt API
provides.
2020-01-27 19:58:39 +01:00