aboutsummaryrefslogtreecommitdiff
path: root/pic16bit
diff options
context:
space:
mode:
Diffstat (limited to 'pic16bit')
-rw-r--r--pic16bit/Makefile70
-rw-r--r--pic16bit/board.c153
-rw-r--r--pic16bit/board.h43
-rw-r--r--pic16bit/main.c127
-rw-r--r--pic16bit/modpyb.c70
-rw-r--r--pic16bit/modpyb.h33
-rw-r--r--pic16bit/modpybled.c93
-rw-r--r--pic16bit/modpybswitch.c81
-rw-r--r--pic16bit/mpconfigport.h110
-rw-r--r--pic16bit/pic16bit_mphal.c79
-rw-r--r--pic16bit/pic16bit_mphal.h31
-rw-r--r--pic16bit/qstrdefsport.h1
-rw-r--r--pic16bit/unistd.h11
13 files changed, 0 insertions, 902 deletions
diff --git a/pic16bit/Makefile b/pic16bit/Makefile
deleted file mode 100644
index ebf4fc2e8..000000000
--- a/pic16bit/Makefile
+++ /dev/null
@@ -1,70 +0,0 @@
-include ../py/mkenv.mk
-
-# qstr definitions (must come before including py.mk)
-QSTR_DEFS = qstrdefsport.h
-
-# include py core make definitions
-include $(TOP)/py/py.mk
-
-XC16 = /opt/microchip/xc16/v1.24
-CROSS_COMPILE = $(XC16)/bin/xc16-
-
-PARTFAMILY = dsPIC33F
-PART = 33FJ256GP506
-
-INC += -I.
-INC += -I$(TOP)
-INC += -I$(BUILD)
-INC += -I$(XC16)/include
-INC += -I$(XC16)/support/$(PARTFAMILY)/h
-
-CFLAGS_PIC16BIT = -mcpu=$(PART) -mlarge-code
-CFLAGS = $(INC) -Wall -Werror -std=gnu99 -nostdlib $(CFLAGS_PIC16BIT) $(COPT)
-
-#Debugging/Optimization
-ifeq ($(DEBUG), 1)
-CFLAGS += -O0 -ggdb
-else
-CFLAGS += -O1 -DNDEBUG
-endif
-
-LDFLAGS = --heap=0 -nostdlib -T $(XC16)/support/$(PARTFAMILY)/gld/p$(PART).gld -Map=$@.map --cref -p$(PART)
-LIBS = -L$(XC16)/lib -L$(XC16)/lib/$(PARTFAMILY) -lc -lm -lpic30 -lp$(PART)
-
-SRC_C = \
- main.c \
- board.c \
- pic16bit_mphal.c \
- modpyb.c \
- modpybled.c \
- modpybswitch.c \
- lib/utils/pyexec.c \
- lib/utils/sys_stdio_mphal.c \
- lib/mp-readline/readline.c \
-
-SRC_S = \
-# gchelper.s \
-
-OBJ = $(PY_O) $(addprefix $(BUILD)/, $(SRC_C:.c=.o) $(SRC_S:.s=.o))
-
-# List of sources for qstr extraction
-SRC_QSTR += $(SRC_C)
-# Append any auto-generated sources that are needed by sources listed in
-# SRC_QSTR
-SRC_QSTR_AUTO_DEPS +=
-
-all: $(BUILD)/firmware.hex
-
-$(BUILD)/firmware.hex: $(BUILD)/firmware.elf
- $(ECHO) "Create $@"
- $(Q)$(CROSS_COMPILE)bin2hex $<
-
-$(BUILD)/firmware.elf: $(OBJ)
- $(ECHO) "LINK $@"
- $(Q)$(LD) $(LDFLAGS) -o $@ $^ $(LIBS)
- $(Q)size $@
-
-$(PY_BUILD)/gc.o: CFLAGS += -O1
-$(PY_BUILD)/vm.o: CFLAGS += -O1
-
-include $(TOP)/py/mkrules.mk
diff --git a/pic16bit/board.c b/pic16bit/board.c
deleted file mode 100644
index 0321b0ee2..000000000
--- a/pic16bit/board.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * This file is part of the MicroPython project, http://micropython.org/
- *
- * The MIT License (MIT)
- *
- * Copyright (c) 2015 Damien P. George
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#include <p33Fxxxx.h>
-#include "board.h"
-
-/********************************************************************/
-// CPU
-
-void cpu_init(void) {
- // set oscillator to operate at 40MHz
- // Fosc = Fin*M/(N1*N2), Fcy = Fosc/2
- // Fosc = 7.37M*40/(2*2) = 80Mhz for 7.37M input clock
- PLLFBD = 41; // M=39
- CLKDIVbits.PLLPOST = 0; // N1=2
- CLKDIVbits.PLLPRE = 0; // N2=2
- OSCTUN = 0;
-
- // initiate clock switch to FRC with PLL
- __builtin_write_OSCCONH(0x01);
- __builtin_write_OSCCONL(0x01);
-
- // wait for clock switch to occur
- while (OSCCONbits.COSC != 0x01) {
- }
- while (!OSCCONbits.LOCK) {
- }
-}
-
-/********************************************************************/
-// LEDs
-
-#define RED_LED_TRIS _TRISC15
-#define YELLOW_LED_TRIS _TRISC13
-#define GREEN_LED_TRIS _TRISC14
-
-#define RED_LED _LATC15
-#define YELLOW_LED _LATC13
-#define GREEN_LED _LATC14
-
-#define LED_ON (0)
-#define LED_OFF (1)
-
-void led_init(void) {
- // set led GPIO as outputs
- RED_LED_TRIS = 0;
- YELLOW_LED_TRIS = 0;
- GREEN_LED_TRIS = 0;
-
- // turn off the LEDs
- RED_LED = LED_OFF;
- YELLOW_LED = LED_OFF;
- GREEN_LED = LED_OFF;
-}
-
-void led_state(int led, int state) {
- int val = state ? LED_ON : LED_OFF;
- switch (led) {
- case 1: RED_LED = val; break;
- case 2: YELLOW_LED = val; break;
- case 3: GREEN_LED = val; break;
- }
-}
-
-void led_toggle(int led) {
- switch (led) {
- case 1: RED_LED ^= 1; break;
- case 2: YELLOW_LED ^= 1; break;
- case 3: GREEN_LED ^= 1; break;
- }
-}
-
-/********************************************************************/
-// switches
-
-#define SWITCH_S1_TRIS _TRISD8
-#define SWITCH_S2_TRIS _TRISD9
-
-#define SWITCH_S1 _RD8
-#define SWITCH_S2 _RD9
-
-void switch_init(void) {
- // set switch GPIO as inputs
- SWITCH_S1_TRIS = 1;
- SWITCH_S2_TRIS = 1;
-}
-
-int switch_get(int sw) {
- int val = 1;
- switch (sw) {
- case 1: val = SWITCH_S1; break;
- case 2: val = SWITCH_S2; break;
- }
- return val == 0;
-}
-
-/********************************************************************/
-// UART
-
-/*
-// TODO need an irq
-void uart_rx_irq(void) {
- if (c == interrupt_char) {
- MP_STATE_VM(mp_pending_exception) = MP_STATE_PORT(keyboard_interrupt_obj);
- }
-}
-*/
-
-void uart_init(void) {
- // baudrate = F_CY / 16 (uxbrg + 1)
- // F_CY = 40MHz for us
- UART1.uxbrg = 64; // 38400 baud
- UART1.uxmode = 1 << 15; // UARTEN
- UART1.uxsta = 1 << 10; // UTXEN
-}
-
-int uart_rx_any(void) {
- return UART1.uxsta & 1; // URXDA
-}
-
-int uart_rx_char(void) {
- return UART1.uxrxreg;
-}
-
-void uart_tx_char(int chr) {
- while (UART1.uxsta & (1 << 9)) {
- // tx fifo is full
- }
- UART1.uxtxreg = chr;
-}
diff --git a/pic16bit/board.h b/pic16bit/board.h
deleted file mode 100644
index f45f87544..000000000
--- a/pic16bit/board.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * This file is part of the MicroPython project, http://micropython.org/
- *
- * The MIT License (MIT)
- *
- * Copyright (c) 2015 Damien P. George
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-#ifndef MICROPY_INCLUDED_PIC16BIT_BOARD_H
-#define MICROPY_INCLUDED_PIC16BIT_BOARD_H
-
-void cpu_init(void);
-
-void led_init(void);
-void led_state(int led, int state);
-void led_toggle(int led);
-
-void switch_init(void);
-int switch_get(int sw);
-
-void uart_init(void);
-int uart_rx_any(void);
-int uart_rx_char(void);
-void uart_tx_char(int chr);
-
-#endif // MICROPY_INCLUDED_PIC16BIT_BOARD_H
diff --git a/pic16bit/main.c b/pic16bit/main.c
deleted file mode 100644
index 4a61c5ff5..000000000
--- a/pic16bit/main.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * This file is part of the MicroPython project, http://micropython.org/
- *
- * The MIT License (MIT)
- *
- * Copyright (c) 2015 Damien P. George
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#include <stdint.h>
-#include <stdio.h>
-#include <string.h>
-#include <p33Fxxxx.h>
-
-#include "py/compile.h"
-#include "py/runtime.h"
-#include "py/gc.h"
-#include "py/mphal.h"
-#include "py/mperrno.h"
-#include "lib/utils/pyexec.h"
-#include "lib/mp-readline/readline.h"
-#include "board.h"
-#include "modpyb.h"
-
-_FGS(GWRP_OFF & GCP_OFF);
-_FOSCSEL(FNOSC_FRC);
-_FOSC(FCKSM_CSECMD & OSCIOFNC_ON & POSCMD_NONE);
-_FWDT(FWDTEN_OFF);
-
-// maximum heap for device with 8k RAM
-static char heap[4600];
-
-int main(int argc, char **argv) {
- // init the CPU and the peripherals
- cpu_init();
- led_init();
- switch_init();
- uart_init();
-
-soft_reset:
-
- // flash green led for 150ms to indicate boot
- led_state(1, 0);
- led_state(2, 0);
- led_state(3, 1);
- mp_hal_delay_ms(150);
- led_state(3, 0);
-
- // init MicroPython runtime
- int stack_dummy;
- MP_STATE_THREAD(stack_top) = (char*)&stack_dummy;
- gc_init(heap, heap + sizeof(heap));
- mp_init();
- mp_hal_init();
- readline_init0();
-
- // REPL loop
- for (;;) {
- if (pyexec_mode_kind == PYEXEC_MODE_RAW_REPL) {
- if (pyexec_raw_repl() != 0) {
- break;
- }
- } else {
- if (pyexec_friendly_repl() != 0) {
- break;
- }
- }
- }
-
- printf("PYB: soft reboot\n");
- mp_deinit();
- goto soft_reset;
-}
-
-void gc_collect(void) {
- // TODO possibly need to trace registers
- void *dummy;
- gc_collect_start();
- // Node: stack is ascending
- gc_collect_root(&dummy, ((mp_uint_t)&dummy - (mp_uint_t)MP_STATE_THREAD(stack_top)) / sizeof(mp_uint_t));
- gc_collect_end();
-}
-
-mp_lexer_t *mp_lexer_new_from_file(const char *filename) {
- mp_raise_OSError(MP_ENOENT);
-}
-
-mp_import_stat_t mp_import_stat(const char *path) {
- return MP_IMPORT_STAT_NO_EXIST;
-}
-
-mp_obj_t mp_builtin_open(size_t n_args, const mp_obj_t *args, mp_map_t *kwargs) {
- return mp_const_none;
-}
-MP_DEFINE_CONST_FUN_OBJ_KW(mp_builtin_open_obj, 1, mp_builtin_open);
-
-void nlr_jump_fail(void *val) {
- while (1);
-}
-
-void NORETURN __fatal_error(const char *msg) {
- while (1);
-}
-
-#ifndef NDEBUG
-void MP_WEAK __assert_func(const char *file, int line, const char *func, const char *expr) {
- printf("Assertion '%s' failed, at file %s:%d\n", expr, file, line);
- __fatal_error("Assertion failed");
-}
-#endif
diff --git a/pic16bit/modpyb.c b/pic16bit/modpyb.c
deleted file mode 100644
index 629914633..000000000
--- a/pic16bit/modpyb.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * This file is part of the MicroPython project, http://micropython.org/
- *
- * The MIT License (MIT)
- *
- * Copyright (c) 2015 Damien P. George
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#include <stdio.h>
-
-#include "py/obj.h"
-#include "py/mphal.h"
-#include "modpyb.h"
-
-STATIC mp_obj_t pyb_millis(void) {
- return MP_OBJ_NEW_SMALL_INT(mp_hal_ticks_ms());
-}
-STATIC MP_DEFINE_CONST_FUN_OBJ_0(pyb_millis_obj, pyb_millis);
-
-STATIC mp_obj_t pyb_elapsed_millis(mp_obj_t start) {
- uint32_t startMillis = mp_obj_get_int(start);
- uint32_t currMillis = mp_hal_ticks_ms();
- return MP_OBJ_NEW_SMALL_INT((currMillis - startMillis) & 0x1fff);
-}
-STATIC MP_DEFINE_CONST_FUN_OBJ_1(pyb_elapsed_millis_obj, pyb_elapsed_millis);
-
-STATIC mp_obj_t pyb_delay(mp_obj_t ms_in) {
- mp_int_t ms = mp_obj_get_int(ms_in);
- if (ms >= 0) {
- mp_hal_delay_ms(ms);
- }
- return mp_const_none;
-}
-STATIC MP_DEFINE_CONST_FUN_OBJ_1(pyb_delay_obj, pyb_delay);
-
-STATIC const mp_rom_map_elem_t pyb_module_globals_table[] = {
- { MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_pyb) },
-
- { MP_ROM_QSTR(MP_QSTR_millis), MP_ROM_PTR(&pyb_millis_obj) },
- { MP_ROM_QSTR(MP_QSTR_elapsed_millis), MP_ROM_PTR(&pyb_elapsed_millis_obj) },
- { MP_ROM_QSTR(MP_QSTR_delay), MP_ROM_PTR(&pyb_delay_obj) },
-
- { MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pyb_led_type) },
- { MP_ROM_QSTR(MP_QSTR_Switch), MP_ROM_PTR(&pyb_switch_type) },
-};
-
-STATIC MP_DEFINE_CONST_DICT(pyb_module_globals, pyb_module_globals_table);
-
-const mp_obj_module_t pyb_module = {
- .base = { &mp_type_module },
- .globals = (mp_obj_dict_t*)&pyb_module_globals,
-};
diff --git a/pic16bit/modpyb.h b/pic16bit/modpyb.h
deleted file mode 100644
index ac19fd2f3..000000000
--- a/pic16bit/modpyb.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * This file is part of the MicroPython project, http://micropython.org/
- *
- * The MIT License (MIT)
- *
- * Copyright (c) 2015 Damien P. George
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-#ifndef MICROPY_INCLUDED_PIC16BIT_MODPYB_H
-#define MICROPY_INCLUDED_PIC16BIT_MODPYB_H
-
-extern const mp_obj_type_t pyb_led_type;
-extern const mp_obj_type_t pyb_switch_type;
-extern const mp_obj_module_t pyb_module;
-
-#endif // MICROPY_INCLUDED_PIC16BIT_MODPYB_H
diff --git a/pic16bit/modpybled.c b/pic16bit/modpybled.c
deleted file mode 100644
index 0d200c603..000000000
--- a/pic16bit/modpybled.c
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * This file is part of the MicroPython project, http://micropython.org/
- *
- * The MIT License (MIT)
- *
- * Copyright (c) 2015 Damien P. George
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#include "py/runtime.h"
-#include "board.h"
-#include "modpyb.h"
-
-typedef struct _pyb_led_obj_t {
- mp_obj_base_t base;
-} pyb_led_obj_t;
-
-STATIC const pyb_led_obj_t pyb_led_obj[] = {
- {{&pyb_led_type}},
- {{&pyb_led_type}},
- {{&pyb_led_type}},
-};
-
-#define NUM_LED MP_ARRAY_SIZE(pyb_led_obj)
-#define LED_ID(obj) ((obj) - &pyb_led_obj[0] + 1)
-
-void pyb_led_print(const mp_print_t *print, mp_obj_t self_in, mp_print_kind_t kind) {
- pyb_led_obj_t *self = self_in;
- mp_printf(print, "LED(%u)", LED_ID(self));
-}
-
-STATIC mp_obj_t pyb_led_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *args) {
- mp_arg_check_num(n_args, n_kw, 1, 1, false);
- mp_int_t led_id = mp_obj_get_int(args[0]);
- if (!(1 <= led_id && led_id <= NUM_LED)) {
- nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_ValueError, "LED %d does not exist", led_id));
- }
- return (mp_obj_t)&pyb_led_obj[led_id - 1];
-}
-
-mp_obj_t pyb_led_on(mp_obj_t self_in) {
- pyb_led_obj_t *self = self_in;
- led_state(LED_ID(self), 1);
- return mp_const_none;
-}
-STATIC MP_DEFINE_CONST_FUN_OBJ_1(pyb_led_on_obj, pyb_led_on);
-
-mp_obj_t pyb_led_off(mp_obj_t self_in) {
- pyb_led_obj_t *self = self_in;
- led_state(LED_ID(self), 0);
- return mp_const_none;
-}
-STATIC MP_DEFINE_CONST_FUN_OBJ_1(pyb_led_off_obj, pyb_led_off);
-
-mp_obj_t pyb_led_toggle(mp_obj_t self_in) {
- pyb_led_obj_t *self = self_in;
- led_toggle(LED_ID(self));
- return mp_const_none;
-}
-STATIC MP_DEFINE_CONST_FUN_OBJ_1(pyb_led_toggle_obj, pyb_led_toggle);
-
-STATIC const mp_rom_map_elem_t pyb_led_locals_dict_table[] = {
- { MP_ROM_QSTR(MP_QSTR_on), MP_ROM_PTR(&pyb_led_on_obj) },
- { MP_ROM_QSTR(MP_QSTR_off), MP_ROM_PTR(&pyb_led_off_obj) },
- { MP_ROM_QSTR(MP_QSTR_toggle), MP_ROM_PTR(&pyb_led_toggle_obj) },
-};
-
-STATIC MP_DEFINE_CONST_DICT(pyb_led_locals_dict, pyb_led_locals_dict_table);
-
-const mp_obj_type_t pyb_led_type = {
- { &mp_type_type },
- .name = MP_QSTR_LED,
- .print = pyb_led_print,
- .make_new = pyb_led_make_new,
- .locals_dict = (mp_obj_t)&pyb_led_locals_dict,
-};
diff --git a/pic16bit/modpybswitch.c b/pic16bit/modpybswitch.c
deleted file mode 100644
index 0799ad9e8..000000000
--- a/pic16bit/modpybswitch.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * This file is part of the MicroPython project, http://micropython.org/
- *
- * The MIT License (MIT)
- *
- * Copyright (c) 2015 Damien P. George
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#include "py/runtime.h"
-#include "board.h"
-#include "modpyb.h"
-
-typedef struct _pyb_switch_obj_t {
- mp_obj_base_t base;
-} pyb_switch_obj_t;
-
-STATIC const pyb_switch_obj_t pyb_switch_obj[] = {
- {{&pyb_switch_type}},
- {{&pyb_switch_type}},
-};
-
-#define NUM_SWITCH MP_ARRAY_SIZE(pyb_switch_obj)
-#define SWITCH_ID(obj) ((obj) - &pyb_switch_obj[0] + 1)
-
-void pyb_switch_print(const mp_print_t *print, mp_obj_t self_in, mp_print_kind_t kind) {
- pyb_switch_obj_t *self = self_in;
- mp_printf(print, "Switch(%u)", SWITCH_ID(self));
-}
-
-STATIC mp_obj_t pyb_switch_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *args) {
- mp_arg_check_num(n_args, n_kw, 1, 1, false);
- mp_int_t sw_id = mp_obj_get_int(args[0]);
- if (!(1 <= sw_id && sw_id <= NUM_SWITCH)) {
- nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_ValueError, "Switch %d does not exist", sw_id));
- }
- return (mp_obj_t)&pyb_switch_obj[sw_id - 1];
-}
-
-mp_obj_t pyb_switch_value(mp_obj_t self_in) {
- pyb_switch_obj_t *self = self_in;
- return switch_get(SWITCH_ID(self)) ? mp_const_true : mp_const_false;
-}
-STATIC MP_DEFINE_CONST_FUN_OBJ_1(pyb_switch_value_obj, pyb_switch_value);
-
-mp_obj_t pyb_switch_call(mp_obj_t self_in, size_t n_args, size_t n_kw, const mp_obj_t *args) {
- mp_arg_check_num(n_args, n_kw, 0, 0, false);
- return pyb_switch_value(self_in);
-}
-
-STATIC const mp_rom_map_elem_t pyb_switch_locals_dict_table[] = {
- { MP_ROM_QSTR(MP_QSTR_value), MP_ROM_PTR(&pyb_switch_value_obj) },
-};
-
-STATIC MP_DEFINE_CONST_DICT(pyb_switch_locals_dict, pyb_switch_locals_dict_table);
-
-const mp_obj_type_t pyb_switch_type = {
- { &mp_type_type },
- .name = MP_QSTR_Switch,
- .print = pyb_switch_print,
- .make_new = pyb_switch_make_new,
- .call = pyb_switch_call,
- .locals_dict = (mp_obj_t)&pyb_switch_locals_dict,
-};
diff --git a/pic16bit/mpconfigport.h b/pic16bit/mpconfigport.h
deleted file mode 100644
index 59880dc59..000000000
--- a/pic16bit/mpconfigport.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * This file is part of the MicroPython project, http://micropython.org/
- *
- * The MIT License (MIT)
- *
- * Copyright (c) 2015 Damien P. George
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#include <stdint.h>
-
-// options to control how MicroPython is built
-#define MICROPY_OBJ_REPR (MICROPY_OBJ_REPR_B)
-#define MICROPY_ALLOC_PATH_MAX (64)
-#define MICROPY_EMIT_X64 (0)
-#define MICROPY_EMIT_THUMB (0)
-#define MICROPY_EMIT_INLINE_THUMB (0)
-#define MICROPY_COMP_MODULE_CONST (0)
-#define MICROPY_COMP_CONST (0)
-#define MICROPY_MEM_STATS (0)
-#define MICROPY_DEBUG_PRINTERS (0)
-#define MICROPY_ENABLE_GC (1)
-#define MICROPY_REPL_EVENT_DRIVEN (0)
-#define MICROPY_HELPER_REPL (1)
-#define MICROPY_HELPER_LEXER_UNIX (0)
-#define MICROPY_ENABLE_SOURCE_LINE (0)
-#define MICROPY_ENABLE_DOC_STRING (0)
-#define MICROPY_ERROR_REPORTING (MICROPY_ERROR_REPORTING_TERSE)
-#define MICROPY_PY_ASYNC_AWAIT (0)
-#define MICROPY_PY_BUILTINS_BYTEARRAY (0)
-#define MICROPY_PY_BUILTINS_MEMORYVIEW (0)
-#define MICROPY_PY_BUILTINS_FROZENSET (0)
-#define MICROPY_PY_BUILTINS_SET (0)
-#define MICROPY_PY_BUILTINS_SLICE (0)
-#define MICROPY_PY_BUILTINS_PROPERTY (0)
-#define MICROPY_PY_MICROPYTHON_MEM_INFO (1)
-#define MICROPY_PY___FILE__ (0)
-#define MICROPY_PY_GC (1)
-#define MICROPY_PY_ARRAY (0)
-#define MICROPY_PY_COLLECTIONS (0)
-#define MICROPY_PY_MATH (0)
-#define MICROPY_PY_CMATH (0)
-#define MICROPY_PY_IO (0)
-#define MICROPY_PY_STRUCT (0)
-#define MICROPY_PY_SYS (0)
-#define MICROPY_CPYTHON_COMPAT (0)
-#define MICROPY_LONGINT_IMPL (MICROPY_LONGINT_IMPL_MPZ)
-#define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_NONE)
-#define MICROPY_NO_ALLOCA (1)
-
-// type definitions for the specific machine
-
-#define MP_ENDIANNESS_LITTLE (1)
-#define MPZ_DIG_SIZE (8)
-
-// The xc16 compiler doesn't seem to respect alignment (!!) so we
-// need to use instead an object representation that allows for
-// 2-byte aligned pointers (see config setting above).
-//#define MICROPY_OBJ_BASE_ALIGNMENT __attribute__((aligned(4)))
-
-#define MICROPY_MAKE_POINTER_CALLABLE(p) ((void*)((mp_uint_t)(p)))
-
-#define UINT_FMT "%u"
-#define INT_FMT "%d"
-typedef int mp_int_t; // must be pointer size
-typedef unsigned int mp_uint_t; // must be pointer size
-
-typedef int mp_off_t;
-
-#define MP_PLAT_PRINT_STRN(str, len) mp_hal_stdout_tx_strn_cooked(str, len)
-
-// extra builtin names to add to the global namespace
-#define MICROPY_PORT_BUILTINS \
- { MP_ROM_QSTR(MP_QSTR_open), MP_ROM_PTR(&mp_builtin_open_obj) },
-
-// extra builtin modules to add to the list of known ones
-extern const struct _mp_obj_module_t pyb_module;
-#define MICROPY_PORT_BUILTIN_MODULES \
- { MP_ROM_QSTR(MP_QSTR_pyb), MP_ROM_PTR(&pyb_module) }, \
-
-#define MP_STATE_PORT MP_STATE_VM
-
-#define MICROPY_PORT_ROOT_POINTERS \
- char *readline_hist[8]; \
- mp_obj_t keyboard_interrupt_obj; \
-
-#define MICROPY_MPHALPORT_H "pic16bit_mphal.h"
-#define MICROPY_HW_BOARD_NAME "dsPICSK"
-#define MICROPY_HW_MCU_NAME "dsPIC33"
-
-// XC16 toolchain doesn't seem to define these
-typedef int intptr_t;
-typedef unsigned int uintptr_t;
diff --git a/pic16bit/pic16bit_mphal.c b/pic16bit/pic16bit_mphal.c
deleted file mode 100644
index 35955f2d3..000000000
--- a/pic16bit/pic16bit_mphal.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * This file is part of the MicroPython project, http://micropython.org/
- *
- * The MIT License (MIT)
- *
- * Copyright (c) 2015 Damien P. George
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#include <string.h>
-#include "py/mphal.h"
-#include "board.h"
-
-static int interrupt_char;
-
-void mp_hal_init(void) {
- MP_STATE_PORT(keyboard_interrupt_obj) = mp_obj_new_exception(&mp_type_KeyboardInterrupt);
-}
-
-mp_uint_t mp_hal_ticks_ms(void) {
- // TODO
- return 0;
-}
-
-void mp_hal_delay_ms(mp_uint_t ms) {
- // tuned for fixed CPU frequency
- for (int i = ms; i > 0; i--) {
- for (volatile int j = 0; j < 5000; j++) {
- }
- }
-}
-
-void mp_hal_set_interrupt_char(int c) {
- interrupt_char = c;
-}
-
-int mp_hal_stdin_rx_chr(void) {
- for (;;) {
- if (uart_rx_any()) {
- return uart_rx_char();
- }
- }
-}
-
-void mp_hal_stdout_tx_str(const char *str) {
- mp_hal_stdout_tx_strn(str, strlen(str));
-}
-
-void mp_hal_stdout_tx_strn(const char *str, size_t len) {
- for (; len > 0; --len) {
- uart_tx_char(*str++);
- }
-}
-
-void mp_hal_stdout_tx_strn_cooked(const char *str, size_t len) {
- for (; len > 0; --len) {
- if (*str == '\n') {
- uart_tx_char('\r');
- }
- uart_tx_char(*str++);
- }
-}
diff --git a/pic16bit/pic16bit_mphal.h b/pic16bit/pic16bit_mphal.h
deleted file mode 100644
index f5da6cdc8..000000000
--- a/pic16bit/pic16bit_mphal.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * This file is part of the MicroPython project, http://micropython.org/
- *
- * The MIT License (MIT)
- *
- * Copyright (c) 2015 Damien P. George
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#include "py/mpstate.h"
-
-void mp_hal_init(void);
-
-void mp_hal_set_interrupt_char(int c);
diff --git a/pic16bit/qstrdefsport.h b/pic16bit/qstrdefsport.h
deleted file mode 100644
index 3ba897069..000000000
--- a/pic16bit/qstrdefsport.h
+++ /dev/null
@@ -1 +0,0 @@
-// qstrs specific to this port
diff --git a/pic16bit/unistd.h b/pic16bit/unistd.h
deleted file mode 100644
index 23c5e54c7..000000000
--- a/pic16bit/unistd.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef MICROPY_INCLUDED_PIC16BIT_UNISTD_H
-#define MICROPY_INCLUDED_PIC16BIT_UNISTD_H
-
-// XC16 compiler doesn't seem to have unistd.h file
-
-#define SEEK_SET 0
-#define SEEK_CUR 1
-
-typedef int ssize_t;
-
-#endif // MICROPY_INCLUDED_PIC16BIT_UNISTD_H