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

【源码】基于C和Python的微控制器和POSIX系统的延迟容忍网络实现

项目简介

µPCN(Microcontroller-based Protocol Controlled Network)是免费且精简的延迟容忍网络(DTN)实现,专为微控制器和POSIX兼容操作系统设计。支持STM32F4嵌入式平台与所有POSIX兼容操作系统,提供轻量级DTN解决方案,适用于资源受限环境。

项目的主要特性和功能

  1. 多平台支持:支持STM32F4嵌入式平台和所有POSIX兼容的操作系统。
  2. 通信协议支持:实现TCPCL、MTCP和SPP等多种通信协议,保障数据在不同网络条件下可靠传输。
  3. 测试框架:提供Python脚本,可对uPCN的通信层、时间处理、哈希算法、内存管理等组件和功能进行测试。
  4. 模块化设计:核心代码位于./components/upcn/,便于扩展和维护。
  5. 调试支持:提供GDB调试命令和OpenOCD配置文件,方便不同平台的开发者调试。

安装使用步骤

1. 安装依赖

STM32F4平台

  • 安装gcc-arm-none-eabi工具链(含newlib)。
  • 安装Open On-Chip Debugger(OpenOCD)。
  • 安装FreeRTOS(当前测试版本为9)。
  • 安装Python 3(版本 >= 3.6)用于测试和调试。

POSIX平台

  • 安装gcc工具链和binutils
  • 安装Clang和LLVM(可选,用于使用Clang编译)。
  • 安装Python 3(版本 >= 3.6)用于测试和调试。

2. 配置环境

STM32F4平台

复制config.mk.exampleconfig.mk,按安装路径设置变量: - TOOLCHAIN_STM32:设为arm-none-eabi工具链的前缀。 - FREERTOS_PATH:设为FreeRTOS源码的路径。

POSIX平台

若编译工具不在/usr/bin,复制config.mk.exampleconfig.mk,设置GCC_TOOLCHAIN_PREFIX_POSIX变量为本地gcc工具链的前缀。

3. 编译和运行

STM32F4平台

  • 启动OpenOCD,自动加载配置文件openocd.cfg
  • 输入make flash-stm32-openocd编译项目并将upcn.bin烧录到STM32F4开发板。
  • 单元测试通过make flash-unittest-stm32-openocd烧录。
  • 使用make gdb-stm32make gdb-unittest-stm32进行GDB调试。

POSIX平台

输入make run-posix编译并运行µPCN。

4. 测试

使用提供的Python脚本测试,确保uPCN各组件和功能正常工作,测试细节见./doc/testing.md。通过上述步骤,可在STM32F4或POSIX平台成功构建、部署和测试µPCN。

下载地址

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