mJS – A new approach to embedded scripting
mongoose-iot.com
mJS – A new approach to embedded scripting
1–10 of 61 posts
Re: mJS – A new approach to embedded scripting
#2 let f = ffi('int gpio_write(int, int)');
vs. var current = ffi.Library(null, {
'atoi': [ 'int', [ 'string' ] ]
});Re: mJS – A new approach to embedded scripting
#3Re: mJS – A new approach to embedded scripting
#4 let malloc = ffi('void *malloc(int)');
let mem = malloc(10);
How do you manipulate that memory?How can you do the following in mJS?
int* mem = malloc(10);
mem[0] = 3;
mem[1] = 7;
mem[2] = 12;
int *rest = mem + 3;
There are some things you can do in C without functions. How does mJS achieve this?Re: mJS – A new approach to embedded scripting
#5I've never worked with embedded systems, so forgive my ignorance. Why is this any more useful than just writing c code, if all the code that actually interacts with the hardware has to be written in c anyway?
Re: mJS – A new approach to embedded scripting
#6I've never worked with embedded systems, so forgive my ignorance. Why is this any more useful than just writing c code, if all the code that actually interacts with the hardware has to be written in c anyway?
Re: mJS – A new approach to embedded scripting
#7Taking this example: let malloc = ffi('void *malloc(int)'); let mem = malloc(10); How do you manipulate that memory? How can you do the following in mJS? int* mem = malloc(10); mem[0] = 3; mem[1] = 7; mem[2] = 12; int *rest = mem + 3; There are some things you can do in C without functions. How does mJS achieve this?
On how to access memory from mJS: write an accessor function!
// C
void setmem(uint8_t *ptr, int index, int value) {
ptr[index] = value;
}
// mJS
let setmem = ffi('void setmem(void *, int, int)');
let malloc = ffi('void *malloc(int)');
let mem = malloc(10);
setmem(mem, 3, 5);Re: mJS – A new approach to embedded scripting
#8Taking this example: let malloc = ffi('void *malloc(int)'); let mem = malloc(10); How do you manipulate that memory? How can you do the following in mJS? int* mem = malloc(10); mem[0] = 3; mem[1] = 7; mem[2] = 12; int *rest = mem + 3; There are some things you can do in C without functions. How does mJS achieve this?
int *buffer = malloc(10);
SSL_read(ssl, buffer, 10);
into let buffer = ffi('void *malloc(int)');
let SSL_read = ffi('int SSL_read(void *ssl, void *buf, int num)');
let buffer = malloc(10);
SSL_read(ssl, buffer, 10);
Your own language generally has ways to allocate memory—but does not necessarily have a way to generate a pointer, or to manually manage the lifetime of that memory.Re: mJS – A new approach to embedded scripting
#9I've never worked with embedded systems, so forgive my ignorance. Why is this any more useful than just writing c code, if all the code that actually interacts with the hardware has to be written in c anyway?
Re: mJS – A new approach to embedded scripting
#10I've never worked with embedded systems, so forgive my ignorance. Why is this any more useful than just writing c code, if all the code that actually interacts with the hardware has to be written in c anyway?