Skip to content

Commit

Permalink
Add a compiled-in md380 module. Use via md380 = require("md380").get()
Browse files Browse the repository at this point in the history
File is in libs/md380/md380_lib.js.  Happy hacking.
  • Loading branch information
W8BSD committed Jun 9, 2017
1 parent dc3cd54 commit 73f72b5
Show file tree
Hide file tree
Showing 6 changed files with 80 additions and 1 deletion.
7 changes: 7 additions & 0 deletions Makefile
Expand Up @@ -597,6 +597,13 @@ ifdef USE_TYTROTATO
WRAPPERSOURCES += libs/md380/jswrap_tytrotato.c
endif

ifdef USE_MD380MODS
DEFINES += -DUSE_MD380MODS
INCLUDE += -I$(ROOT)/libs/md380
PRECOMPILED_OBJS += libs/md380/md380_lib.o
WRAPPERSOURCES += libs/md380/jswrap_md380_modules.c
endif

ifdef USE_NFC
DEFINES += -DUSE_NFC -DNFC_HAL_ENABLED=1
INCLUDE += -I$(NRF5X_SDK_PATH)/components/nfc/t2t_lib
Expand Down
3 changes: 2 additions & 1 deletion boards/TYTMD.py
Expand Up @@ -28,7 +28,8 @@
'LCD_FSMC',
'GRAPHICS',
'TYTKEYPAD',
'TYTROTATO'
'TYTROTATO',
'MD380MODS'
],
'makefile' : [
'DEFINES+=-DUSE_USB_OTG_FS=1 -DSTM32F40_41xxx -DUSB_NO_VBUS_SENSE',
Expand Down
39 changes: 39 additions & 0 deletions libs/md380/jswrap_md380_modules.c
@@ -0,0 +1,39 @@
#include "jsinteractive.h"
#include "jsvar.h"
#include "jswrap_modules.h"

/*JSON{
"type" : "init",
"generate" : "jswrap_md380_modules"
}*/

/*
* Currently, only supports 64k, though extra 64k chunks could be added.
*/

extern char _md380_lib_js_start[];
extern uint32_t _md380_lib_js_size;

void jswrap_md380_modules(void)
{
if (_md380_lib_js_size > 0 && _md380_lib_js_size <= 65535) {
JsVar *src = jsvNewWithFlags(JSV_NATIVE_STRING);
if (!src) {
jsiConsolePrintf("Unable to create Native String\n");
return;
}
JsVar *mod = jsvNewFromString("md380");
if (!mod) {
jsiConsolePrintf("Unable to create Module name\n");
jsvUnLock(src);
return;
}
src->varData.nativeStr.ptr = _md380_lib_js_start;
src->varData.nativeStr.len = _md380_lib_js_size;
jswrap_modules_addCached(mod, src);
//jsvUnLock(src);
//jsvUnLock(mod);
}
else
jsiConsolePrintf("Size %d out of range\n", _md380_lib_js_size);
}
1 change: 1 addition & 0 deletions libs/md380/jswrap_md380_modules.h
@@ -0,0 +1 @@
void jswrap_md380_modules(void);
17 changes: 17 additions & 0 deletions libs/md380/md380_lib.js
@@ -0,0 +1,17 @@
function md380() {
}

md380.prototype.ReadSecurity = function(addr) {
var ret;

D7.reset();
SPI1.setup({sck:B3, miso:B4, mosi:B5, baud:84000000, mode:3});
SPI1.send([0x48, (addr>>16)&0xff, (addr>>8)&0xff, (addr)&0xff, 0xA5]);
ret = SPI1.send([0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5]);
D7.set();
return ret;
};

exports.get = function() {
return new md380();
}
14 changes: 14 additions & 0 deletions libs/md380/md380_lib.s
@@ -0,0 +1,14 @@
.section .rodata
.global _md380_lib_js_start
.type _md380_lib_js_start, %object
.balign 1

_md380_lib_js_start:
.incbin "md380_lib.js"

.global _md380_lib_js_size
.type _md380_lib_js_size, %object
.balign 1

_md380_lib_js_size:
.int _md380_lib_js_size - _md380_lib_js_start

0 comments on commit 73f72b5

Please sign in to comment.