C code
double __attribute__((pcs("aapcs"))) f2d(float f) {
return (double)f;
}
double __attribute__((pcs("aapcs-vfp"))) __hard_f2d(float f){
return (double)f;
}
void LCD_Init(void) | |
{ | |
GPIO_CfgPinOutput(5); | |
GPIO_CfgPinOutput(6); | |
GPIO_CfgPinOutput(0x1d); | |
GPIO_CfgPinOutput(0x10); | |
_DAT_5000050c = 0x10000; /* clear D16 */ | |
GPIO_ConfOutput4_28(); | |
D4_PulseZero50ms(); |
// https://github.com/gfwilliams/EspruinoCompiler/issues/10 | |
// https://www.espruino.com/service/compiler => http://127.0.0.1:32766 | |
// old compile.js: var cflags = "-mlittle-endian -mthumb -mcpu=cortex-m3 -mfix-cortex-m3-ldrd -mthumb-interwork -mfloat-abi=soft "; | |
// new: var cflags = "-mlittle-endian -mthumb -mcpu=cortex-m4 -mthumb-interwork -mfloat-abi=softfp -mfpu=fpv4-sp-d16 -fsingle-precision-constant -Wdouble-promotion -Wfloat-conversion "; | |
// | |
// power drain fix | |
// https://devzone.nordicsemi.com/f/nordic-q-a/15243/high-power-consumption-when-using-fpu | |
// https://devzone.nordicsemi.com/f/nordic-q-a/12433/fpu-divide-by-0-and-high-current-consumption | |
// https://infocenter.nordicsemi.com/index.jsp?topic=%2Ferrata_nRF52832_EngC%2FERR%2FnRF52832%2FEngineeringC%2Flatest%2Fanomaly_832_87.html&anchor=anomaly_832_87 |
diff --git a/make/family/NRF52.make b/make/family/NRF52.make | |
index 725cb55d..90bd9b69 100644 | |
--- a/make/family/NRF52.make | |
+++ b/make/family/NRF52.make | |
@@ -46,6 +46,7 @@ NRF5X_SDK=11 | |
NRF5X_SDK_11=1 | |
NRF5X_SDK_PATH=$(ROOT)/targetlibs/nrf5x_11 | |
DEFINES += -DNRF_SD_BLE_API_VERSION=2 | |
+DEFINES += -D__HEAP_SIZE=0 -D__STACK_SIZE=0x2600 -D__STARTUP_CLEAR_BSS | |
SOFTDEVICE = $(SOFTDEVICE_PATH)/hex/s132_nrf52_2.0.0_softdevice.hex |
C code
double __attribute__((pcs("aapcs"))) f2d(float f) {
return (double)f;
}
double __attribute__((pcs("aapcs-vfp"))) __hard_f2d(float f){
return (double)f;
}
diff -Naur Next186_SoC.orig/186Code/BIOS/bootload_BIOS_SD/bootstrap.asm Next186_SoC/186Code/BIOS/bootload_BIOS_SD/bootstrap.asm | |
--- Next186_SoC.orig/186Code/BIOS/bootload_BIOS_SD/bootstrap.asm 2016-09-26 14:42:28.401003600 +0200 | |
+++ Next186_SoC/186Code/BIOS/bootload_BIOS_SD/bootstrap.asm 2018-02-14 22:57:25.033245500 +0100 | |
@@ -95,32 +95,29 @@ | |
call sdinit_ | |
test ax, ax | |
jz short RS232 | |
- mov dx, ax | |
+ mov dx, ax ; first try to read bios from end of card | |
shr dx, 6 |
#Format=Hex | |
#Depth=256 | |
#Width=32 | |
#AddrRadix=3 | |
#DataRadix=3 | |
#Data | |
C88CFCFA | |
C08ED88E | |
00BCD08E | |
E7C033FC |
//manual watchdog pinging mode is dangerous for Espruino Web IDE upload with 'reset() before upload' enabled | |
//you can brick your device with partial upload caused by watchdog reboot in the middle of upload | |
//E.enableWatchdog(6, false); | |
//var wdint=setInterval(function(){if(!BTN1.read())E.kickWatchdog();},1000); | |
var log=console.log; | |
Modules.addCached("HX03WLCD",function(){ | |
// commands sent when initialising the display | |
var initCmds = new Uint8Array([ | |
0xAE, // 0 disp off | |
0xD5, // 1 clk div |
function mandelCompJS(x,y) { | |
"compiled"; | |
var Xr = 0; | |
var Xi = 0; | |
var i = 0; | |
var Cr=(4*x/64)-2; | |
var Ci=(4*y/64)-2; | |
while ((i<32) & ((Xr*Xr+Xi*Xi)<4)) { | |
var t=Xr*Xr - Xi*Xi + Cr; | |
Xi=2*Xr*Xi+Ci; |
// -- 1. copy paste methods for flash writing and verification below to Espruino WebIDE left side | |
E.setFlags({unsafeFlash:1}); | |
var fl=require("Flash"); | |
var ladd=0;var lpg=0;var nadd=0;// last address, last page addr, next addr | |
var flash=function(a,d){ | |
if (nadd>0 && nadd<a) console.log("Hole in data, got "+a.toString(16)+", expected "+nadd.toString(16)); | |
var p=fl.getPage(a).addr; | |
if (p>lpg) {fl.erasePage(p);lpg=p;console.log("Erasing page 0x"+p.toString(16));} | |
p=fl.getPage(a+d.length-1).addr; | |
if (p>lpg) {fl.erasePage(p);lpg=p;console.log("Erasing page 0x"+p.toString(16));} |
diff --git a/targetlibs/nrf5x_12/components/libraries/bootloader/dfu/nrf_dfu_utils.c b/targetlibs/nrf5x_12/components/libraries/bootloader/dfu/nrf_dfu_utils.c | |
index 6da88aa9..5ba66f3d 100644 | |
--- a/targetlibs/nrf5x_12/components/libraries/bootloader/dfu/nrf_dfu_utils.c | |
+++ b/targetlibs/nrf5x_12/components/libraries/bootloader/dfu/nrf_dfu_utils.c | |
@@ -461,10 +461,11 @@ uint32_t nrf_dfu_continue(uint32_t * p_enter_dfu_mode) | |
bool nrf_dfu_app_is_valid(void) | |
{ | |
NRF_LOG_INFO("Enter nrf_dfu_app_is_valid\r\n"); | |
- if (s_dfu_settings.bank_0.bank_code != NRF_DFU_BANK_VALID_APP && | |
+ if (s_dfu_settings.bank_0.bank_code != NRF_DFU_BANK_VALID_APP ^M |