广告

Cortex-M编程新语言RUST有哪些优点?

2021-04-13 Nordic Semiconductor 阅读:
开发人员之前仅能够使用C或C++语言对这类Cortex-M器件进行编程。现在又有了第三种选择,即Rust编程语言,为开发人员带来许多有用的新功能。

近年来,消费、医疗、农业、工业以及其他领域对物联网(IoT)连接的需求不断增长,产品开发咨询公司42 Technology表示,制造商希望为最终用户带来与众不同的产品,因此想利用物联网连接来添加功能,或为基于服务的产品生成新的数据流。ISTednc

IoT连接中的硬件包括电池供电的便携式小型设备,其中很多都采用Arm Cortex-M系列嵌入式处理器,例如Nordic Semiconductor的nRF9160 SiP核心采用了M33处理器。ISTednc

到目前为止,开发人员仅能够使用C或C++语言对这类Cortex-M器件进行编程。现在42 Technology提出了第三种选择,即Rust编程语言,为开发人员带来许多有用的新功能。ISTednc

充分利用资源

Rust编程语言必须在高性能和能有效使用资源的平台和环境下使用,它还引入了一些功能来帮助开发人员提高效率并生成更安全的代码。例如,Rust提供了称为Cargo的软件包管理器,就像Python的pip或Node的npm一样,可以让开发人员从中央存储库中提取开源软件包,在其项目中轻松使用。ISTednc

Rust的另一项独特功能是“借阅检查器”,它是编译器的一部分。在编译期间,该工具能够检查代码,以确保两段代码不会同时访问同一数据(这是未定义的行为)。换句话说,如果一个函数被调用了,开发人员需要指定这次调用是临时(专有的或作为共享借入)“借入”该数值,或取得该数值的所有权。ISTednc

这款语言具有安全性、高速度和高生产力。根据42 Technology报道,微软、Dropbox、Facebook、谷歌、Cloudflare等公司都已成功将Rust语言应用于新项目,包括用于云基础架构,谷歌还将其用于下一代移动操作系统Fuchsia中。ISTednc

在Rust嵌入式工作组的大力推动下,Rust已经发展到“1.0”版本,可支持许多嵌入式平台,越来越多的企业也利用同样的技术优势来支持小尺寸低功耗系统,例如Nordic的nRF52和nRF53系列短距无线SoC,以及nRF9160低功耗蜂窝物联网SiP。ISTednc

Rust的套接字

nRF9160开发人员可以直接或通过Zephyr使用Nordic Socket API,这个API严格遵循标准Berkeley套接字API(有如在Linux和Windows中使用)。但它也有一些缺点,例如套接字和套接字家族都使用“int”类型,如果开发人员将它们混淆,编译器将不能工作。另外,开发人员必须记住在套接字中调用“nrf_close”,因为如果变量超出范围,套接字将出现泄漏,从而在运行时难以调试。ISTednc

为了使Rust开发人员能够很好地利用这一功能强大且经过良好测试的程序库,同时帮助他们避免意想不到的错误,42 Technology针对Nordic套接字库开发了Rust包装器。Rust包装器使用高级别并且分类严谨的对象,例如“TcpSocket”和“AtSocket”,它们在超出范围时会自动关闭,并允许开发人员发送格式化数据(图1)。ISTednc

ISTednc

图1:针对Nordic套接字库建立的Rust包装器使用分类严谨的对象,例如“TcpSocket”和“AtSocket”,当它们超出范围时会自动关闭,并允许开发人员发送格式化数据。ISTednc

这种方法非常有效,42 Technology表示可以使用Cloudflare的新Rust语言QUIC库进行开发,直接在nRF9160上运行世界上首个QUIC(即将发布的HTTP/3标准的一部分)示例。ISTednc

Rust + Zephyr

Rust的另一个优点是可以与Zephyr RTOS混合使用。Rust库可以编译为标准的C静态库,从而与所有开发人员现有的C和C++项目关联。某些项目甚至只需一次替换一个函数,就可以从C语言转换为Rust语言。例如,使用SVG库,其中的库具有相同的API但在内部运行得更快、更安全。ISTednc

Rust编程语言旨在提高性能、安全性和开发人员生产力,适合不同规模的项目——从超大规模云基础设施到最小的Cortex-M微控制器。此外,由于它可以编译为标准目标码文件,因此开发人员可以充分利用其所有优点,同时仍然将其集成到现有的C和C++项目中。ISTednc

本文为《电子技术设计》2021年4月刊杂志文章,版权所有,禁止转载。免费杂志订阅申请点击这里ISTednc

本文为EDN电子技术设计 原创文章,禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
  • 中国工程院高文院士:“超算中心”与“云脑”都不能少 “9个月42亿人民币做出这台设备,这在任何地方想都不要想。”高文院士指出。 而且,鹏程云脑Ⅱ完全采用华为架构,用了华为的鲲鹏920和昇腾910机器做出来的,其中910是用了4096颗,鲲鹏920是用了2048颗,实际上已经到了1024p浮点算力,在很多性能方面超越同期国际上比较好的GPU运算速度。
  • 拆解小米 11 Ultra :对比三星 Galaxy S21 Ultra、华为 在3月29日的小米发布会上,小米 11 Ultra 正式亮相,售价 5999 元起,搭载高通骁龙888处理器,首发 50 MP 的三星 GN2 超大底主摄。这款被小米官方称为“安卓之光”的高端旗舰的内部构造和整体品质如何?近日视频网站上出现了关于小米 11 Ultra 的拆解视频。
  • 为智能可听戴式设备(hearable devices)选择音频放大器 音频系统通常使用A类(class A)、B类(class B)和AB类(class AB)放大器。但是,对于微型的听戴式装置,B类和AB类放大器由于功耗很大,因此并不是务实的选择。只要设计工程师能够确保在放大器的线性范围内操作,为前置放大器(pre-amp)选择一款有助于降低失真的A类放大器似乎才是理想的选择。
  • ARM官宣Armv9架构,和Armv8相比有何不同? 多年来,Arm对ISA进行了改进,对体系结构进行了各种更新和扩展。该公司表示,本次 v9 架构旨在为移动端设备、计算机和服务器提供更强的算法支持。在未来的两次芯片迭代中,Armv9 架构将会带来 30% 的性能提升。
  • 拆解海康威视AI摄像机,发现英特尔/华为海思三个独有关 海康威视开发了首款具有AI功能的摄像机,这款摄像机结合了东西方设计的精华―― 中国制造的微辐射热计和摄像机处理器与国外的AI/模拟/其他处理器件。本文拆解的是海康威视的一款热成像网络摄像机。
  • 东芝为A3多功能打印机推出缩影镜头型CCD线性图像传感 东芝电子元件及存储装置株式会社(“东芝”)今日宣布,推出缩影镜头型CCD线性图像传感器“TCD2726DG”,能让A3多功能打印机实现高速扫描。工程样品[1]已于今日开始批量出货。
广告
热门推荐
广告
广告
EE直播间
在线研讨会
广告
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了