From d415cc8aca8eaee8705718fa0193c0556b9d853a Mon Sep 17 00:00:00 2001 From: Mark Becker Date: Sat, 10 Feb 2018 11:16:27 +0100 Subject: [PATCH 1/3] fix 'Create some directories on /Espruino' --- README_Building.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README_Building.md b/README_Building.md index af0fe90b1..d074218bf 100644 --- a/README_Building.md +++ b/README_Building.md @@ -99,10 +99,10 @@ hdiutil attach ~/diskimages/Espruino.sparsebundle ``` mkdir /Espruino/{gcc,sdk,repos,tmp} -/Espruino -+- gcc GNU Compiler Collection for different processors - +- sdk Software Development Kits +/Espruino -+- gcc GNU Compiler Collection for different processors + +- sdk Software Development Kits +- repos like Espruino EspruinoDocs ... - +- tmp temporary files + +- tmp temporary files ``` #### Install build and flash tools From df3fa26183b53099e16372fb33b44e42c4d0d51f Mon Sep 17 00:00:00 2001 From: Mark Becker Date: Sun, 11 Feb 2018 05:36:54 +0100 Subject: [PATCH 2/3] chang crop len condition (fix #1331) --- src/jsvar.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/jsvar.c b/src/jsvar.c index 40a7966bd..bd80d256d 100644 --- a/src/jsvar.c +++ b/src/jsvar.c @@ -1046,7 +1046,7 @@ JsVar *jsvNewNativeFunction(void (*ptr)(void), unsigned short argTypes) { } JsVar *jsvNewNativeString(char *ptr, size_t len) { - if (len<65535) len=65535; // crop string to 65535 characters because that's all be can store in nativeStr.len + if (len>65535) len=65535; // crop string to 65535 characters because that's all be can store in nativeStr.len JsVar *str = jsvNewWithFlags(JSV_NATIVE_STRING); if (!str) return 0; str->varData.nativeStr.ptr = ptr; From b52bd912f6ab1ca26e1a641b814c29907cfe4b73 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Mon, 12 Feb 2018 15:37:28 +0000 Subject: [PATCH 3/3] fix regression with startup console on USB devices --- scripts/build_platform_config.py | 1 + src/jsinteractive.c | 3 ++- targets/stm32/jshardware.c | 9 +++++---- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/scripts/build_platform_config.py b/scripts/build_platform_config.py index 6682c8962..540c91724 100644 --- a/scripts/build_platform_config.py +++ b/scripts/build_platform_config.py @@ -299,6 +299,7 @@ else: codeOut("#define FLASH_MAGIC_LOCATION (FLASH_SAVED_CODE_START + FLASH_SAVED_CODE_LENGTH - 4)") codeOut("#define FLASH_MAGIC 0xDEADBEEF") codeOut(""); +codeOut("#define CLOCK_SPEED_MHZ "+str(board.chip["speed"])) codeOut("#define USART_COUNT "+str(board.chip["usart"])) codeOut("#define SPI_COUNT "+str(board.chip["spi"])) codeOut("#define I2C_COUNT "+str(board.chip["i2c"])) diff --git a/src/jsinteractive.c b/src/jsinteractive.c index aa66f6f31..a66f94fb6 100644 --- a/src/jsinteractive.c +++ b/src/jsinteractive.c @@ -156,7 +156,7 @@ IOEventFlags jsiGetPreferredConsoleDevice() { #endif #ifdef USB if (jshIsUSBSERIALConnected()) - consoleDevice = EV_USBSERIAL; + dev = EV_USBSERIAL; #endif #ifdef BLUETOOTH if (jsble_has_simple_connection(dev)) @@ -861,6 +861,7 @@ void jsiOneSecondAfterStartup() { char or two can get corrupted. */ #ifdef USB + if (consoleDevice == EV_LIMBO) { consoleDevice = jsiGetPreferredConsoleDevice(); // now move any output that was made to Limbo to the given device diff --git a/targets/stm32/jshardware.c b/targets/stm32/jshardware.c index 925b834e3..ab3b9ff47 100644 --- a/targets/stm32/jshardware.c +++ b/targets/stm32/jshardware.c @@ -51,7 +51,6 @@ #define IRQ_PRIOR_LOW 15 #ifdef USE_RTC - #include "jswrap_date.h" // for non-F1 calendar -> days since 1970 conversion // TODO: could jshRTCPrescaler (and the hardware prescaler) be modified on SysTick, to calibrate the LSI against the HSE? @@ -70,6 +69,8 @@ JsSysTime jshGetRTCSystemTime(); static JsSysTime jshGetTimeForSecond(); +// The amount of systicks for one second depends on the clock speed +#define SYSTICKS_FOR_ONE_SECOND (1+(CLOCK_SPEED_MHZ*1000000/SYSTICK_RANGE)) // see jshPinWatch/jshGetWatchedPinState Pin watchedPins[16]; @@ -97,11 +98,11 @@ JsSysTime jshLastWokenByUSB = 0; * and then masking off the top bit */ unsigned char jsh7BitUART; bool jshIsSerial7Bit(IOEventFlags device) { - assert(SERIAL_COUNT<=8); + assert(USART_COUNT<=8); return jsh7BitUART & (1<<(device-EV_SERIAL1)); } void jshSetIsSerial7Bit(IOEventFlags device, bool is7Bit) { - assert(SERIAL_COUNT<=8); + assert(USART_COUNT<=8); if (is7Bit) jsh7BitUART |= (1<<(device-EV_SERIAL1)); else jsh7BitUART &= ~(1<<(device-EV_SERIAL1)); } @@ -836,7 +837,7 @@ void jshDoSysTick() { /* One second after start, call jsinteractive. This is used to swap * to USB (if connected), or the Serial port. */ - if (ticksSinceStart == 5) { + if (ticksSinceStart == SYSTICKS_FOR_ONE_SECOND) { jsiOneSecondAfterStartup(); } }