1
0
Fork 0

Merge branch 'espruino:master' into circlesclock_v0.04

master
Marco H 2022-01-06 15:25:26 +01:00 committed by GitHub
commit 5b3ba52c4f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 17 additions and 20 deletions

View File

@ -2,7 +2,7 @@
{ {
"id": "fwupdate", "id": "fwupdate",
"name": "Firmware Update", "name": "Firmware Update",
"version": "0.02", "version": "0.03",
"description": "[BETA] Uploads new Espruino firmwares to Bangle.js 2. For now, please use the instructions under https://www.espruino.com/Bangle.js2#firmware-updates", "description": "[BETA] Uploads new Espruino firmwares to Bangle.js 2. For now, please use the instructions under https://www.espruino.com/Bangle.js2#firmware-updates",
"icon": "app.png", "icon": "app.png",
"type": "RAM", "type": "RAM",
@ -1501,7 +1501,7 @@
{ {
"id": "gpsinfo", "id": "gpsinfo",
"name": "GPS Info", "name": "GPS Info",
"version": "0.07", "version": "0.08",
"description": "An application that displays information about altitude, lat/lon, satellites and time", "description": "An application that displays information about altitude, lat/lon, satellites and time",
"icon": "gps-info.png", "icon": "gps-info.png",
"type": "app", "type": "app",

View File

@ -12,7 +12,7 @@ function upd(th) {
g.reset = function(n) { return g._reset().setColor(th.fg).setBgColor(th.bg); }; g.reset = function(n) { return g._reset().setColor(th.fg).setBgColor(th.bg); };
g.clear = function(n) { if (n) g.reset(); return g.clearRect(0,0,g.getWidth(),g.getHeight()); }; g.clear = function(n) { if (n) g.reset(); return g.clearRect(0,0,g.getWidth(),g.getHeight()); };
g.clear(1); g.clear(1);
}; }
function flipTheme() { function flipTheme() {
if (!g.theme.dark) { if (!g.theme.dark) {

View File

@ -1 +1 @@
require("heatshrink").decompress(atob("mEw4X/AAO/mMUzs975K+ggLKysUAYNVqoLFitUoAKBqtQBYkJBIQABqwLEgQLEqtABggJDqkVBaoNCBZQwEgILWgoJENYsVBIcVBYpDEgpSIBYMBKQg6CuogCBY1UgoLCXAQLDqAsDBYhSBqEJHAoLDoEBcQ4LBEwILIMooLdIg4LaVoyaGERLcFao4LIdRAACYYUQBY5RKAH4Ar")); require("heatshrink").decompress(atob("mEw4X/AAO/mMUzs975K+ggLKysUAYNVqoLFitUoAKBqtQBYkJBIQABqwLEgQLEqtABggJDqkVBaoNCBZQwEgILWgoJENYsVBIcVBYpDEgpSIBYMBKQg6CuogCBY1UgoLCXAQLDqAsDBYhSBqEJHAoLDoEBcQ4LBEwILIMooLdIg4LaVoyaGERLcFao4LIdRAACYYUQBY5RKAH4Ar"))

View File

@ -2,3 +2,5 @@
0.02: Add support for ZIPs 0.02: Add support for ZIPs
Find and download ZIPs direct from the Espruino website Find and download ZIPs direct from the Espruino website
Take 'beta' tag off Take 'beta' tag off
0.03: Improve bootloader update safety. Now sets unsafeFlash:1 to allow flash with 2v11 and later
Add CRC checks for common bootloaders that we know don't work

View File

@ -60,6 +60,7 @@ function onInit(device) {
document.getElementById("fw-unknown").style = "display:none"; document.getElementById("fw-unknown").style = "display:none";
document.getElementById("fw-ok").style = ""; document.getElementById("fw-ok").style = "";
} }
} }
function checkForFileOnServer() { function checkForFileOnServer() {
@ -264,6 +265,8 @@ function createJS_app(binary, startAddress, endAddress) {
bin32[3] = VERSION; // VERSION! Use this to test ourselves bin32[3] = VERSION; // VERSION! Use this to test ourselves
console.log("CRC 0x"+bin32[2].toString(16)); console.log("CRC 0x"+bin32[2].toString(16));
hexJS = "";//`\x10if (E.CRC32(E.memoryArea(${startAddress},${endAddress-startAddress}))==${bin32[2]}) { print("FIRMWARE UP TO DATE!"); load();}\n`; hexJS = "";//`\x10if (E.CRC32(E.memoryArea(${startAddress},${endAddress-startAddress}))==${bin32[2]}) { print("FIRMWARE UP TO DATE!"); load();}\n`;
hexJS += `\x10if (E.CRC32(E.memoryArea(0xF7000,0x7000))==1339551013) { print("BOOTLOADER 2v10.219 needs update"); load();}\n`;
hexJS += `\x10if (E.CRC32(E.memoryArea(0xF7000,0x7000))==1207580954) { print("BOOTLOADER 2v10.236 needs update"); load();}\n`;
hexJS += '\x10var s = require("Storage");\n'; hexJS += '\x10var s = require("Storage");\n';
hexJS += '\x10s.erase(".firmware");\n'; hexJS += '\x10s.erase(".firmware");\n';
var CHUNKSIZE = 2048; var CHUNKSIZE = 2048;
@ -291,20 +294,14 @@ function createJS_bootloader(binary, startAddress, endAddress) {
var chunk = btoa(new Uint8Array(binary.buffer, binary.byteOffset+i, l)); var chunk = btoa(new Uint8Array(binary.buffer, binary.byteOffset+i, l));
hexJS += '\x10_fw.set(atob("'+chunk+'"), 0x'+(i).toString(16)+');\n'; hexJS += '\x10_fw.set(atob("'+chunk+'"), 0x'+(i).toString(16)+');\n';
} }
// hexJS += `\x10(function() { hexJS += `\x10(function() { if (E.CRC32(_fw)!=${crc}) throw "Invalid CRC: 0x"+E.CRC32(_fw).toString(16);\n`;
// if (E.CRC32(_fw)!=${crc}) throw "Invalid CRC!"; hexJS += 'E.showMessage("Flashing Bootloader...")\n';
// var f = require("Flash"); hexJS += 'E.setFlags({unsafeFlash:1})\n';
// for (var i=${startAddress};i<${endAddress};i+=4096) f.erasePage(i); hexJS += 'var f = require("Flash");\n';
// f.write(_fw,${startAddress});
// E.reboot();
// })();\n`;
hexJS += `\x10if (E.CRC32(_fw)!=${crc}) throw "Invalid CRC: 0x"+E.CRC32(_fw).toString(16);\n`;
hexJS += '\x10var f = require("Flash");\n';
for (var i=startAddress;i<endAddress;i+=4096) for (var i=startAddress;i<endAddress;i+=4096)
hexJS += '\x10f.erasePage(0x'+i.toString(16)+');\n'; hexJS += 'f.erasePage(0x'+i.toString(16)+');\n';
hexJS += `\x10f.write(_fw,${startAddress});\n`; hexJS += `f.write(_fw,${startAddress});\n`;
// hexJS += '\x10setTimeout(()=>E.showMessage("Rebooting..."),50);\n'; hexJS += `})()\n`;
// hexJS += '\x10setTimeout(()=>E.reboot(), 2000);\n';
} }
function fileLoaded() { function fileLoaded() {

View File

@ -4,3 +4,4 @@
0.05: Refactor to use 'layout' library for multi-device support 0.05: Refactor to use 'layout' library for multi-device support
0.06: Add number of satellites in view and fix crash with GPS time 0.06: Add number of satellites in view and fix crash with GPS time
0.07: Resolve one FIFO_FULL case and exit App with button press 0.07: Resolve one FIFO_FULL case and exit App with button press
0.08: Leave GPS power switched on on exit (will switch off after 0.5 seconds anyway)

View File

@ -132,9 +132,6 @@ Bangle.on('GPS', onGPS);
Bangle.on('GPS-raw', onGPSraw); Bangle.on('GPS-raw', onGPSraw);
function exitApp() { function exitApp() {
Bangle.setGPSPower(0, "app");
Bangle.removeListener('GPS-raw', onGPSraw);
Bangle.removeListener('GPS', onGPS);
load(); load();
} }