- 전체
- C/C++ 일반
- C/C++ 수학
- C/C++ 그래픽
- C/C++ 자료구조
- C/C++ 인공지능
- C/C++ 인터넷
- wxWidget
- GTK+
- UNIX or LINUX programming
- 리눅스 마스터 - 국가공인자격
- VC++/ MFC
- C#/CLI/.NET
- QT/기타UI
- Boost lib
- 오픈소스 C 분석자료
- MSA (마이크로서비스), Docker, kubernetes
- WSL(windows subsystem linux)
오픈소스 C 분석자료 [분석할 소스] MicroPython.js MicroPython transmuted into Javascript by Emscripten.
2020.10.18 01:01
[분석할 소스] MicroPython.js MicroPython transmuted into Javascript by Emscripten.
MicroPython.js
MicroPython transmuted into Javascript by Emscripten.
소스 다운 : microPython port WebAssembly.zip
Dependencies
Building micropython.js bears the same requirements as the standard MicroPython ports with the addition of Emscripten (and uglify-js for the minified file).
A standard installation of Emscripten should provide functional code, however if memory errors are encountered it may be worthwhile to modify the tool. emscripten-fastcomp/lib/Target/JSBackend.cpp may require the minor fix found in JSBackend.patch. This patch attempts to address situations where C code running through Emscripten is denied access to Javascript variables leading to false-positives in the MicroPython garbage collector as variables with pointers exclusively in Javascript will be erased prematurely. Refer to Emscripten documentation for instructions on building Emscripten from source.
Build instructions
In order to build micropython.js, run:
$ make
To generate the minified file micropython.min.js, run:
$ make min
Running with Node.js
Access the repl with:
$ node build/micropython.js
Stack size may be modified using:
$ node build/micropython.js -X stack=64K
Where stack size may be represented in Bytes, KiB or MiB.
MicroPython scripts may be executed using:
$ node build/micropython.js hello.py
Alternatively micropython.js may by accessed by other javascript programs in node using the require command and the general API outlined below. For example:
var mp_js = require('./build/micropython.js');
mp_js_init(64 * 1024);
mp_js_do_str("print('hello world')\n");
Running with HTML
The prerequisite for browser operation of micropython.js is an element with the id mp_js_stdout which receives print events. The following code demonstrates basic functionality:
<!doctype html>
<html>
<head>
<script src="build/micropython.js"></script>
</head>
<body>
<div id='mp_js_stdout'></div>
<script>
mp_js_stdout.addEventListener('print', function(e) {
document.write(e.data);
}, false);
mp_js_init(64 * 1024);
mp_js_do_str('print(\'hello world\')');
</script>
</body>
</html>
MicroPython code execution will suspend the browser so be sure to atomize usage within this environment. Unfortunately interrupts have not been implemented for the browser.
Testing
Run the test suite using:
$ make test
API
The following functions have been exposed to javascript.
mp_js_init(stack_size)
Initialize MicroPython with the given stack size in bytes. This must be called before attempting to interact with MicroPython.
mp_js_do_str(code)
Execute the input code. code must be a string.
mp_js_init_repl()
Initialize MicroPython repl. Must be called before entering characters into the repl.
mp_js_process_char(char)
Input character into MicroPython repl. char must be of type number. This will execute MicroPython code when necessary.
[출처] https://github.com/micropython/micropython/tree/master/ports/javascript
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
댓글 0
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|
| 12 |
[MSA] Istio Traffic management
| 졸리운_곰 | 2021.03.21 | 475 |
| 11 |
[MSA] Istio #4 - Istio 설치와 BookInfo 예제
| 졸리운_곰 | 2021.03.21 | 535 |
| 10 |
[MSA] Istio #3- Istio에 대한 소개
| 졸리운_곰 | 2021.03.21 | 586 |
| 9 |
[MSA] Istio #2 - Envoy proxy
| 졸리운_곰 | 2021.03.21 | 445 |
| 8 |
[MSA] Istio #1 - 마이크로 서비스와 서비스 매쉬
| 졸리운_곰 | 2021.03.21 | 441 |
| 7 |
[MSA][Python] Build and Deploy a REST API Microservice with Python Flask and Docker
| 졸리운_곰 | 2021.03.20 | 402 |
| 6 |
[MSA][KONG gateway] Kong, manage your APIs !
| 졸리운_곰 | 2021.03.20 | 1120 |
| 5 |
[MSA] Monitoring Your Synchronous Python Web Applications Using Prometheus
| 졸리운_곰 | 2021.03.20 | 466 |
| 4 |
[MSA, Docker, Kubernetes] Running Spark on Kubernetes
| 졸리운_곰 | 2021.03.04 | 349 |
| 3 |
[MSA, Docker, Kubernetes] Docker 개념, 관리, 이미지생성까지 한번에!!
| 졸리운_곰 | 2021.03.04 | 699 |
| 2 | 도커 시작하기 7 : Dockerfile을 이용한 이미지 생성 | 졸리운_곰 | 2021.03.04 | 346 |
| 1 |
[MAS, docker, kubernetes] [Container 시리즈] 03. Docker File, Docker Image - 도커파일 및 이미지에 대하여
| 졸리운_곰 | 2021.03.04 | 272 |

