#!/bin/bash # FreeRTOS示例设置脚本 set -e FREERTOS_VERSION="10.4.6" FREERTOS_URL="https://github.com/FreeRTOS/FreeRTOS/archive/refs/tags/V${FREERTOS_VERSION}.tar.gz" INSTALL_DIR="/opt/freertos" FREERTOS_PATH="" echo "🚀 开始设置FreeRTOS环境..." # 检查是否已安装 if [ -d "$INSTALL_DIR" ]; then echo "✅ FreeRTOS已安装在 $INSTALL_DIR" FREERTOS_PATH="$INSTALL_DIR" else # 创建安装目录 sudo mkdir -p "$INSTALL_DIR" sudo chown $USER:$USER "$INSTALL_DIR" # 下载并解压FreeRTOS echo "📥 下载FreeRTOS V${FREERTOS_VERSION}..." cd /tmp wget -q "$FREERTOS_URL" -O freertos.tar.gz tar -xzf freertos.tar.gz # 复制到安装目录 echo "📦 安装FreeRTOS..." cp -r "FreeRTOS-${FREERTOS_VERSION}"/* "$INSTALL_DIR/" # 清理 rm -rf "FreeRTOS-${FREERTOS_VERSION}" freertos.tar.gz FREERTOS_PATH="$INSTALL_DIR" echo "✅ FreeRTOS已安装到 $INSTALL_DIR" fi # 设置环境变量 echo "⚙️ 设置环境变量..." if ! grep -q "FREERTOS_PATH" ~/.bashrc; then echo "export FREERTOS_PATH=\"$FREERTOS_PATH\"" >> ~/.bashrc echo "export C_INCLUDE_PATH=\"$FREERTOS_PATH/FreeRTOS/Source/include:\$FREERTOS_PATH/FreeRTOS-Plus/Source/FreeRTOS-Plus-CLI/include:\$C_INCLUDE_PATH\"" >> ~/.bashrc fi # 验证安装 echo "🔍 验证安装..." if [ -f "$FREERTOS_PATH/FreeRTOS/Source/include/FreeRTOS.h" ]; then echo "✅ FreeRTOS.h found at $FREERTOS_PATH/FreeRTOS/Source/include/FreeRTOS.h" else echo "❌ FreeRTOS.h not found" exit 1 fi # 创建示例代码 echo "📝 创建示例代码..." EXAMPLE_DIR="$INSTALL_DIR/examples" mkdir -p "$EXAMPLE_DIR" # 创建示例Makefile cat > "$EXAMPLE_DIR/Makefile" << 'EOF' # FreeRTOS示例Makefile CC = gcc CFLAGS = -Wall -Wextra -std=c99 -I$(FREERTOS_PATH)/FreeRTOS/Source/include LDFLAGS = -lpthread # FreeRTOS源文件 FREERTOS_SRC = $(FREERTOS_PATH)/FreeRTOS/Source # 源文件 SRCS = main.c SRCS += $(FREERTOS_SRC)/tasks.c SRCS += $(FREERTOS_SRC)/queue.c SRCS += $(FREERTOS_SRC)/list.c SRCS += $(FREERTOS_SRC)/timers.c # 目标 TARGET = freertos_example OBJS = $(SRCS:.c=.o) .PHONY: all clean all: $(TARGET) $(TARGET): $(OBJS) $(CC) $(OBJS) -o $(TARGET) $(LDFLAGS) %.o: %.c $(CC) $(CFLAGS) -c $< -o $@ clean: rm -f $(OBJS) $(TARGET) test: $(TARGET) ./$(TARGET) EOF echo "✅ FreeRTOS环境设置完成" echo "📍 FreeRTOS路径: $FREERTOS_PATH" echo "🔧 请运行 'source ~/.bashrc' 来加载环境变量" echo "📁 示例代码目录: $EXAMPLE_DIR"