Glenn Ruben Bakke
57442c2b25
nrf5/modules/music: Updating music module to use pin_obj_t instad of microbit_pin_obj_t. Update include to drivers/pwm.h to resolve some undefined functions.
2017-05-02 01:09:59 +02:00
Glenn Ruben Bakke
40b37227a0
nrf5/drivers/pwm: Work in progress commit of soft PWM from microbit repo.
2017-05-02 01:07:52 +02:00
Glenn Ruben Bakke
10e6b4309b
nrf5/modules/music: Removing c++ extern definition. Updating include list in modmusic.c. Removing module name from module struct.
2017-05-01 19:55:43 +02:00
Glenn Ruben Bakke
01441c8f59
nrf5/modules/music: Removing include of modmicrobit.h in musictunes.c.
2017-05-01 19:52:40 +02:00
Glenn Ruben Bakke
e766c7ebbe
nrf5/modules/music: Adding header to expose extern structs defined in musictunes.c
2017-05-01 19:51:47 +02:00
Glenn Ruben Bakke
5c6fc791e3
nrf5/drivers: Adding copy of microbit soft pwm.
2017-05-01 19:13:50 +02:00
Glenn Ruben Bakke
eedd9eabe9
nrf5/modules/music: Renaming microbitmusic files to modmusic/music.
2017-05-01 19:11:44 +02:00
Glenn Ruben Bakke
20bdb7dc90
nrf5/modules/music: Renaming microbit module to music.
2017-05-01 19:08:36 +02:00
Glenn Ruben Bakke
f9b9d59434
nrf5/modules/microbit: Copying microbit music module to the port.
2017-05-01 19:06:49 +02:00
Glenn Ruben Bakke
1c756af9a4
nrf5/modules/timer: Adding timer3 and timer4 to timer object in case of nrf52 target.
2017-04-30 20:18:46 +02:00
Glenn Ruben Bakke
a0638880b3
nrf5/modules/timer: Optimizing timer object structure and updating the module to use new hal_timer_init structures and parameters.
2017-04-30 20:15:03 +02:00
Glenn Ruben Bakke
0437fafaac
nrf5/hal/timer: Adding empty IRQ handlers for all timers.
2017-04-30 19:42:54 +02:00
Glenn Ruben Bakke
7449f8d861
nrf5/hal/timer: Changing hardcoded hal timer instance base to a lookup, so that IRQ num can be detected automatically without the need of using struct param on it. Size of binary does not increase when using Os.
2017-04-30 19:42:19 +02:00
Glenn Ruben Bakke
7aa7bad78a
nrf5: Updating example in main.c on how to execute string before REPL is set up, to allow for boards with two leds. Todo for later is to update this code such that it will skip this LED toggle when there are no leds defined. Or use an example not depending on LEDs.
2017-04-29 19:50:50 +02:00
Glenn Ruben Bakke
976785e1d5
nrf5/bluetooth: Updating Bluetooth LE stack download script to allow to be invoked from any parent folder. No need to change directory to bluetooth/ in order to get the correct download target folder position. Using the script location to determine the target folder.
2017-04-26 19:18:27 +02:00
Glenn Ruben Bakke
7bcc61b0c1
nrf5/boards: Adding board target for feather52 using s132 v.2.0.1 application offset even if the device is not using softdevice. To be worked on later.
2017-04-26 00:18:10 +02:00
Glenn Ruben Bakke
97d46bae6a
nrf5/boards: decrease size of ISR region from 4k to 1k in custom feather52 linker script to get some more flash space.
2017-04-26 00:16:19 +02:00
Glenn Ruben Bakke
3286d81a48
nrf5/boards: Updating feather52 mpconfigboard.h to use correct uart pins, flow control disabled. Also adjusting leds down to two leds.
2017-04-26 00:15:14 +02:00
Glenn Ruben Bakke
5f4798b0f2
nrf5/boards: Updating path to custom linker script for feather52 board.
2017-04-25 21:55:50 +02:00
Glenn Ruben Bakke
50bb18015a
nrf5/boards: Renaming bluefruit_nrf52_feather to feather52 to shorten down the name quite drastically.
2017-04-25 21:54:35 +02:00
Glenn Ruben Bakke
6f6c5d30e8
nrf5/boards: Updating path to custom bluefruit feather linker script after renaming board folder.
2017-04-25 21:51:10 +02:00
Glenn Ruben Bakke
4ae600be8a
nrf5/boards: Renaming bluefruit_feather to bluefruit_nrf52_feather as it also exist a m0 variant of the board name.
2017-04-25 21:49:17 +02:00
Glenn Ruben Bakke
8aa6e0388e
nrf5/boards: Updating mpconfigboard.h for bluefruit nrf52 feather with correct board, mcu and platform name.
2017-04-25 21:48:01 +02:00
Glenn Ruben Bakke
195c492419
nrf5/boards: Updating adafruit bluefruit nrf52 feather linker script to use 0x1c000 application offset.
2017-04-25 21:44:01 +02:00
Glenn Ruben Bakke
8429d022e1
nrf5/boards: Renaming custom linker script for bluefruit feather to reflect that the purpose of the custom linker script is DFU. The script is diverging from the generic s132 v2 linker script in the offset of the application.
2017-04-25 08:53:52 +02:00
Glenn Ruben Bakke
7043680f1f
nrf5/boards: Adding custom linker script for adafruit nrf52 bluefruit feather to be able to detect application upper boundry in flash. Pointing s132 mk file to use this new custom linker script instead of the generic s132 v2 linker script.
2017-04-25 08:49:18 +02:00
Glenn Ruben Bakke
ec6502c1ea
nrf5/boards: Adding linker script for nrf52832 s132 v.2.0.1.
2017-04-24 23:29:05 +02:00
Glenn Ruben Bakke
0ba9c62940
nrf5/boards: Adding template board makefiles and configs for bluefruit nrf52 feather. Copied from pca10040 target board. Linker script reference updated to use s132 v2.0.1. Non-BLE enable build disabled for now. Board configuration for leds, uart etc has not been updated yet from pca10040 layout.
2017-04-24 23:25:25 +02:00
Glenn Ruben Bakke
44fc96c8a9
nrf5/bluetooth: Correcting typo in test where s132 API version is settled.
2017-04-24 23:14:04 +02:00
Glenn Ruben Bakke
f68fb8499d
nrf5/bluetooth: Updating bluetooth le driver to compile with s132 v.2.0.1 stack.
2017-04-24 23:05:08 +02:00
Glenn Ruben Bakke
2adad5f2a6
nrf5/bluetooth: Add new compiler flag to signal API variants of the s132 bluetooth le stack. The version is derived from the major number of the stack name.
2017-04-24 23:03:54 +02:00
Glenn Ruben Bakke
9abd38a3f2
nrf5/bluetooth: Remove hardcoded softdevice version as this now comes as parameter from board makefile.
2017-04-24 22:29:48 +02:00
Glenn Ruben Bakke
3c8323aff4
nrf5/boards: Updating makefiles using bluetooth stack to use updated linker script file names.
2017-04-24 22:28:08 +02:00
Glenn Ruben Bakke
f4fd45bef3
nrf5/boards: Renaming bluetooth stack linker scripts to reflect version of the stack.
2017-04-24 22:22:17 +02:00
Glenn Ruben Bakke
bccfc7262d
nrf5/boards: adding some spaces in s132 makefile for pca10040.
2017-04-24 22:18:46 +02:00
Glenn Ruben Bakke
582db669b6
nrf5/boards: Renaming linker script for nrf52832 using bluetooth stack such that it also holds the version number of the stack. Updating linkerscript using the target linker script.
2017-04-24 22:02:41 +02:00
Glenn Ruben Bakke
39d3d7bb28
nrf5/bluetooth: Add support for downloading s132_2.0.1 bluetooth stack.
2017-04-24 21:56:28 +02:00
Glenn Ruben Bakke
3f96532952
nrf5/bluetooth: Switch over to downloaded bluetooth stacks from nordicsemi.com instead of getting them through the SDK's. This will facilitate download of s132 v2.0.0 later.
2017-04-24 21:46:28 +02:00
Glenn Ruben Bakke
9d91e990f7
Merge branch 'master' into nrf5_no_sdk
2017-04-23 18:39:24 +02:00
Glenn Ruben Bakke
ca43f42b78
nrf5/bluetooth: Fixing bug found when testing microbit. Newly introduced advertisment data pointer was not cleared on nrf51 targets. Explicit set to NULL as no additional advertisment data is set. Raises a question on why the nrf51 static variable was not zero initialized. To be checked up.
2017-04-23 18:35:31 +02:00
Paul Sokolovsky
5e66f2b751
zephyr/main: Configure IPv4 netmask and gateway to allow Internet access.
2017-04-22 19:29:47 +03:00
Damien George
30badd1ce1
tests: Add tests for calling super and loading a method directly.
2017-04-22 23:39:38 +10:00
Damien George
dd11af209d
py: Add LOAD_SUPER_METHOD bytecode to allow heap-free super meth calls.
...
This patch allows the following code to run without allocating on the heap:
super().foo(...)
Before this patch such a call would allocate a super object on the heap and
then load the foo method and call it right away. The super object is only
needed to perform the lookup of the method and not needed after that. This
patch makes an optimisation to allocate the super object on the C stack and
discard it right after use.
Changes in code size due to this patch are:
bare-arm: +128
minimal: +232
unix x64: +416
unix nanbox: +364
stmhal: +184
esp8266: +340
cc3200: +128
2017-04-22 23:39:20 +10:00
Damien George
5335942b59
py/compile: Refactor handling of special super() call.
...
This patch refactors the handling of the special super() call within the
compiler. It removes the need for a global (to the compiler) state variable
which keeps track of whether the subject of an expression is super. The
handling of super() is now done entirely within one function, which makes
the compiler a bit cleaner and allows to easily add more optimisations to
super calls.
Changes to the code size are:
bare-arm: +12
minimal: +0
unix x64: +48
unix nanbox: -16
stmhal: +4
cc3200: +0
esp8266: -56
2017-04-22 21:46:32 +10:00
Damien George
0dd6a59c89
py/compile: Don't do unnecessary check if iter parse node is a struct.
...
If we get to this point in the code then pn_iter is guaranteed to be a
struct.
2017-04-22 21:43:42 +10:00
Damien George
03053f82db
mpy-cross, unix, windows, stmhal: Enable return-if-else optimisation.
...
Prior to making this a config option it was previously available on these
(and all other) ports, and it makes sense to keep it enabled for mpy-cross
as well as ports that have a decent amount of space for the code.
2017-04-22 15:12:48 +10:00
Damien George
ae54fbf166
py/compile: Add COMP_RETURN_IF_EXPR option to enable return-if-else opt.
...
With this optimisation enabled the compiler optimises the if-else
expression within a return statement. The optimisation reduces bytecode
size by 2 bytes for each use of such a return-if-else statement. Since
such a statement is not often used, and costs bytes for the code, the
feature is disabled by default.
For example the following code:
def f(x):
return 1 if x else 2
compiles to this bytecode with the optimisation disabled (left column is
bytecode offset in bytes):
00 LOAD_FAST 0
01 POP_JUMP_IF_FALSE 8
04 LOAD_CONST_SMALL_INT 1
05 JUMP 9
08 LOAD_CONST_SMALL_INT 2
09 RETURN_VALUE
and to this bytecode with the optimisation enabled:
00 LOAD_FAST 0
01 POP_JUMP_IF_FALSE 6
04 LOAD_CONST_SMALL_INT 1
05 RETURN_VALUE
06 LOAD_CONST_SMALL_INT 2
07 RETURN_VALUE
So the JUMP to RETURN_VALUE is optimised and replaced by RETURN_VALUE,
saving 2 bytes and making the code a bit faster.
2017-04-22 14:58:01 +10:00
Damien George
40b40ffc98
py/compile: Extract parse-node kind at start of func for efficiency.
...
Otherwise the type of parse-node and its kind has to be re-extracted
multiple times. This optimisation reduces code size by a bit (16 bytes on
bare-arm).
2017-04-22 14:23:47 +10:00
Damien George
fa03bbf0fd
py/compile: Don't do unnecessary check if parse node is a struct.
...
PN_atom_expr_normal parse nodes always have structs for their second
sub-node, so simplify the check for the sub-node kind to save code size.
2017-04-22 14:13:37 +10:00
Damien George
4df013c8cc
py/objtype: mp_obj_new_super doesn't need to be public, so inline it.
...
Saves code size (20 bytes on bare-arm) and makes it a tiny bit more
efficient.
2017-04-22 12:14:04 +10:00