嵌入式linux node -v10移植,移植nodejs到嵌入式linux,让终端支持可使用js做些功能

Node.js是一个基于Chrome V8引擎的JavaScript运行环境.Node.js使用了一个事件驱动,非阻塞式I / O的模型,使其轻量又高效。

嵌入式开发C / C ++和安卓原生使用的java的属于一个周期长和研发成本较高的工作,但是随着技术的发展,某些前端语言技术在大行其道,所以使用JS进行一些简单的对CPU负载要求低的工作可以使用,这样前端的人员就会扩展到服务器后端工作或者嵌入式工作,这样,保证跨平台开发的高效和前端和服务器端,嵌入式式终端开发的高效。

移植很简单,基本上是零错误。

我的配置如下:

先配置交叉工具链:

export CC = arm-linux-gnueabihf-gcc CXX = arm-linux-gnueabihf-g ++ LD = arm-linux-gnueabihf-ld

RANLIB = arm-linux-gnueabihf-ranlib AR = arm-linux-gnueabihf-ar CFLAGS = -static CXXFLAGS = -static

LDFLAGS = -static

配置配置

./configure --prefix = / usr / local / H8 / Ubuntu / node-6.10.0 --dest-cpu = arm --dest-os = linux

--without-snapshot --with-arm-float-abi =硬

最后做,

make install

放到开发板上试下:

root @ b503_lcd:/ bin#。/ node -v

v0.12.6

root @ b503_lcd:/ bin#node

> a = 1

1

> b = 2

2

> var http = require('http');

undefined

> var querystring = require('querystring');

写一个测试的JS文件,测试下:

var http = require('http');

var querystring = require('querystring');

var data = {

a: 123,

time: new Date().getTime()};//这是需要提交的数据

var content = querystring.stringify(data);

var options = {

hostname: '192.168.51.28',

port: 3000,

path: '/pay/pay_callback?' + content,

method: 'GET'

};

var req = http.request(options, function (res) {

console.log('STATUS: ' + res.statusCode);

console.log('HEADERS: ' + JSON.stringify(res.headers));

res.setEncoding('utf8');

res.on('data', function (chunk) {

console.log('BODY: ' + chunk);

});

});

req.on('error', function (e) {

console.log('problem with request: ' + e.message);

});

req.end();

测试结果如下:

root @ b503_lcd:/ bin#node test.js

请求问题:connect ECONNREFUSED 192.168.51.28:3000

由于机器没联网,也没开后台web服务器,所有提示了联网错误。

解析json更是方便:

root@b503_lcd:/usr/bin# node

>

> JSON.stringify("a=1")

'"a=1"'

> var person = new Object();

undefined

> person.name = 'chy';

'chy'

> person.age = 24;

24

> person.city= ['FuZhou', 'XiaMen'];

[ 'FuZhou', 'XiaMen' ]

> JSON.stringify(person);

'{"name":"chy","age":24,"city":["FuZhou","XiaMen"]}'

测试结果:虽然运行启动慢了点儿,但是想到可以用它来使用JS写些功能,做些东西,还是很不错的。

比如访问HTTP,处理文件,处理JSON等。

不过要想完全用它来做应用,估计还比较冒险,因为机器主频和性能都受限。不知道稳定性,速度和体验效果会是什么样。

不过这也是嵌入式开发的一种尝试,如果后续有机会,可以尝试下。

其实呢,也不用自己移植的,官网直接提供了ARM平台上可以用的编译好的版本。版本新,且稳定亲测,可以运行。

比如这个最新版本:

root @ b503_lcd:/ bin#node -v

v10.12.0

如果需要调用的NodeJSç语言写的驱动?可通过FFI在node.js的中调用动态链接库。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值