littlebot
Published on 2025-04-02 / 0 Visits
0

【源码】基于LLVM的间歇性系统高效安全IO操作方案EaseIO

项目简介

EaseIO是一种新颖的编程模型,为间歇性计算引入了IO操作的重新执行语义。在间歇性系统任务里,重新执行IO操作可能引发内存不一致和高能耗问题,而EaseIO提供了新的接口来调用IO函数,可克服内存不一致问题并节省能源。程序员能借助EaseIO接口调用带有重新执行语义注释的IO函数。本项目代码与论文“Efficient and Safe I/O Operations for Intermittent Systems”相关。

项目的主要特性和功能

  • 语义分析与代码注入:EaseIO编译器前端会进行语义分析,并在原始文件中注入适当代码。
  • 分离原始与转换文件:代码转换时,原始文件和转换后的文件会分别存于不同文件夹,方便使用。
  • 提供运行时支持:转换后的代码在烧录到微控制器前,会与EaseIO运行时进行链接。
  • 示例应用展示:在EaseIO-compiler/test/Transformed/目录中有示例基准应用程序,展示了EaseIO的“Timely”重新执行语义。

安装使用步骤

编译器前端使用步骤

  1. 运行以下命令安装Clang: shell script sudo apt install clang lldb lld
  2. 使用llvm-build.sh下载并编译llvm-9.0.1: shell script sudo llvm-build.sh
  3. 将编译器前端代码放入/llvm/tools/clang/tools/easeIO文件夹。
  4. 在位于其上级文件夹(即/llvm/tools/clang/tools)的cmakelist文件中添加该子目录的路径。
  5. 使用以下命令运行make,后续的make命令可直接调用make easeIO-c: shell script cd /easeIO/llvm-9.0.1-build/build sudo make
  6. 运行easeIO-c.sh脚本对所有代码进行转换。

运行时使用步骤

我们为其中一个基准测试(FIR滤波器)提供了可直接运行的项目,以下是运行代码的步骤。请注意,我们使用Code Composer Studio运行项目,并在Ubuntu20.04 Linux环境下测试了基准测试。 1. 选择CCSProject文件夹作为工作区并启动。 3. 点击调试按钮,项目即可运行。

环境要求

  • 硬件要求:MSP430FR5969开发板
  • 软件要求:LLVM 9.0.1

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】