从Web调试-嵌入式板



很高兴能邀请到这个平台上的专家。我不知道我的问题在哪里,但有熟悉ARM mbed或dev.ti.com的人吗?

让我给你一个线索。在这些网站上,他们提供了一个在线IDE(就像桌面版一样),你可以在上面构建一个"嵌入式软件",并在连接到PC的一些目标板上下载、运行和调试。据我所知,网页上的javascript无法访问本地机器。那么它是如何访问计算机端口和计算机驱动程序等的呢?

WEB专家请给我一个线索,比如如何允许浏览器访问本地计算机资源??

在大多数情况下,您是正确的-在浏览器中运行的Javascript无法访问重新编程和调试开发板所需的许多资源。

然而,有几种方法可以解决这个问题:

1.构建可以使用浏览器已经允许访问的硬件API的开发板

这通常涉及到以意想不到的方式使用API。所有mbed板上的集成调试固件都模拟USB磁盘驱动器。用户可以从mbed站点下载固件文件,然后将其复制到磁盘驱动器上,以便在开发板上安装固件。

还有一些更具创造性(错误)的硬件API使用。例如,这个Chibitronics板依赖于浏览器通过音频输出发送新固件。我也听说过——但找不到合适的链接——一个重新利用U2F协议作为固件更新机制的例子。

由于这种方法重新调整了现有API的用途,因此它通常得到广泛支持,但需要在设备端进行额外的工作,才能将方形销钉安装到圆孔中。

2.安装访问硬件的本地应用程序/扩展,并允许网站通过扩展访问硬件

这是TI Cloud Tools、Arduino Create和Codebender使用的方法。一旦用户安装了配套应用程序,该应用程序就允许网站访问普通IDE能够访问的任何内容。

从某种意义上说,这种方法非常类似于构建具有以云为中心的UI的本机应用程序。

3.扩展浏览器以添加可用于编程开发板的新硬件API

WebBluetooth和WebUSB草案标准添加了新的API,允许Javascript直接访问BLE和USB设备,然后可以使用这些设备与连接的USB调试硬件或BLE引导程序直接通信。

micro:bit目前正在测试一个测试版程序,该程序使用WebUSB直接编程并与micro:bit板通信。

这些API仅在Chrome中实现,因此它们不是通用的解决方案。此外,由于安全限制和驱动程序问题,并非所有现有硬件都与WebUSB兼容。

据我所知,网页上的javascript无法访问本地机器。那么它是如何访问计算机端口和计算机驱动程序等的呢?

您可以通过服务器访问本地计算机。例如,通过您定义的API向其请求某个文件或运行某些命令/代码。

如何允许浏览器访问本地计算机资源?

浏览器是您机器上的一个程序。构建浏览器的编程语言提供接口,以便在较低级别上与系统通信。

值得一提的是,浏览器及其渲染的web应用程序不相同,与系统的通信方式也不相同

最新更新