Skip to content

Commit 4b5edd3

Browse files
authored
Merge pull request micropython#1376 from tannewt/particle
Add Particle boards and hopefully speed up the SAMD build a little
2 parents dbd3a77 + f59c3bd commit 4b5edd3

File tree

20 files changed

+650
-18
lines changed

20 files changed

+650
-18
lines changed

.travis.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ git:
2121
# that SDK is shortest and add it there. In the case of major re-organizations,
2222
# just try to make the builds "about equal in run time"
2323
env:
24-
- TRAVIS_TESTS="unix docs translations website" TRAVIS_BOARDS="feather_huzzah circuitplayground_express mini_sam_m4 grandcentral_m4_express pca10056 pca10059 feather_nrf52832 feather_nrf52840_express makerdiary_nrf52840_mdk" TRAVIS_SDK=arm:nrf:esp8266
24+
- TRAVIS_TESTS="unix docs translations website" TRAVIS_BOARDS="feather_huzzah circuitplayground_express mini_sam_m4 grandcentral_m4_express pca10056 pca10059 feather_nrf52832 feather_nrf52840_express makerdiary_nrf52840_mdk particle_boron particle_argon particle_xenon" TRAVIS_SDK=arm:nrf:esp8266
2525
- TRAVIS_BOARDS="metro_m0_express metro_m4_express pirkey_m0 trellis_m4_express trinket_m0" TRAVIS_SDK=arm
2626
- TRAVIS_BOARDS="feather_radiofruit_zigbee gemma_m0 hallowing_m0_express itsybitsy_m0_express itsybitsy_m4_express meowmeow" TRAVIS_SDK=arm
2727
- TRAVIS_BOARDS="feather_m0_express_crickit feather_m0_rfm69 feather_m0_rfm9x feather_m4_express arduino_zero arduino_mkr1300" TRAVIS_SDK=arm
@@ -92,7 +92,7 @@ script:
9292
- make -C mpy-cross -j2
9393
- echo -en 'travis_fold:end:mpy-cross\\r'
9494

95-
- cd tools && python3 build_adafruit_bins.py
95+
- cd tools && python3 build_release_files.py
9696
- cd ..
9797

9898
- echo 'Building unix' && echo -en 'travis_fold:start:unix\\r'

ports/atmel-samd/Makefile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,9 @@ BASE_CFLAGS = \
8181
-DCIRCUITPY_SAFE_RESTART_WORD=0xDEADBEEF \
8282
--param max-inline-insns-single=500
8383

84-
84+
# Use these flags to debug build times and header includes.
85+
# -ftime-report
86+
# -H
8587
# NDEBUG disables assert() statements. This reduces code size pretty dramatically, per tannewt.
8688

8789
ifeq ($(CHIP_FAMILY), samd21)

ports/atmel-samd/boards/cp32-m4/mpconfigboard.h

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,6 @@
2020

2121
#define BOARD_FLASH_SIZE (FLASH_SIZE - 0x4000 - CIRCUITPY_INTERNAL_NVM_SIZE)
2222

23-
#include "external_flash/devices.h"
24-
25-
// these are the labeled pins (SDA, SCL, SCK, MOSI, MISO, etc)
26-
#define EXTERNAL_FLASH_DEVICE_COUNT 1
27-
#define EXTERNAL_FLASH_DEVICES W25Q128JV_PM
28-
29-
#include "external_flash/external_flash.h"
30-
3123
#define DEFAULT_I2C_BUS_SCL (&pin_PB09)
3224
#define DEFAULT_I2C_BUS_SDA (&pin_PB08)
3325

ports/atmel-samd/boards/cp32-m4/mpconfigboard.mk

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ USB_PRODUCT = "CP32-M4"
55
USB_MANUFACTURER = "Nadda-Reel Company LLC"
66

77
QSPI_FLASH_FILESYSTEM = 1
8+
EXTERNAL_FLASH_DEVICE_COUNT = 1
9+
EXTERNAL_FLASH_DEVICES = "W25Q128JV_PM"
810

911
CHIP_VARIANT = SAMD51G19A
1012
CHIP_FAMILY = samd51
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/*
2+
* This file is part of the MicroPython project, http://micropython.org/
3+
*
4+
* The MIT License (MIT)
5+
*
6+
* Copyright (c) 2018 Scott Shawcroft for Adafruit Industries
7+
*
8+
* Permission is hereby granted, free of charge, to any person obtaining a copy
9+
* of this software and associated documentation files (the "Software"), to deal
10+
* in the Software without restriction, including without limitation the rights
11+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12+
* copies of the Software, and to permit persons to whom the Software is
13+
* furnished to do so, subject to the following conditions:
14+
*
15+
* The above copyright notice and this permission notice shall be included in
16+
* all copies or substantial portions of the Software.
17+
*
18+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24+
* THE SOFTWARE.
25+
*/
26+
27+
#include "boards/board.h"
28+
29+
void board_init(void) {
30+
}
31+
32+
bool board_requests_safe_mode(void) {
33+
return false;
34+
}
35+
36+
void reset_board(void) {
37+
38+
}
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
/*
2+
* This file is part of the MicroPython project, http://micropython.org/
3+
*
4+
* The MIT License (MIT)
5+
*
6+
* Copyright (c) 2016 Glenn Ruben Bakke
7+
* Copyright (c) 2018 Dan Halbert for Adafruit Industries
8+
*
9+
* Permission is hereby granted, free of charge, to any person obtaining a copy
10+
* of this software and associated documentation files (the "Software"), to deal
11+
* in the Software without restriction, including without limitation the rights
12+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13+
* copies of the Software, and to permit persons to whom the Software is
14+
* furnished to do so, subject to the following conditions:
15+
*
16+
* The above copyright notice and this permission notice shall be included in
17+
* all copies or substantial portions of the Software.
18+
*
19+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25+
* THE SOFTWARE.
26+
*/
27+
28+
#include "nrfx/hal/nrf_gpio.h"
29+
30+
#define FEATHER52840
31+
32+
#define MICROPY_HW_BOARD_NAME "Particle Argon"
33+
#define MICROPY_HW_MCU_NAME "nRF52840"
34+
#define MICROPY_PY_SYS_PLATFORM "Particle Argon"
35+
36+
#define MICROPY_HW_RGB_LED_RED (&pin_P0_13)
37+
#define MICROPY_HW_RGB_LED_GREEN (&pin_P0_14)
38+
#define MICROPY_HW_RGB_LED_BLUE (&pin_P0_15)
39+
40+
#ifdef QSPI_FLASH_FILESYSTEM
41+
#define MICROPY_QSPI_DATA0 NRF_GPIO_PIN_MAP(0, 20)
42+
#define MICROPY_QSPI_DATA1 NRF_GPIO_PIN_MAP(0, 21)
43+
#define MICROPY_QSPI_DATA2 NRF_GPIO_PIN_MAP(0, 22)
44+
#define MICROPY_QSPI_DATA3 NRF_GPIO_PIN_MAP(0, 23)
45+
#define MICROPY_QSPI_SCK NRF_GPIO_PIN_MAP(0, 19)
46+
#define MICROPY_QSPI_CS NRF_GPIO_PIN_MAP(0, 17)
47+
#endif
48+
49+
#ifdef SPI_FLASH_FILESYSTEM
50+
#define SPI_FLASH_MOSI_PIN &pin_P0_20
51+
#define SPI_FLASH_MISO_PIN &pin_P0_21
52+
#define SPI_FLASH_SCK_PIN &pin_P0_19
53+
#define SPI_FLASH_CS_PIN &pin_P0_17
54+
#endif
55+
56+
#define CIRCUITPY_AUTORELOAD_DELAY_MS 500
57+
58+
// If you change this, then make sure to update the linker scripts as well to
59+
// make sure you don't overwrite code
60+
#define PORT_HEAP_SIZE (128 * 1024)
61+
// TODO #define CIRCUITPY_INTERNAL_NVM_SIZE 8192
62+
63+
#define BOARD_FLASH_SIZE (FLASH_SIZE - 0x4000 - CIRCUITPY_INTERNAL_NVM_SIZE)
64+
65+
#define BOARD_HAS_CRYSTAL 1
66+
67+
#define DEFAULT_I2C_BUS_SCL (&pin_P0_27)
68+
#define DEFAULT_I2C_BUS_SDA (&pin_P0_26)
69+
70+
#define DEFAULT_SPI_BUS_SCK (&pin_P1_15)
71+
#define DEFAULT_SPI_BUS_MOSI (&pin_P1_13)
72+
#define DEFAULT_SPI_BUS_MISO (&pin_P1_14)
73+
74+
#define DEFAULT_UART_BUS_RX (&pin_P0_08)
75+
#define DEFAULT_UART_BUS_TX (&pin_P0_06)
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
USB_VID = 0x2b04
2+
USB_PID = 0xc00c
3+
USB_PRODUCT = "Argon"
4+
USB_MANUFACTURER = "Particle"
5+
6+
MCU_SERIES = m4
7+
MCU_VARIANT = nrf52
8+
MCU_SUB_VARIANT = nrf52840
9+
MCU_CHIP = nrf52840
10+
SD ?= s140
11+
SOFTDEV_VERSION ?= 6.1.0
12+
13+
BOOT_SETTING_ADDR = 0xFF000
14+
15+
ifeq ($(SD),)
16+
LD_FILE = boards/nrf52840_1M_256k.ld
17+
else
18+
LD_FILE = boards/adafruit_$(MCU_SUB_VARIANT)_$(SD_LOWER)_v$(firstword $(subst ., ,$(SOFTDEV_VERSION))).ld
19+
endif
20+
21+
NRF_DEFINES += -DNRF52840_XXAA -DNRF52840
22+
23+
SPI_FLASH_FILESYSTEM = 1
24+
EXTERNAL_FLASH_DEVICE_COUNT = 1
25+
EXTERNAL_FLASH_DEVICES = "MX25L3233F"
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
#include "shared-bindings/board/__init__.h"
2+
3+
#include "board_busses.h"
4+
5+
STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
6+
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_P0_03) },
7+
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_P0_04) },
8+
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_P0_28) },
9+
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_P0_29) },
10+
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_P0_30) },
11+
{ MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_P0_31) },
12+
13+
{ MP_ROM_QSTR(MP_QSTR_MODE), MP_ROM_PTR(&pin_P0_11) },
14+
15+
{ MP_ROM_QSTR(MP_QSTR_VOLTAGE_MONITOR), MP_ROM_PTR(&pin_P0_05) },
16+
{ MP_ROM_QSTR(MP_QSTR_BATTERY), MP_ROM_PTR(&pin_P0_05) },
17+
18+
{ MP_ROM_QSTR(MP_QSTR_CHARGE_STATUS), MP_ROM_PTR(&pin_P1_09) },
19+
20+
{ MP_ROM_QSTR(MP_QSTR_NFC1), MP_ROM_PTR(&pin_P0_09) },
21+
{ MP_ROM_QSTR(MP_QSTR_NFC2), MP_ROM_PTR(&pin_P0_10) },
22+
23+
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_P1_01) },
24+
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_P1_02) },
25+
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_P1_08) },
26+
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_P1_10) },
27+
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_P1_11) },
28+
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_P1_12) },
29+
{ MP_ROM_QSTR(MP_QSTR_BLUE_LED), MP_ROM_PTR(&pin_P1_12) },
30+
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_P1_03) },
31+
32+
{ MP_ROM_QSTR(MP_QSTR_RGB_LED_RED), MP_ROM_PTR(&pin_P0_13) },
33+
{ MP_ROM_QSTR(MP_QSTR_RGB_LED_GREEN), MP_ROM_PTR(&pin_P0_14) },
34+
{ MP_ROM_QSTR(MP_QSTR_RGB_LED_BLUE), MP_ROM_PTR(&pin_P0_15) },
35+
36+
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_P1_15) },
37+
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_P1_15) },
38+
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_P1_13) },
39+
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_P1_13) },
40+
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_P1_14) },
41+
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_P1_14) },
42+
43+
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_P0_06) },
44+
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_P0_06) },
45+
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_P0_08) },
46+
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_P0_08) },
47+
48+
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_P0_27) },
49+
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_P0_27) },
50+
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_P0_26) },
51+
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_P0_26) },
52+
53+
{ MP_ROM_QSTR(MP_QSTR_ANTENNA_EXTERNAL), MP_ROM_PTR(&pin_P0_25) },
54+
{ MP_ROM_QSTR(MP_QSTR_ANTENNA_PCB), MP_ROM_PTR(&pin_P0_02) },
55+
56+
57+
{ MP_ROM_QSTR(MP_QSTR_ESP_TX), MP_ROM_PTR(&pin_P1_04) },
58+
{ MP_ROM_QSTR(MP_QSTR_ESP_RX), MP_ROM_PTR(&pin_P1_05) },
59+
{ MP_ROM_QSTR(MP_QSTR_ESP_CTS), MP_ROM_PTR(&pin_P1_07) },
60+
{ MP_ROM_QSTR(MP_QSTR_ESP_RTS), MP_ROM_PTR(&pin_P1_06) },
61+
{ MP_ROM_QSTR(MP_QSTR_ESP_BOOT_MODE), MP_ROM_PTR(&pin_P0_16) },
62+
{ MP_ROM_QSTR(MP_QSTR_ESP_WIFI_EN), MP_ROM_PTR(&pin_P0_24) },
63+
{ MP_ROM_QSTR(MP_QSTR_ESP_HOST_WK), MP_ROM_PTR(&pin_P0_07) },
64+
};
65+
66+
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy