背景
在嵌入式系统的开发中,镜像文件的生成是一个必不可少的环节。而在开发过程中,频繁的进行镜像文件的转换及使用映像文件刷写,无疑是费时费力的。因此,有一些自动化工具类库的出现,如我们今天要介绍的 npm 包 mbed_auto_writer。
mbed_auto_writer 是一个自动将编译的文件写入 USB 设备的 node.js 库。它会自动检测连接的设备并执行上传操作。使用 mbed_auto_writer,可以极大的简化工作流程,减少了不少重复劳动。
以下将介绍该包的使用方法及示例代码。
安装
使用 NPM 安装 mbed_auto_writer:
npm install mbed_auto_writer
使用
在项目中引入 mbed_auto_writer:
const Writer = require('mbed_auto_writer');
mbed_auto_writer 中主要包含了以下 API,我们分别介绍:
自动写入
通过如下方法自动写入:
Writer.autoWrite(file, dev = '');
参数说明:
- file:表示待写入的文件路径。
- dev:表示连接的 USB 设备和串口,可选值,如 /dev/ttyUSB0。
示例:
-- -------------------- ---- ------- ----- ------ - ---------------------------- ----- --------- - -------------------- --------------------------- -------- -- - -------------------- -- ------------ -- - ----------------- --
上述代码会将文件 file_path 写入到第一个查到的 USB 设备里面去。
列出所有连接的设备
通过如下方法列出所有连接的设备:
Writer.listDevices();
示例:
const Writer = require('mbed_auto_writer'); const devices = Writer.listDevices(); console.log(devices);
上述代码会列出所有连接到电脑上的 USB 设备的信息。
手动写入
通过如下方法手动写入:
Writer.write(file, dev, onProgress);
参数说明:
- file:表示待写入的文件路径。
- dev:表示连接的 USB 设备和串口,可选值,如 /dev/ttyUSB0。
- onProgress:表示写入过程中的回调函数。
示例:
-- -------------------- ---- ------- ----- ------ - ---------------------------- ----- --------- - -------------------- ----- --- - -------------- ----------------------- ---- ----- --------- -- - -- ----- - ----------------- - ---- - --------------------------------- ----------- - --
性能测试
通过如下方法进行性能测试:
Writer.testPerformance(file, dev);
参数说明:
- file:表示待写入的文件路径。
- dev:表示连接的 USB 设备和串口,可选值,如 /dev/ttyUSB0。
示例:
-- -------------------- ---- ------- ----- ------ - ---------------------------- ----- --------- - -------------------- ----- --- - -------------- --------------------------------- ---- -------------- -- - -------------------- -- ------------ -- - ----------------- --
上述代码会对写入 file_path 文件的性能进行测试。
结语
对于需要进行嵌入式系统开发的开发者们,mbed_auto_writer 是一个非常实用且值得一试的工具包。本文简单介绍了 mbed_auto_writer 的基本使用方法,更多参数及使用方式可以查看官方文档。
GitHub 地址:https://github.com/ARMmbed/mbed-auto-writer。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055fe381e8991b448dd7fe