======================================== TCP2UART Keil 工程配置说明 ======================================== 由于 Keil 工程文件格式复杂,建议在 Keil uVision 中手动添加以下配置。 ======================================== 一、添加包含路径 (Include Paths) ======================================== 打开 Keil -> Project -> Options for Target -> C/C++ -> Include Paths 添加以下路径(用分号分隔): ../Drivers/CH390 ../Drivers/LwIP/src/include ../Drivers/LwIP/src/include/lwip ../Drivers/LwIP/src/include/netif ../Drivers/LwIP/src/include/arch ../Drivers/LwIP/port ../App 完整的 Include Paths 应该是: ../Core/Inc;../Drivers/STM32F1xx_HAL_Driver/Inc;../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy;../Drivers/CMSIS/Device/ST/STM32F1xx/Include;../Drivers/CMSIS/Include;../Middlewares/Third_Party/FreeRTOS/Source/include;../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2;../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM3;../Drivers/CH390;../Drivers/LwIP/src/include;../Drivers/LwIP/src/include/lwip;../Drivers/LwIP/src/include/netif;../Drivers/LwIP/src/include/arch;../Drivers/LwIP/port;../App ======================================== 二、添加源文件分组 (Source Groups) ======================================== 在 Project 窗口中右键 -> Add Group,创建以下分组并添加文件: 【1】Drivers/CH390 添加文件: - ../Drivers/CH390/CH390.c - ../Drivers/CH390/CH390_Interface.c 【2】Drivers/LwIP/core 添加文件: - ../Drivers/LwIP/src/core/def.c - ../Drivers/LwIP/src/core/dns.c - ../Drivers/LwIP/src/core/inet_chksum.c - ../Drivers/LwIP/src/core/init.c - ../Drivers/LwIP/src/core/ip.c - ../Drivers/LwIP/src/core/mem.c - ../Drivers/LwIP/src/core/memp.c - ../Drivers/LwIP/src/core/netif.c - ../Drivers/LwIP/src/core/pbuf.c - ../Drivers/LwIP/src/core/raw.c - ../Drivers/LwIP/src/core/stats.c - ../Drivers/LwIP/src/core/sys.c - ../Drivers/LwIP/src/core/tcp.c - ../Drivers/LwIP/src/core/tcp_in.c - ../Drivers/LwIP/src/core/tcp_out.c - ../Drivers/LwIP/src/core/timeouts.c - ../Drivers/LwIP/src/core/udp.c IPv4 支持(在 core/ipv4 子目录): - ../Drivers/LwIP/src/core/ipv4/autoip.c - ../Drivers/LwIP/src/core/ipv4/dhcp.c - ../Drivers/LwIP/src/core/ipv4/etharp.c - ../Drivers/LwIP/src/core/ipv4/icmp.c - ../Drivers/LwIP/src/core/ipv4/igmp.c - ../Drivers/LwIP/src/core/ipv4/ip4.c - ../Drivers/LwIP/src/core/ipv4/ip4_addr.c - ../Drivers/LwIP/src/core/ipv4/ip4_frag.c 【3】Drivers/LwIP/api 添加文件: - ../Drivers/LwIP/src/api/api_lib.c - ../Drivers/LwIP/src/api/api_msg.c - ../Drivers/LwIP/src/api/err.c - ../Drivers/LwIP/src/api/netbuf.c - ../Drivers/LwIP/src/api/netdb.c - ../Drivers/LwIP/src/api/netifapi.c - ../Drivers/LwIP/src/api/sockets.c - ../Drivers/LwIP/src/api/tcpip.c 【4】Drivers/LwIP/netif 添加文件: - ../Drivers/LwIP/src/netif/ethernetif.c 【5】Drivers/LwIP/port 添加文件: - ../Drivers/LwIP/port/sys_arch.c 【6】App 添加文件: - ../App/tcp_server.c - ../App/tcp_client.c - ../App/uart_trans.c - ../App/config.c - ../App/flash_param.c ======================================== 三、预处理器宏定义 (Preprocessor Defines) ======================================== 打开 Keil -> Project -> Options for Target -> C/C++ -> Define 保持现有定义,不需要额外添加: USE_HAL_DRIVER,STM32F103xB ======================================== 四、编译优化设置 ======================================== 建议设置: - Optimization: Level 2 (-O2) - 勾选 "One ELF Section per Function" - Warning Level: All Warnings ======================================== 五、目标内存配置 ======================================== 确认 ROM 和 RAM 配置正确: - IROM1: 0x08000000, Size: 0x10000 (64KB) - IRAM1: 0x20000000, Size: 0x5000 (20KB) ======================================== 六、编译验证 ======================================== 配置完成后: 1. 按 F7 编译整个工程 2. 检查是否有编译错误 3. 常见问题: - "file not found" -> 检查包含路径 - "undefined reference" -> 检查是否添加了所有源文件 - 链接错误 -> 检查 ROM/RAM 大小配置 ======================================== 七、烧录配置 ======================================== Debug 选项卡: - 选择正确的调试器(ST-Link/J-Link) - 勾选 "Reset and Run" Utilities 选项卡: - 选择正确的 Flash 算法 - STM32F10x Med-density Flash (64KB) ======================================== 快速添加方法(可选) ======================================== 如果源文件太多手动添加麻烦,可以: 1. 在 Keil 中右键分组 -> Add Existing Files 2. 选择 "All Files (*.*)" 3. 导航到对应目录 4. 按住 Ctrl 多选所有 .c 文件 5. 点击 Add ======================================== 文件结构参考 ======================================== TCP2UART/ ├── App/ │ ├── tcp_server.c/h │ ├── tcp_client.c/h │ ├── uart_trans.c/h │ ├── config.c/h │ └── flash_param.c/h ├── Core/ │ ├── Inc/ │ └── Src/ ├── Drivers/ │ ├── CH390/ │ │ ├── CH390.c/h │ │ └── CH390_Interface.c/h │ ├── LwIP/ │ │ ├── port/ │ │ │ └── sys_arch.c │ │ └── src/ │ │ ├── api/ │ │ ├── core/ │ │ │ └── ipv4/ │ │ ├── include/ │ │ │ ├── arch/ │ │ │ │ ├── cc.h │ │ │ │ ├── lwipopts.h │ │ │ │ └── sys_arch.h │ │ │ ├── lwip/ │ │ │ └── netif/ │ │ └── netif/ │ │ └── ethernetif.c/h │ └── STM32F1xx_HAL_Driver/ ├── MDK-ARM/ │ └── TCP2UART.uvprojx └── Middlewares/ └── Third_Party/FreeRTOS/ ========================================