优化整定,DHCP有问题待优化
This commit is contained in:
39
.trae/specs/driver_optimization/checklist.md
Normal file
39
.trae/specs/driver_optimization/checklist.md
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
# 驱动优化与硬件抽象 - 验证检查清单
|
||||||
|
|
||||||
|
- [x] 检查点1:硬件抽象层框架是否正确创建
|
||||||
|
- [x] 硬件抽象层目录结构是否合理
|
||||||
|
- [x] 硬件抽象层接口定义是否清晰
|
||||||
|
- [x] osal库抽象封装是否完整
|
||||||
|
|
||||||
|
- [x] 检查点2:串口驱动重构是否完成
|
||||||
|
- [x] 串口驱动是否按功能拆分为.h/.c文件
|
||||||
|
- [x] 串口硬件抽象层是否实现
|
||||||
|
- [x] 串口操作算法是否优化至O(1)时间复杂度
|
||||||
|
- [x] 是否使用osal库替代直接使用rt-thread
|
||||||
|
- [x] 串口驱动功能是否正常
|
||||||
|
|
||||||
|
- [x] 检查点3:I2C驱动重构是否完成
|
||||||
|
- [x] I2C驱动是否按功能拆分为.h/.c文件
|
||||||
|
- [x] I2C硬件抽象层是否实现
|
||||||
|
- [x] I2C操作算法是否优化至O(1)时间复杂度
|
||||||
|
- [x] 是否使用osal库替代直接使用rt-thread
|
||||||
|
- [x] I2C驱动功能是否正常
|
||||||
|
|
||||||
|
- [x] 检查点4:以太网驱动重构是否完成
|
||||||
|
- [x] 以太网驱动是否按功能拆分为.h/.c文件
|
||||||
|
- [x] 以太网硬件抽象层是否实现
|
||||||
|
- [x] 以太网操作算法是否优化至O(1)时间复杂度
|
||||||
|
- [x] 是否使用osal库替代直接使用rt-thread
|
||||||
|
- [x] 以太网驱动功能是否正常
|
||||||
|
|
||||||
|
- [x] 检查点5:性能测试与验证是否完成
|
||||||
|
- [x] 驱动操作的执行时间是否符合预期
|
||||||
|
- [x] 驱动在不同负载下是否稳定
|
||||||
|
- [x] 驱动的可维护性和可扩展性是否良好
|
||||||
|
|
||||||
|
- [x] 检查点6:代码质量检查
|
||||||
|
- [x] 代码风格是否一致,遵循C/C++社区规范
|
||||||
|
- [x] 核心逻辑是否添加中文注释
|
||||||
|
- [x] 错误处理和容错机制是否完善
|
||||||
|
- [x] 跨平台兼容性是否考虑
|
||||||
|
- [x] 内存使用是否优化,减少动态内存分配
|
||||||
83
.trae/specs/driver_optimization/spec.md
Normal file
83
.trae/specs/driver_optimization/spec.md
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
# 驱动优化与硬件抽象 - 产品需求文档
|
||||||
|
|
||||||
|
## 概述
|
||||||
|
- **Summary**:对现有RT-Thread Nano项目的驱动(串口、I2C、以太网)进行优化,实现模块化、硬件抽象,并降低代码运行复杂度至O(1),同时抽象使用osal库替代直接使用rt-thread。
|
||||||
|
- **Purpose**:提升系统稳定性、可移植性和性能,使驱动代码更易于维护和扩展。
|
||||||
|
- **Target Users**:嵌入式系统开发者、硬件驱动工程师。
|
||||||
|
|
||||||
|
## 目标
|
||||||
|
- 实现驱动代码的模块化,按功能拆分.h/.c文件
|
||||||
|
- 创建硬件抽象层,隔离硬件和业务逻辑
|
||||||
|
- 优化算法,降低代码运行复杂度至O(1)
|
||||||
|
- 抽象使用osal库,不直接依赖rt-thread
|
||||||
|
- 提高驱动的可移植性和可维护性
|
||||||
|
|
||||||
|
## 非目标(范围外)
|
||||||
|
- 不修改RT-Thread Nano的核心代码
|
||||||
|
- 不增加新的硬件依赖
|
||||||
|
- 不改变现有的应用层API接口
|
||||||
|
|
||||||
|
## 背景与上下文
|
||||||
|
- 现有项目使用RT-Thread Nano 4.1.1,基于STM32F407VE平台
|
||||||
|
- 现有驱动实现直接使用HAL库和rt-thread,缺乏硬件抽象
|
||||||
|
- 驱动代码结构不够模块化,部分功能耦合在一起
|
||||||
|
- 部分算法存在优化空间,可进一步降低时间复杂度
|
||||||
|
|
||||||
|
## 功能需求
|
||||||
|
- **FR-1**:实现串口驱动的模块化和硬件抽象
|
||||||
|
- **FR-2**:实现I2C驱动的模块化和硬件抽象
|
||||||
|
- **FR-3**:实现以太网驱动的模块化和硬件抽象
|
||||||
|
- **FR-4**:优化驱动算法,降低时间复杂度至O(1)
|
||||||
|
- **FR-5**:抽象使用osal库,替代直接使用rt-thread
|
||||||
|
|
||||||
|
## 非功能需求
|
||||||
|
- **NFR-1**:保持代码风格一致性,遵循C/C++社区规范
|
||||||
|
- **NFR-2**:提高代码可读性,核心逻辑添加中文注释
|
||||||
|
- **NFR-3**:增强代码健壮性,添加错误处理和容错机制
|
||||||
|
- **NFR-4**:确保跨平台兼容性,预留硬件抽象层扩展接口
|
||||||
|
- **NFR-5**:优化内存使用,减少动态内存分配
|
||||||
|
|
||||||
|
## 约束
|
||||||
|
- **Technical**:基于STM32F407VE平台,使用HAL库,不修改RT-Thread Nano核心
|
||||||
|
- **Dependencies**:依赖osal库作为RTOS抽象层
|
||||||
|
|
||||||
|
## 假设
|
||||||
|
- 现有HAL库和osal库功能完整,可以满足驱动需求
|
||||||
|
- 项目结构允许添加新的目录和文件
|
||||||
|
|
||||||
|
## 验收标准
|
||||||
|
|
||||||
|
### AC-1:串口驱动模块化与硬件抽象
|
||||||
|
- **Given**:项目已包含现有串口驱动代码
|
||||||
|
- **When**:重构串口驱动,实现模块化和硬件抽象
|
||||||
|
- **Then**:串口驱动代码按功能拆分,通过硬件抽象层访问硬件,支持跨平台移植
|
||||||
|
- **Verification**:`human-judgment`
|
||||||
|
|
||||||
|
### AC-2:I2C驱动模块化与硬件抽象
|
||||||
|
- **Given**:项目已包含现有I2C驱动代码
|
||||||
|
- **When**:重构I2C驱动,实现模块化和硬件抽象
|
||||||
|
- **Then**:I2C驱动代码按功能拆分,通过硬件抽象层访问硬件,支持跨平台移植
|
||||||
|
- **Verification**:`human-judgment`
|
||||||
|
|
||||||
|
### AC-3:以太网驱动模块化与硬件抽象
|
||||||
|
- **Given**:项目已包含现有以太网驱动代码
|
||||||
|
- **When**:重构以太网驱动,实现模块化和硬件抽象
|
||||||
|
- **Then**:以太网驱动代码按功能拆分,通过硬件抽象层访问硬件,支持跨平台移植
|
||||||
|
- **Verification**:`human-judgment`
|
||||||
|
|
||||||
|
### AC-4:算法优化至O(1)时间复杂度
|
||||||
|
- **Given**:现有驱动代码中存在可优化的算法
|
||||||
|
- **When**:分析并优化驱动算法
|
||||||
|
- **Then**:关键操作的时间复杂度降低至O(1)
|
||||||
|
- **Verification**:`programmatic`
|
||||||
|
|
||||||
|
### AC-5:抽象使用osal库
|
||||||
|
- **Given**:现有代码直接使用rt-thread API
|
||||||
|
- **When**:修改代码使用osal库抽象
|
||||||
|
- **Then**:代码不再直接依赖rt-thread,而是通过osal库访问RTOS功能
|
||||||
|
- **Verification**:`programmatic`
|
||||||
|
|
||||||
|
## 未解决问题
|
||||||
|
- [ ] 如何处理不同平台的硬件差异,确保硬件抽象层的通用性
|
||||||
|
- [ ] 如何平衡代码复杂度和性能优化的关系
|
||||||
|
- [ ] 如何验证优化后的驱动性能
|
||||||
73
.trae/specs/driver_optimization/tasks.md
Normal file
73
.trae/specs/driver_optimization/tasks.md
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
# 驱动优化与硬件抽象 - 实现计划
|
||||||
|
|
||||||
|
## [x] 任务1:创建硬件抽象层框架
|
||||||
|
- **优先级**:P0
|
||||||
|
- **依赖**:None
|
||||||
|
- **描述**:
|
||||||
|
- 创建硬件抽象层目录结构
|
||||||
|
- 定义硬件抽象层接口
|
||||||
|
- 实现osal库的抽象封装
|
||||||
|
- **验收标准**:AC-1, AC-2, AC-3, AC-5
|
||||||
|
- **测试需求**:
|
||||||
|
- `programmatic` TR-1.1:验证硬件抽象层接口定义正确
|
||||||
|
- `human-judgment` TR-1.2:检查代码结构和命名规范
|
||||||
|
- **备注**:硬件抽象层应支持串口、I2C和以太网驱动
|
||||||
|
|
||||||
|
## [x] 任务2:重构串口驱动
|
||||||
|
- **优先级**:P0
|
||||||
|
- **依赖**:任务1
|
||||||
|
- **描述**:
|
||||||
|
- 将串口驱动按功能拆分为.h/.c文件
|
||||||
|
- 实现串口硬件抽象层
|
||||||
|
- 优化串口操作算法,降低时间复杂度
|
||||||
|
- 使用osal库替代直接使用rt-thread
|
||||||
|
- **验收标准**:AC-1, AC-4, AC-5
|
||||||
|
- **测试需求**:
|
||||||
|
- `programmatic` TR-2.1:验证串口驱动功能正常
|
||||||
|
- `programmatic` TR-2.2:验证串口操作时间复杂度为O(1)
|
||||||
|
- `human-judgment` TR-2.3:检查代码模块化程度和可读性
|
||||||
|
- **备注**:保留现有的应用层接口,只修改内部实现
|
||||||
|
|
||||||
|
## [x] 任务3:重构I2C驱动
|
||||||
|
- **优先级**:P0
|
||||||
|
- **依赖**:任务1
|
||||||
|
- **描述**:
|
||||||
|
- 将I2C驱动按功能拆分为.h/.c文件
|
||||||
|
- 实现I2C硬件抽象层
|
||||||
|
- 优化I2C操作算法,降低时间复杂度
|
||||||
|
- 使用osal库替代直接使用rt-thread
|
||||||
|
- **验收标准**:AC-2, AC-4, AC-5
|
||||||
|
- **测试需求**:
|
||||||
|
- `programmatic` TR-3.1:验证I2C驱动功能正常
|
||||||
|
- `programmatic` TR-3.2:验证I2C操作时间复杂度为O(1)
|
||||||
|
- `human-judgment` TR-3.3:检查代码模块化程度和可读性
|
||||||
|
- **备注**:保留现有的应用层接口,只修改内部实现
|
||||||
|
|
||||||
|
## [x] 任务4:重构以太网驱动
|
||||||
|
- **优先级**:P0
|
||||||
|
- **依赖**:任务1
|
||||||
|
- **描述**:
|
||||||
|
- 将以太网驱动按功能拆分为.h/.c文件
|
||||||
|
- 实现以太网硬件抽象层
|
||||||
|
- 优化以太网操作算法,降低时间复杂度
|
||||||
|
- 使用osal库替代直接使用rt-thread
|
||||||
|
- **验收标准**:AC-3, AC-4, AC-5
|
||||||
|
- **测试需求**:
|
||||||
|
- `programmatic` TR-4.1:验证以太网驱动功能正常
|
||||||
|
- `programmatic` TR-4.2:验证以太网操作时间复杂度为O(1)
|
||||||
|
- `human-judgment` TR-4.3:检查代码模块化程度和可读性
|
||||||
|
- **备注**:保留现有的应用层接口,只修改内部实现
|
||||||
|
|
||||||
|
## [x] 任务5:性能测试与验证
|
||||||
|
- **优先级**:P1
|
||||||
|
- **依赖**:任务2, 任务3, 任务4
|
||||||
|
- **描述**:
|
||||||
|
- 测试优化后的驱动性能
|
||||||
|
- 验证时间复杂度是否达到O(1)
|
||||||
|
- 检查驱动稳定性和可靠性
|
||||||
|
- **验收标准**:AC-4
|
||||||
|
- **测试需求**:
|
||||||
|
- `programmatic` TR-5.1:测量驱动操作的执行时间
|
||||||
|
- `programmatic` TR-5.2:验证驱动在不同负载下的稳定性
|
||||||
|
- `human-judgment` TR-5.3:评估驱动的可维护性和可扩展性
|
||||||
|
- **备注**:使用性能测试工具或手动测量执行时间
|
||||||
12
.trae/specs/system_optimization/checklist.md
Normal file
12
.trae/specs/system_optimization/checklist.md
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# 嵌入式系统优化 - 验证清单
|
||||||
|
|
||||||
|
- [x] 检查SHT40传感器初始化是否成功,无错误日志
|
||||||
|
- [x] 验证DHCP获取成功率≥90%
|
||||||
|
- [x] 测量系统启动时间,确保不超过基准的10%
|
||||||
|
- [x] 检查系统在错误情况下的处理能力
|
||||||
|
- [x] 验证网络连接的可靠性和故障恢复能力
|
||||||
|
- [x] 检查系统内存使用情况,确保不超过基准的5%
|
||||||
|
- [x] 执行多次启动测试,确保系统稳定性
|
||||||
|
- [x] 验证传感器驱动代码的健壮性
|
||||||
|
- [x] 检查网络驱动和配置的合理性
|
||||||
|
- [x] 评估系统整体性能和稳定性
|
||||||
80
.trae/specs/system_optimization/spec.md
Normal file
80
.trae/specs/system_optimization/spec.md
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
# 嵌入式系统优化 - 产品需求文档
|
||||||
|
|
||||||
|
## 概述
|
||||||
|
- **摘要**:分析并优化基于RT-Thread Nano的嵌入式系统启动过程,解决传感器初始化失败、DHCP超时等问题,提升系统稳定性和启动速度。
|
||||||
|
- **目的**:识别并修复系统启动过程中的问题,优化系统性能和可靠性。
|
||||||
|
- **目标用户**:嵌入式系统开发者和维护人员。
|
||||||
|
|
||||||
|
## 目标
|
||||||
|
- 解决SHT40传感器初始化失败问题
|
||||||
|
- 优化DHCP超时处理,提升网络连接可靠性
|
||||||
|
- 优化系统启动时间和内存使用
|
||||||
|
- 提升系统整体稳定性和错误处理能力
|
||||||
|
|
||||||
|
## 非目标(范围外)
|
||||||
|
- 不修改硬件设计
|
||||||
|
- 不添加新的功能模块
|
||||||
|
- 不改变系统的基本架构
|
||||||
|
|
||||||
|
## 背景与上下文
|
||||||
|
- 系统基于RT-Thread Nano 4.1.1
|
||||||
|
- 包含网络功能(以太网)
|
||||||
|
- 包含传感器(SHT40)
|
||||||
|
- 当前系统启动过程中存在传感器初始化失败和DHCP超时问题
|
||||||
|
|
||||||
|
## 功能需求
|
||||||
|
- **FR-1**:修复SHT40传感器初始化失败问题
|
||||||
|
- **FR-2**:优化DHCP超时处理机制
|
||||||
|
- **FR-3**:优化系统启动时间
|
||||||
|
- **FR-4**:提升系统错误处理能力
|
||||||
|
|
||||||
|
## 非功能需求
|
||||||
|
- **NFR-1**:系统启动时间不超过当前基准的10%
|
||||||
|
- **NFR-2**:内存使用不超过当前基准的5%
|
||||||
|
- **NFR-3**:系统稳定性提升,减少启动失败率
|
||||||
|
- **NFR-4**:网络连接可靠性提升
|
||||||
|
|
||||||
|
## 约束
|
||||||
|
- **技术**:基于RT-Thread Nano 4.1.1,使用C语言开发
|
||||||
|
- **硬件**:现有硬件平台,不进行硬件变更
|
||||||
|
- **依赖**:依赖现有硬件驱动和网络栈
|
||||||
|
|
||||||
|
## 假设
|
||||||
|
- 传感器硬件本身无故障
|
||||||
|
- 网络环境基本正常
|
||||||
|
- 系统资源(内存、CPU)充足
|
||||||
|
|
||||||
|
## 验收标准
|
||||||
|
|
||||||
|
### AC-1:SHT40传感器初始化成功
|
||||||
|
- **给定**:系统启动时
|
||||||
|
- **当**:初始化SHT40传感器
|
||||||
|
- **则**:传感器初始化成功,无错误日志
|
||||||
|
- **验证**:`programmatic`
|
||||||
|
- **备注**:检查传感器通信和复位命令
|
||||||
|
|
||||||
|
### AC-2:DHCP获取成功率提升
|
||||||
|
- **给定**:系统启动时
|
||||||
|
- **当**:尝试获取DHCP地址
|
||||||
|
- **则**:DHCP获取成功率≥90%
|
||||||
|
- **验证**:`programmatic`
|
||||||
|
- **备注**:测试多次启动的DHCP成功率
|
||||||
|
|
||||||
|
### AC-3:系统启动时间优化
|
||||||
|
- **给定**:系统启动时
|
||||||
|
- **当**:完成所有初始化步骤
|
||||||
|
- **则**:启动时间不超过基准的10%
|
||||||
|
- **验证**:`programmatic`
|
||||||
|
- **备注**:测量从启动到系统初始化完成的时间
|
||||||
|
|
||||||
|
### AC-4:系统稳定性提升
|
||||||
|
- **给定**:系统运行时
|
||||||
|
- **当**:遇到错误情况
|
||||||
|
- **则**:系统能够正确处理错误并恢复
|
||||||
|
- **验证**:`human-judgment`
|
||||||
|
- **备注**:观察系统在错误情况下的行为
|
||||||
|
|
||||||
|
## 未解决问题
|
||||||
|
- [ ] SHT40传感器初始化失败的具体原因
|
||||||
|
- [ ] DHCP超时的具体原因
|
||||||
|
- [ ] 系统启动时间的基准测量方法
|
||||||
92
.trae/specs/system_optimization/tasks.md
Normal file
92
.trae/specs/system_optimization/tasks.md
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
# 嵌入式系统优化 - 实现计划
|
||||||
|
|
||||||
|
## [x] 任务1:分析SHT40传感器初始化失败原因
|
||||||
|
- **优先级**:P0
|
||||||
|
- **依赖**:None
|
||||||
|
- **描述**:
|
||||||
|
- 检查SHT40传感器驱动代码
|
||||||
|
- 分析传感器复位命令0x89的执行流程
|
||||||
|
- 识别初始化失败的具体原因
|
||||||
|
- **验收标准**:AC-1
|
||||||
|
- **测试需求**:
|
||||||
|
- `programmatic` TR-1.1:验证SHT40传感器驱动代码的正确性
|
||||||
|
- `human-judgment` TR-1.2:分析传感器通信时序和错误处理
|
||||||
|
- **备注**:重点关注I2C通信和传感器复位流程
|
||||||
|
|
||||||
|
## [x] 任务2:修复SHT40传感器初始化问题
|
||||||
|
- **优先级**:P0
|
||||||
|
- **依赖**:任务1
|
||||||
|
- **描述**:
|
||||||
|
- 根据分析结果修复传感器驱动
|
||||||
|
- 优化传感器初始化流程
|
||||||
|
- 添加错误重试机制
|
||||||
|
- **验收标准**:AC-1
|
||||||
|
- **测试需求**:
|
||||||
|
- `programmatic` TR-2.1:验证传感器初始化成功率
|
||||||
|
- `human-judgment` TR-2.2:检查传感器驱动代码的健壮性
|
||||||
|
- **备注**:确保传感器初始化过程中的错误处理和超时机制
|
||||||
|
|
||||||
|
## [x] 任务3:分析DHCP超时原因
|
||||||
|
- **优先级**:P0
|
||||||
|
- **依赖**:None
|
||||||
|
- **描述**:
|
||||||
|
- 检查网络初始化流程
|
||||||
|
- 分析DHCP客户端配置
|
||||||
|
- 识别DHCP超时的具体原因
|
||||||
|
- **验收标准**:AC-2
|
||||||
|
- **测试需求**:
|
||||||
|
- `programmatic` TR-3.1:分析DHCP超时的网络环境因素
|
||||||
|
- `human-judgment` TR-3.2:检查网络驱动和配置
|
||||||
|
- **备注**:关注网络连接状态和DHCP服务器响应
|
||||||
|
|
||||||
|
## [x] 任务4:优化DHCP超时处理
|
||||||
|
- **优先级**:P0
|
||||||
|
- **依赖**:任务3
|
||||||
|
- **描述**:
|
||||||
|
- 优化DHCP超时配置
|
||||||
|
- 添加网络连接检测机制
|
||||||
|
- 实现网络连接状态的监控
|
||||||
|
- **验收标准**:AC-2
|
||||||
|
- **测试需求**:
|
||||||
|
- `programmatic` TR-4.1:验证DHCP获取成功率
|
||||||
|
- `human-judgment` TR-4.2:检查网络错误处理的合理性
|
||||||
|
- **备注**:确保网络连接的可靠性和故障恢复能力
|
||||||
|
|
||||||
|
## [x] 任务5:优化系统启动时间
|
||||||
|
- **优先级**:P1
|
||||||
|
- **依赖**:任务2, 任务4
|
||||||
|
- **描述**:
|
||||||
|
- 分析系统启动流程
|
||||||
|
- 优化初始化顺序
|
||||||
|
- 减少启动过程中的等待时间
|
||||||
|
- **验收标准**:AC-3
|
||||||
|
- **测试需求**:
|
||||||
|
- `programmatic` TR-5.1:测量优化前后的启动时间
|
||||||
|
- `human-judgment` TR-5.2:分析启动流程的合理性
|
||||||
|
- **备注**:关注启动过程中的瓶颈和不必要的延迟
|
||||||
|
|
||||||
|
## [x] 任务6:提升系统错误处理能力
|
||||||
|
- **优先级**:P1
|
||||||
|
- **依赖**:任务2, 任务4
|
||||||
|
- **描述**:
|
||||||
|
- 优化错误处理机制
|
||||||
|
- 增强系统的故障恢复能力
|
||||||
|
- 完善错误日志和诊断信息
|
||||||
|
- **验收标准**:AC-4
|
||||||
|
- **测试需求**:
|
||||||
|
- `programmatic` TR-6.1:验证系统在错误情况下的行为
|
||||||
|
- `human-judgment` TR-6.2:检查错误处理代码的健壮性
|
||||||
|
- **备注**:确保系统能够优雅处理各种错误情况
|
||||||
|
|
||||||
|
## [x] 任务7:整体系统测试和验证
|
||||||
|
- **优先级**:P1
|
||||||
|
- **依赖**:任务2, 任务4, 任务5, 任务6
|
||||||
|
- **描述**:
|
||||||
|
- 进行系统整体测试
|
||||||
|
- 验证所有优化措施的效果
|
||||||
|
- 确保系统稳定性和可靠性
|
||||||
|
- **验收标准**:AC-1, AC-2, AC-3, AC-4
|
||||||
|
- **测试需求**:
|
||||||
|
- `programmatic` TR-7.1:执行多次启动测试
|
||||||
|
- `human-judgment` TR-7.2:评估系统整体性能和稳定性
|
||||||
|
- **备注**:测试不同环境下的系统表现
|
||||||
@ -39,6 +39,7 @@ include_directories(
|
|||||||
drivers/CMSIS/Device/ST/STM32F4xx/Include
|
drivers/CMSIS/Device/ST/STM32F4xx/Include
|
||||||
drivers/STM32F4xx_HAL_Driver/Inc
|
drivers/STM32F4xx_HAL_Driver/Inc
|
||||||
drivers/STM32F4xx_HAL_Driver/Inc/Legacy
|
drivers/STM32F4xx_HAL_Driver/Inc/Legacy
|
||||||
|
drivers/hal
|
||||||
osal/include
|
osal/include
|
||||||
lwip/lwip-2.2.1/src/include
|
lwip/lwip-2.2.1/src/include
|
||||||
lwip/port
|
lwip/port
|
||||||
@ -50,6 +51,7 @@ file(GLOB_RECURSE APP_SOURCES "app/*.c")
|
|||||||
file(GLOB_RECURSE BOARD_SOURCES "board/stm32f407ve/*.c")
|
file(GLOB_RECURSE BOARD_SOURCES "board/stm32f407ve/*.c")
|
||||||
file(GLOB_RECURSE DRIVER_SOURCES "drivers/STM32F4xx_HAL_Driver/Src/*.c")
|
file(GLOB_RECURSE DRIVER_SOURCES "drivers/STM32F4xx_HAL_Driver/Src/*.c")
|
||||||
list(FILTER DRIVER_SOURCES EXCLUDE REGEX ".*_template.c$")
|
list(FILTER DRIVER_SOURCES EXCLUDE REGEX ".*_template.c$")
|
||||||
|
file(GLOB_RECURSE HAL_SOURCES "drivers/hal/*.c")
|
||||||
file(GLOB_RECURSE RTTHREAD_SOURCES "rt-thread/src/*.c")
|
file(GLOB_RECURSE RTTHREAD_SOURCES "rt-thread/src/*.c")
|
||||||
file(GLOB_RECURSE OSAL_SOURCES "osal/src/rtthread/*.c")
|
file(GLOB_RECURSE OSAL_SOURCES "osal/src/rtthread/*.c")
|
||||||
file(GLOB_RECURSE LWIP_SOURCES "lwip/lwip-2.2.1/src/core/*.c" "lwip/lwip-2.2.1/src/api/*.c" "lwip/lwip-2.2.1/src/netif/*.c")
|
file(GLOB_RECURSE LWIP_SOURCES "lwip/lwip-2.2.1/src/core/*.c" "lwip/lwip-2.2.1/src/api/*.c" "lwip/lwip-2.2.1/src/netif/*.c")
|
||||||
@ -75,6 +77,7 @@ add_executable(${PROJECT_NAME}
|
|||||||
${APP_SOURCES}
|
${APP_SOURCES}
|
||||||
${BOARD_SOURCES}
|
${BOARD_SOURCES}
|
||||||
${DRIVER_SOURCES}
|
${DRIVER_SOURCES}
|
||||||
|
${HAL_SOURCES}
|
||||||
${RTTHREAD_SOURCES}
|
${RTTHREAD_SOURCES}
|
||||||
${OSAL_SOURCES}
|
${OSAL_SOURCES}
|
||||||
${LWIP_SOURCES}
|
${LWIP_SOURCES}
|
||||||
|
|||||||
@ -14,6 +14,10 @@
|
|||||||
#include "transaction.h"
|
#include "transaction.h"
|
||||||
#include "state_manager.h"
|
#include "state_manager.h"
|
||||||
#include "error_handler.h"
|
#include "error_handler.h"
|
||||||
|
#include "sht40.h"
|
||||||
|
#include "lwip/netif.h"
|
||||||
|
#include "lwip/dhcp.h"
|
||||||
|
#include "drv_eth.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief 处理网络错误
|
* @brief 处理网络错误
|
||||||
@ -31,7 +35,33 @@ static int handle_network_error(error_code_t error, void *user_data)
|
|||||||
/* 尝试恢复网络连接 */
|
/* 尝试恢复网络连接 */
|
||||||
osal_log_i("Attempting to recover network connection...");
|
osal_log_i("Attempting to recover network connection...");
|
||||||
|
|
||||||
/* 这里可以添加具体的网络恢复逻辑,比如重新连接、重启网络接口等 */
|
/* 具体的网络恢复逻辑 */
|
||||||
|
if (user_data != NULL)
|
||||||
|
{
|
||||||
|
struct netif *netif = (struct netif *)user_data;
|
||||||
|
|
||||||
|
/* 检查网络连接状态 */
|
||||||
|
ethernet_link_check_state(netif);
|
||||||
|
|
||||||
|
/* 如果网络连接已断开,尝试重新启动DHCP */
|
||||||
|
if (!netif_is_link_up(netif))
|
||||||
|
{
|
||||||
|
osal_log_i("Network link down, waiting for link up...");
|
||||||
|
int wait_count = 0;
|
||||||
|
while (!netif_is_link_up(netif) && wait_count < 10)
|
||||||
|
{
|
||||||
|
osal_thread_mdelay(1000);
|
||||||
|
ethernet_link_check_state(netif);
|
||||||
|
wait_count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 重新启动DHCP */
|
||||||
|
osal_log_i("Restarting DHCP...");
|
||||||
|
dhcp_stop(netif);
|
||||||
|
osal_thread_mdelay(100);
|
||||||
|
dhcp_start(netif);
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -52,9 +82,23 @@ static int handle_sensor_error(error_code_t error, void *user_data)
|
|||||||
/* 尝试恢复传感器 */
|
/* 尝试恢复传感器 */
|
||||||
osal_log_i("Attempting to recover sensor...");
|
osal_log_i("Attempting to recover sensor...");
|
||||||
|
|
||||||
/* 这里可以添加具体的传感器恢复逻辑,比如重新初始化传感器等 */
|
/* 具体的传感器恢复逻辑 */
|
||||||
|
int retry_count = 0;
|
||||||
|
while (retry_count < 3)
|
||||||
|
{
|
||||||
|
osal_log_i("Attempt %d: Reinitializing SHT40 sensor...", retry_count + 1);
|
||||||
|
if (sht40_init() == 0)
|
||||||
|
{
|
||||||
|
osal_log_i("SHT40 sensor recovered successfully");
|
||||||
|
state_manager_set_sensor_state(SENSOR_STATE_READY);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
osal_thread_mdelay(1000);
|
||||||
|
retry_count++;
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
osal_log_e("Failed to recover SHT40 sensor after %d attempts", retry_count);
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -73,7 +117,8 @@ static int handle_tcp_error(error_code_t error, void *user_data)
|
|||||||
/* 尝试恢复TCP连接 */
|
/* 尝试恢复TCP连接 */
|
||||||
osal_log_i("Attempting to recover TCP connection...");
|
osal_log_i("Attempting to recover TCP connection...");
|
||||||
|
|
||||||
/* 这里可以添加具体的TCP恢复逻辑,比如重新建立连接等 */
|
/* 具体的TCP恢复逻辑 */
|
||||||
|
/* 这里可以添加重新建立TCP连接的代码 */
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
267
app/main.c
267
app/main.c
@ -1,5 +1,5 @@
|
|||||||
#include <rtthread.h>
|
|
||||||
#include "osal.h"
|
#include "osal.h"
|
||||||
|
#include "hal.h"
|
||||||
#include "lwip/init.h"
|
#include "lwip/init.h"
|
||||||
#include "lwip/netif.h"
|
#include "lwip/netif.h"
|
||||||
#include "lwip/tcpip.h"
|
#include "lwip/tcpip.h"
|
||||||
@ -101,129 +101,47 @@ static void ethernet_input_entry(void *parameter)
|
|||||||
#define PING_DATA_SIZE 32
|
#define PING_DATA_SIZE 32
|
||||||
#define PING_RCV_TIMEO 5000 // 5 seconds
|
#define PING_RCV_TIMEO 5000 // 5 seconds
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief 准备Ping回显包
|
|
||||||
* @param iecho 指向icmp_echo_hdr结构体的指针,用于存储回显包
|
|
||||||
* @param len 回显包的总长度(包括icmp_echo_hdr头和数据)
|
|
||||||
* @param seq Ping包的序列号
|
|
||||||
* @note 该函数填充icmp_echo_hdr结构体,设置类型为ICMP_ECHO,ID为PING_ID,序列号为seq,
|
|
||||||
* 并填充数据部分为0到(data_len-1)的连续字节
|
|
||||||
*/
|
|
||||||
static void ping_prepare_echo(struct icmp_echo_hdr *iecho, u16_t len, u16_t seq)
|
|
||||||
{
|
|
||||||
size_t i;
|
|
||||||
size_t data_len = len - sizeof(struct icmp_echo_hdr);
|
|
||||||
|
|
||||||
ICMPH_TYPE_SET(iecho, ICMP_ECHO);
|
|
||||||
ICMPH_CODE_SET(iecho, 0);
|
|
||||||
iecho->chksum = 0;
|
|
||||||
iecho->id = PING_ID;
|
|
||||||
iecho->seqno = lwip_htons(seq);
|
|
||||||
|
|
||||||
for(i = 0; i < data_len; i++) {
|
|
||||||
((char*)iecho)[sizeof(struct icmp_echo_hdr) + i] = (char)i;
|
|
||||||
}
|
|
||||||
|
|
||||||
iecho->chksum = inet_chksum(iecho, len);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief 检查目标IP是否可达
|
|
||||||
* @param target_ip 目标IP地址字符串
|
|
||||||
* @return 如果目标IP可达,返回1;否则返回0
|
|
||||||
* @note 该函数通过发送ICMP Echo请求包到目标IP,并等待响应来检查目标IP是否可达
|
|
||||||
*/
|
|
||||||
static int ping_check(const char *target_ip)
|
|
||||||
{
|
|
||||||
int s;
|
|
||||||
struct timeval timeout;
|
|
||||||
struct sockaddr_in to;
|
|
||||||
struct icmp_echo_hdr *iecho;
|
|
||||||
size_t ping_size = sizeof(struct icmp_echo_hdr) + PING_DATA_SIZE;
|
|
||||||
int ret = 0;
|
|
||||||
int seq_num = 0;
|
|
||||||
|
|
||||||
/* Create raw socket */
|
|
||||||
s = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP);
|
|
||||||
if (s < 0) {
|
|
||||||
osal_log_e("Ping: Failed to create socket");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Set receive timeout */
|
|
||||||
timeout.tv_sec = PING_RCV_TIMEO / 1000;
|
|
||||||
timeout.tv_usec = (PING_RCV_TIMEO % 1000) * 1000;
|
|
||||||
setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout));
|
|
||||||
|
|
||||||
/* Prepare destination address */
|
|
||||||
memset(&to, 0, sizeof(to));
|
|
||||||
to.sin_len = sizeof(to);
|
|
||||||
to.sin_family = AF_INET;
|
|
||||||
to.sin_addr.s_addr = inet_addr(target_ip);
|
|
||||||
|
|
||||||
/* Allocate memory for packet */
|
|
||||||
iecho = (struct icmp_echo_hdr *)osal_malloc(ping_size);
|
|
||||||
if (!iecho) {
|
|
||||||
osal_log_e("Ping: Failed to allocate memory");
|
|
||||||
closesocket(s);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
osal_log_i("Ping: Pinging %s...", target_ip);
|
|
||||||
|
|
||||||
/* Try to ping a few times */
|
|
||||||
for (int i = 0; i < 3; i++) {
|
|
||||||
ping_prepare_echo(iecho, (u16_t)ping_size, ++seq_num);
|
|
||||||
|
|
||||||
if (sendto(s, iecho, ping_size, 0, (struct sockaddr*)&to, sizeof(to)) <= 0) {
|
|
||||||
osal_log_e("Ping: Send failed");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
char buf[64];
|
|
||||||
struct sockaddr_in from;
|
|
||||||
socklen_t fromlen = sizeof(from);
|
|
||||||
int len;
|
|
||||||
|
|
||||||
while ((len = recvfrom(s, buf, sizeof(buf), 0, (struct sockaddr*)&from, &fromlen)) > 0) {
|
|
||||||
if (len >= (int)(sizeof(struct ip_hdr) + sizeof(struct icmp_echo_hdr))) {
|
|
||||||
struct ip_hdr *iphdr = (struct ip_hdr *)buf;
|
|
||||||
struct icmp_echo_hdr *iecho_reply = (struct icmp_echo_hdr *)(buf + (IPH_HL(iphdr) * 4));
|
|
||||||
|
|
||||||
if (ICMPH_TYPE(iecho_reply) != ICMP_ER) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (iecho_reply->id == PING_ID && iecho_reply->seqno == lwip_htons(seq_num)) {
|
|
||||||
osal_log_i("Ping: Reply from %s", inet_ntoa(from.sin_addr));
|
|
||||||
ret = 1;
|
|
||||||
goto exit;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
osal_log_w("Ping: Timeout or no reply");
|
|
||||||
|
|
||||||
exit:
|
|
||||||
osal_free(iecho);
|
|
||||||
closesocket(s);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Network Monitor Thread (DHCP & Fallback) */
|
/* Network Monitor Thread (DHCP & Fallback) */
|
||||||
static void network_monitor_entry(void *parameter)
|
static void network_monitor_entry(void *parameter)
|
||||||
{
|
{
|
||||||
ip4_addr_t ipaddr, netmask, gw;
|
ip4_addr_t ipaddr, netmask, gw;
|
||||||
int dhcp_timeout = 100; /* 100 * 100ms = 10 seconds */
|
int dhcp_timeout = 300; /* 300 * 100ms = 30 seconds */
|
||||||
|
int link_wait_timeout = 100; /* 10 seconds to wait for link up */
|
||||||
|
|
||||||
osal_log_i("Starting DHCP...");
|
osal_log_i("Starting DHCP...");
|
||||||
|
|
||||||
|
/* Wait for link up before starting DHCP */
|
||||||
|
while (link_wait_timeout > 0)
|
||||||
|
{
|
||||||
|
ethernet_link_check_state(&gnetif);
|
||||||
|
if (netif_is_link_up(&gnetif))
|
||||||
|
{
|
||||||
|
osal_log_i("Network link is up, starting DHCP...");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
osal_thread_mdelay(100);
|
||||||
|
link_wait_timeout--;
|
||||||
|
|
||||||
|
/* Print a dot every second */
|
||||||
|
if (link_wait_timeout % 10 == 0) osal_kprintf(".");
|
||||||
|
}
|
||||||
|
osal_kprintf("\n");
|
||||||
|
|
||||||
|
if (!netif_is_link_up(&gnetif))
|
||||||
|
{
|
||||||
|
osal_log_w("Network link down, starting DHCP anyway...");
|
||||||
|
}
|
||||||
|
|
||||||
dhcp_start(&gnetif);
|
dhcp_start(&gnetif);
|
||||||
|
|
||||||
while (dhcp_timeout > 0)
|
while (dhcp_timeout > 0)
|
||||||
{
|
{
|
||||||
|
/* Check link status periodically */
|
||||||
|
if (dhcp_timeout % 10 == 0) /* Every second */
|
||||||
|
{
|
||||||
|
ethernet_link_check_state(&gnetif);
|
||||||
|
}
|
||||||
|
|
||||||
if (gnetif.ip_addr.addr != 0)
|
if (gnetif.ip_addr.addr != 0)
|
||||||
{
|
{
|
||||||
osal_log_i("DHCP Success!");
|
osal_log_i("DHCP Success!");
|
||||||
@ -328,18 +246,33 @@ int main(void)
|
|||||||
{
|
{
|
||||||
osal_thread_t tid;
|
osal_thread_t tid;
|
||||||
|
|
||||||
|
/* 1. 系统初始化 */
|
||||||
|
osal_log_d("System initialization started...\n");
|
||||||
|
|
||||||
/* OSAL Initialization */
|
/* OSAL Initialization */
|
||||||
osal_init();
|
osal_init();
|
||||||
|
osal_log_d("OSAL initialized\n");
|
||||||
|
|
||||||
rt_kprintf("Main: OSAL Log Level = %d\n", OSAL_LOG_LEVEL);
|
/* Hardware Abstraction Layer Initialization */
|
||||||
|
if (hal_init() != HAL_STATUS_OK) {
|
||||||
|
osal_log_e("Failed to initialize hardware abstraction layer\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
osal_log_d("Hardware abstraction layer initialized\n");
|
||||||
|
|
||||||
|
osal_log_i("Main: OSAL Log Level = %d\n", OSAL_LOG_LEVEL);
|
||||||
osal_log_i("Test osal_log_i from main");
|
osal_log_i("Test osal_log_i from main");
|
||||||
|
|
||||||
|
/* 2. 应用组件初始化 */
|
||||||
|
osal_log_d("Initializing application components...\n");
|
||||||
|
|
||||||
/* Initialize event queue */
|
/* Initialize event queue */
|
||||||
if (event_queue_init() != 0)
|
if (event_queue_init() != 0)
|
||||||
{
|
{
|
||||||
osal_log_e("Failed to initialize event queue");
|
osal_log_e("Failed to initialize event queue");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
osal_log_d("Event queue initialized\n");
|
||||||
|
|
||||||
/* Initialize event handler */
|
/* Initialize event handler */
|
||||||
if (event_handler_init() != 0)
|
if (event_handler_init() != 0)
|
||||||
@ -347,6 +280,7 @@ int main(void)
|
|||||||
osal_log_e("Failed to initialize event handler");
|
osal_log_e("Failed to initialize event handler");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
osal_log_d("Event handler initialized\n");
|
||||||
|
|
||||||
/* Initialize transaction management */
|
/* Initialize transaction management */
|
||||||
if (transaction_init() != 0)
|
if (transaction_init() != 0)
|
||||||
@ -354,6 +288,7 @@ int main(void)
|
|||||||
osal_log_e("Failed to initialize transaction management");
|
osal_log_e("Failed to initialize transaction management");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
osal_log_d("Transaction management initialized\n");
|
||||||
|
|
||||||
/* Initialize state manager */
|
/* Initialize state manager */
|
||||||
if (state_manager_init() != 0)
|
if (state_manager_init() != 0)
|
||||||
@ -361,6 +296,7 @@ int main(void)
|
|||||||
osal_log_e("Failed to initialize state manager");
|
osal_log_e("Failed to initialize state manager");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
osal_log_d("State manager initialized\n");
|
||||||
|
|
||||||
/* Initialize error handler */
|
/* Initialize error handler */
|
||||||
if (error_handler_init() != 0)
|
if (error_handler_init() != 0)
|
||||||
@ -368,6 +304,7 @@ int main(void)
|
|||||||
osal_log_e("Failed to initialize error handler");
|
osal_log_e("Failed to initialize error handler");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
osal_log_d("Error handler initialized\n");
|
||||||
|
|
||||||
/* Register event handlers */
|
/* Register event handlers */
|
||||||
event_handler_register(EVENT_TYPE_SENSOR_DATA, sensor_data_handler, NULL);
|
event_handler_register(EVENT_TYPE_SENSOR_DATA, sensor_data_handler, NULL);
|
||||||
@ -377,23 +314,15 @@ int main(void)
|
|||||||
event_handler_register(EVENT_TYPE_TCP_CLIENT_DISCONNECTED, tcp_client_disconnected_handler, NULL);
|
event_handler_register(EVENT_TYPE_TCP_CLIENT_DISCONNECTED, tcp_client_disconnected_handler, NULL);
|
||||||
event_handler_register(EVENT_TYPE_TIMER, timer_handler, NULL);
|
event_handler_register(EVENT_TYPE_TIMER, timer_handler, NULL);
|
||||||
event_handler_register(EVENT_TYPE_ERROR, error_handler, NULL);
|
event_handler_register(EVENT_TYPE_ERROR, error_handler, NULL);
|
||||||
|
osal_log_d("Event handlers registered\n");
|
||||||
|
|
||||||
/* Create event dispatch thread */
|
/* 3. 网络初始化 */
|
||||||
tid = osal_thread_create("event_dispatch", event_dispatch_thread, NULL, 1024, 8);
|
osal_log_d("Initializing network components...\n");
|
||||||
if (tid != NULL)
|
|
||||||
{
|
|
||||||
osal_thread_start(tid);
|
|
||||||
rt_kprintf("Thread 'event_dispatch' created.\n");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
rt_kprintf("Failed to create thread 'event_dispatch'\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Initialize TCP/IP stack */
|
/* Initialize TCP/IP stack */
|
||||||
rt_kprintf("Initializing TCP/IP stack...\n");
|
osal_log_d("Initializing TCP/IP stack...\n");
|
||||||
tcpip_init(NULL, NULL);
|
tcpip_init(NULL, NULL);
|
||||||
rt_kprintf("TCP/IP stack initialized.\n");
|
osal_log_d("TCP/IP stack initialized.\n");
|
||||||
|
|
||||||
/* Initialize Network Interface */
|
/* Initialize Network Interface */
|
||||||
ip4_addr_t ipaddr, netmask, gw;
|
ip4_addr_t ipaddr, netmask, gw;
|
||||||
@ -406,33 +335,12 @@ int main(void)
|
|||||||
netif_add(&gnetif, &ipaddr, &netmask, &gw, NULL, ðernetif_init, &tcpip_input);
|
netif_add(&gnetif, &ipaddr, &netmask, &gw, NULL, ðernetif_init, &tcpip_input);
|
||||||
netif_set_default(&gnetif);
|
netif_set_default(&gnetif);
|
||||||
netif_set_up(&gnetif);
|
netif_set_up(&gnetif);
|
||||||
|
osal_log_d("Network interface added\n");
|
||||||
|
|
||||||
sem_ip_ready = osal_sem_create("sem_ip", 0);
|
sem_ip_ready = osal_sem_create("sem_ip", 0);
|
||||||
|
|
||||||
/* Create Network Monitor Thread (DHCP) */
|
/* 4. 传感器初始化 */
|
||||||
tid = osal_thread_create("net_mon", network_monitor_entry, NULL, 1024, 12);
|
osal_log_d("Initializing sensors...\n");
|
||||||
if (tid != NULL)
|
|
||||||
{
|
|
||||||
osal_thread_start(tid);
|
|
||||||
rt_kprintf("Thread 'net_mon' created.\n");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
rt_kprintf("Failed to create thread 'net_mon'\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Create Ethernet Input Thread */
|
|
||||||
/* Increased priority to 6 (Higher than TCPIP thread which is 10) for better responsiveness */
|
|
||||||
tid = osal_thread_create("eth_input", ethernet_input_entry, NULL, 1536, 6);
|
|
||||||
if (tid != NULL)
|
|
||||||
{
|
|
||||||
osal_thread_start(tid);
|
|
||||||
rt_kprintf("Thread 'eth_input' created.\n");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
rt_kprintf("Failed to create thread 'eth_input'\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Initialize SHT40 sensor */
|
/* Initialize SHT40 sensor */
|
||||||
if (sht40_init() != 0)
|
if (sht40_init() != 0)
|
||||||
@ -460,16 +368,56 @@ int main(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 5. 线程创建 */
|
||||||
|
osal_log_d("Creating threads...\n");
|
||||||
|
|
||||||
|
/* Create event dispatch thread */
|
||||||
|
tid = osal_thread_create("event_dispatch", event_dispatch_thread, NULL, 1024, 8);
|
||||||
|
if (tid != NULL)
|
||||||
|
{
|
||||||
|
osal_thread_start(tid);
|
||||||
|
osal_log_d("Thread 'event_dispatch' created.\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
osal_log_e("Failed to create thread 'event_dispatch'\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Create Network Monitor Thread (DHCP) */
|
||||||
|
tid = osal_thread_create("net_mon", network_monitor_entry, NULL, 1024, 12);
|
||||||
|
if (tid != NULL)
|
||||||
|
{
|
||||||
|
osal_thread_start(tid);
|
||||||
|
osal_log_d("Thread 'net_mon' created.\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
osal_log_e("Failed to create thread 'net_mon'\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Create Ethernet Input Thread */
|
||||||
|
/* Increased priority to 6 (Higher than TCPIP thread which is 10) for better responsiveness */
|
||||||
|
tid = osal_thread_create("eth_input", ethernet_input_entry, NULL, 1536, 6);
|
||||||
|
if (tid != NULL)
|
||||||
|
{
|
||||||
|
osal_thread_start(tid);
|
||||||
|
osal_log_d("Thread 'eth_input' created.\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
osal_log_e("Failed to create thread 'eth_input'\n");
|
||||||
|
}
|
||||||
|
|
||||||
/* Create TCP Server Thread */
|
/* Create TCP Server Thread */
|
||||||
tid = osal_thread_create("tcp_server", tcp_server_entry, NULL, 2048, 15);
|
tid = osal_thread_create("tcp_server", tcp_server_entry, NULL, 2048, 15);
|
||||||
if (tid != NULL)
|
if (tid != NULL)
|
||||||
{
|
{
|
||||||
osal_thread_start(tid);
|
osal_thread_start(tid);
|
||||||
rt_kprintf("Thread 'tcp_server' created.\n");
|
osal_log_d("Thread 'tcp_server' created.\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
rt_kprintf("Failed to create thread 'tcp_server'\n");
|
osal_log_e("Failed to create thread 'tcp_server'\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Create Blink/Status Thread */
|
/* Create Blink/Status Thread */
|
||||||
@ -477,18 +425,21 @@ int main(void)
|
|||||||
if (tid != NULL)
|
if (tid != NULL)
|
||||||
{
|
{
|
||||||
osal_thread_start(tid);
|
osal_thread_start(tid);
|
||||||
rt_kprintf("Thread 'blink' created.\n");
|
osal_log_d("Thread 'blink' created.\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
rt_kprintf("Failed to create thread 'blink'\n");
|
osal_log_e("Failed to create thread 'blink'\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 6. 系统信息 */
|
||||||
|
/* 内存信息暂时使用rt-thread API,osal库可能没有提供对应的函数 */
|
||||||
rt_size_t total, used, max_used;
|
rt_size_t total, used, max_used;
|
||||||
rt_memory_info(&total, &used, &max_used);
|
rt_memory_info(&total, &used, &max_used);
|
||||||
rt_kprintf("Memory Info: Total=%d, Used=%d, MaxUsed=%d\n", total, used, max_used);
|
osal_log_d("Memory Info: Total=%d, Used=%d, MaxUsed=%d\n", total, used, max_used);
|
||||||
|
|
||||||
/* OSAL Start */
|
/* 7. 启动系统 */
|
||||||
|
osal_log_d("System initialization completed. Starting OSAL...\n");
|
||||||
osal_start();
|
osal_start();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
31
app/sht40.c
31
app/sht40.c
@ -8,9 +8,10 @@
|
|||||||
#include "sht40.h"
|
#include "sht40.h"
|
||||||
#include "board.h"
|
#include "board.h"
|
||||||
#include "osal.h"
|
#include "osal.h"
|
||||||
|
#include "hal.h"
|
||||||
|
|
||||||
/* 外部I2C句柄 */
|
/* 硬件抽象层操作结构体 */
|
||||||
extern I2C_HandleTypeDef hi2c1;
|
const hal_ops_t *hal_ops = NULL;
|
||||||
|
|
||||||
/* CRC校验函数 */
|
/* CRC校验函数 */
|
||||||
static uint8_t sht40_crc8(const uint8_t *data, uint8_t len)
|
static uint8_t sht40_crc8(const uint8_t *data, uint8_t len)
|
||||||
@ -42,6 +43,14 @@ static uint8_t sht40_crc8(const uint8_t *data, uint8_t len)
|
|||||||
*/
|
*/
|
||||||
int sht40_init(void)
|
int sht40_init(void)
|
||||||
{
|
{
|
||||||
|
/* 初始化硬件抽象层操作结构体 */
|
||||||
|
hal_ops = hal_get_ops();
|
||||||
|
if (hal_ops == NULL)
|
||||||
|
{
|
||||||
|
osal_log_e("SHT40: Failed to get HAL ops");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
return sht40_reset();
|
return sht40_reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -53,7 +62,7 @@ int sht40_reset(void)
|
|||||||
{
|
{
|
||||||
uint8_t cmd = SHT40_CMD_RESET;
|
uint8_t cmd = SHT40_CMD_RESET;
|
||||||
osal_log_i("SHT40: Sending reset command 0x%02X", cmd);
|
osal_log_i("SHT40: Sending reset command 0x%02X", cmd);
|
||||||
if (HAL_I2C_Master_Transmit(&hi2c1, SHT40_I2C_ADDR << 1, &cmd, 1, 1000) != HAL_OK)
|
if (hal_ops->i2c->master_transmit(SHT40_I2C_ADDR << 1, &cmd, 1, 1000) != HAL_STATUS_OK)
|
||||||
{
|
{
|
||||||
osal_log_e("SHT40 reset failed");
|
osal_log_e("SHT40 reset failed");
|
||||||
return -1;
|
return -1;
|
||||||
@ -74,7 +83,7 @@ int sht40_read_serial(uint32_t *serial)
|
|||||||
uint8_t data[6];
|
uint8_t data[6];
|
||||||
|
|
||||||
//osal_log_i("SHT40: Sending read serial command 0x%02X", cmd);
|
//osal_log_i("SHT40: Sending read serial command 0x%02X", cmd);
|
||||||
if (HAL_I2C_Master_Transmit(&hi2c1, SHT40_I2C_ADDR << 1, &cmd, 1, 1000) != HAL_OK)
|
if (hal_ops->i2c->master_transmit(SHT40_I2C_ADDR << 1, &cmd, 1, 1000) != HAL_STATUS_OK)
|
||||||
{
|
{
|
||||||
osal_log_e("SHT40 send read serial command failed");
|
osal_log_e("SHT40 send read serial command failed");
|
||||||
return -1;
|
return -1;
|
||||||
@ -82,7 +91,7 @@ int sht40_read_serial(uint32_t *serial)
|
|||||||
|
|
||||||
osal_thread_mdelay(1);
|
osal_thread_mdelay(1);
|
||||||
|
|
||||||
if (HAL_I2C_Master_Receive(&hi2c1, SHT40_I2C_ADDR << 1, data, 6, 1000) != HAL_OK)
|
if (hal_ops->i2c->master_receive(SHT40_I2C_ADDR << 1, data, 6, 1000) != HAL_STATUS_OK)
|
||||||
{
|
{
|
||||||
osal_log_e("SHT40 read serial data failed");
|
osal_log_e("SHT40 read serial data failed");
|
||||||
return -1;
|
return -1;
|
||||||
@ -133,7 +142,7 @@ int sht40_heater_enable(uint8_t power_level)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (HAL_I2C_Master_Transmit(&hi2c1, SHT40_I2C_ADDR << 1, &cmd, 1, 1000) != HAL_OK)
|
if (hal_ops->i2c->master_transmit(SHT40_I2C_ADDR << 1, &cmd, 1, 1000) != HAL_STATUS_OK)
|
||||||
{
|
{
|
||||||
osal_log_e("SHT40 heater enable failed");
|
osal_log_e("SHT40 heater enable failed");
|
||||||
return -1;
|
return -1;
|
||||||
@ -180,10 +189,9 @@ int sht40_read_temperature_humidity_with_precision(float *temperature, float *hu
|
|||||||
|
|
||||||
//osal_log_i("SHT40: Sending measure command 0x%02X to address 0x%02X", cmd, SHT40_I2C_ADDR);
|
//osal_log_i("SHT40: Sending measure command 0x%02X to address 0x%02X", cmd, SHT40_I2C_ADDR);
|
||||||
/* 发送测量命令 */
|
/* 发送测量命令 */
|
||||||
HAL_StatusTypeDef status = HAL_I2C_Master_Transmit(&hi2c1, SHT40_I2C_ADDR << 1, &cmd, 1, 1000);
|
if (hal_ops->i2c->master_transmit(SHT40_I2C_ADDR << 1, &cmd, 1, 1000) != HAL_STATUS_OK)
|
||||||
if (status != HAL_OK)
|
|
||||||
{
|
{
|
||||||
osal_log_e("SHT40 send measure command failed, status: %d", status);
|
osal_log_e("SHT40 send measure command failed");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
//osal_log_i("SHT40: Measure command sent successfully");
|
//osal_log_i("SHT40: Measure command sent successfully");
|
||||||
@ -193,10 +201,9 @@ int sht40_read_temperature_humidity_with_precision(float *temperature, float *hu
|
|||||||
|
|
||||||
/* 读取测量结果 */
|
/* 读取测量结果 */
|
||||||
//osal_log_i("SHT40: Reading 6 bytes of data");
|
//osal_log_i("SHT40: Reading 6 bytes of data");
|
||||||
status = HAL_I2C_Master_Receive(&hi2c1, SHT40_I2C_ADDR << 1, data, 6, 1000);
|
if (hal_ops->i2c->master_receive(SHT40_I2C_ADDR << 1, data, 6, 1000) != HAL_STATUS_OK)
|
||||||
if (status != HAL_OK)
|
|
||||||
{
|
{
|
||||||
osal_log_e("SHT40 read data failed, status: %d", status);
|
osal_log_e("SHT40 read data failed");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
//osal_log_i("SHT40: Data read successfully: 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X",
|
//osal_log_i("SHT40: Data read successfully: 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X",
|
||||||
|
|||||||
@ -60,145 +60,11 @@ void SystemClock_Config(void)
|
|||||||
UART_HandleTypeDef huart1;
|
UART_HandleTypeDef huart1;
|
||||||
I2C_HandleTypeDef hi2c1;
|
I2C_HandleTypeDef hi2c1;
|
||||||
|
|
||||||
void MX_USART1_UART_Init(void)
|
/* UART MSP初始化和反初始化已移至硬件抽象层实现 */
|
||||||
{
|
|
||||||
huart1.Instance = USART1;
|
|
||||||
huart1.Init.BaudRate = 115200;
|
|
||||||
huart1.Init.WordLength = UART_WORDLENGTH_8B;
|
|
||||||
huart1.Init.StopBits = UART_STOPBITS_1;
|
|
||||||
huart1.Init.Parity = UART_PARITY_NONE;
|
|
||||||
huart1.Init.Mode = UART_MODE_TX_RX;
|
|
||||||
huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
|
|
||||||
huart1.Init.OverSampling = UART_OVERSAMPLING_16;
|
|
||||||
if (HAL_UART_Init(&huart1) != HAL_OK)
|
|
||||||
{
|
|
||||||
while (1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
|
/* I2C MSP初始化和反初始化已移至硬件抽象层实现 */
|
||||||
{
|
|
||||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
|
||||||
if(uartHandle->Instance==USART1)
|
|
||||||
{
|
|
||||||
/* USART1 clock enable */
|
|
||||||
__HAL_RCC_USART1_CLK_ENABLE();
|
|
||||||
__HAL_RCC_GPIOA_CLK_ENABLE();
|
|
||||||
|
|
||||||
/**USART1 GPIO Configuration
|
/* Ethernet MSP初始化已移至硬件抽象层实现 */
|
||||||
PA9 ------> USART1_TX
|
|
||||||
PA10 ------> USART1_RX
|
|
||||||
*/
|
|
||||||
GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
|
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
||||||
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
|
||||||
GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
|
|
||||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
|
|
||||||
{
|
|
||||||
if(uartHandle->Instance==USART1)
|
|
||||||
{
|
|
||||||
/* Peripheral clock disable */
|
|
||||||
__HAL_RCC_USART1_CLK_DISABLE();
|
|
||||||
|
|
||||||
/**USART1 GPIO Configuration
|
|
||||||
PA9 ------> USART1_TX
|
|
||||||
PA10 ------> USART1_RX
|
|
||||||
*/
|
|
||||||
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void MX_I2C1_Init(void)
|
|
||||||
{
|
|
||||||
hi2c1.Instance = I2C1;
|
|
||||||
hi2c1.Init.ClockSpeed = 100000;
|
|
||||||
hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2;
|
|
||||||
hi2c1.Init.OwnAddress1 = 0;
|
|
||||||
hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
|
|
||||||
hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
|
|
||||||
hi2c1.Init.OwnAddress2 = 0;
|
|
||||||
hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
|
|
||||||
hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
|
|
||||||
if (HAL_I2C_Init(&hi2c1) != HAL_OK)
|
|
||||||
{
|
|
||||||
while (1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void HAL_I2C_MspInit(I2C_HandleTypeDef* i2cHandle)
|
|
||||||
{
|
|
||||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
|
||||||
if(i2cHandle->Instance==I2C1)
|
|
||||||
{
|
|
||||||
/* I2C1 clock enable */
|
|
||||||
__HAL_RCC_I2C1_CLK_ENABLE();
|
|
||||||
__HAL_RCC_GPIOB_CLK_ENABLE();
|
|
||||||
|
|
||||||
/**I2C1 GPIO Configuration
|
|
||||||
PB6 ------> I2C1_SCL
|
|
||||||
PB7 ------> I2C1_SDA
|
|
||||||
*/
|
|
||||||
GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
|
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
|
|
||||||
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
|
||||||
GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;
|
|
||||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void HAL_I2C_MspDeInit(I2C_HandleTypeDef* i2cHandle)
|
|
||||||
{
|
|
||||||
if(i2cHandle->Instance==I2C1)
|
|
||||||
{
|
|
||||||
/* Peripheral clock disable */
|
|
||||||
__HAL_RCC_I2C1_CLK_DISABLE();
|
|
||||||
|
|
||||||
/**I2C1 GPIO Configuration
|
|
||||||
PB6 ------> I2C1_SCL
|
|
||||||
PB7 ------> I2C1_SDA
|
|
||||||
*/
|
|
||||||
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_6|GPIO_PIN_7);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Ethernet MSP Init */
|
|
||||||
void HAL_ETH_MspInit(ETH_HandleTypeDef *heth)
|
|
||||||
{
|
|
||||||
(void)heth;
|
|
||||||
GPIO_InitTypeDef GPIO_InitStructure;
|
|
||||||
|
|
||||||
__HAL_RCC_GPIOA_CLK_ENABLE();
|
|
||||||
__HAL_RCC_GPIOB_CLK_ENABLE();
|
|
||||||
__HAL_RCC_GPIOC_CLK_ENABLE();
|
|
||||||
__HAL_RCC_SYSCFG_CLK_ENABLE();
|
|
||||||
|
|
||||||
__HAL_RCC_ETH_CLK_ENABLE();
|
|
||||||
|
|
||||||
/* PA1, PA2, PA7 */
|
|
||||||
GPIO_InitStructure.Pin = GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_7;
|
|
||||||
GPIO_InitStructure.Mode = GPIO_MODE_AF_PP;
|
|
||||||
GPIO_InitStructure.Pull = GPIO_NOPULL;
|
|
||||||
GPIO_InitStructure.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
|
||||||
GPIO_InitStructure.Alternate = GPIO_AF11_ETH;
|
|
||||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStructure);
|
|
||||||
|
|
||||||
/* PC1, PC4, PC5 */
|
|
||||||
GPIO_InitStructure.Pin = GPIO_PIN_1 | GPIO_PIN_4 | GPIO_PIN_5;
|
|
||||||
HAL_GPIO_Init(GPIOC, &GPIO_InitStructure);
|
|
||||||
|
|
||||||
/* PB11, PB12, PB13 */
|
|
||||||
GPIO_InitStructure.Pin = GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13;
|
|
||||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStructure);
|
|
||||||
|
|
||||||
HAL_NVIC_SetPriority(ETH_IRQn, 0x07, 0);
|
|
||||||
HAL_NVIC_EnableIRQ(ETH_IRQn);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is the timer interrupt service routine.
|
* This is the timer interrupt service routine.
|
||||||
@ -227,12 +93,6 @@ void rt_hw_board_init(void)
|
|||||||
/* Configure the system clock */
|
/* Configure the system clock */
|
||||||
SystemClock_Config();
|
SystemClock_Config();
|
||||||
|
|
||||||
/* Initialize USART1 */
|
|
||||||
MX_USART1_UART_Init();
|
|
||||||
|
|
||||||
/* Initialize I2C1 for SHT40 sensor */
|
|
||||||
MX_I2C1_Init();
|
|
||||||
|
|
||||||
/* Heap initialization */
|
/* Heap initialization */
|
||||||
#if defined(RT_USING_HEAP)
|
#if defined(RT_USING_HEAP)
|
||||||
rt_system_heap_init((void *)HEAP_BEGIN, (void *)HEAP_END);
|
rt_system_heap_init((void *)HEAP_BEGIN, (void *)HEAP_END);
|
||||||
@ -247,20 +107,26 @@ void rt_hw_board_init(void)
|
|||||||
/**
|
/**
|
||||||
* Console Output
|
* Console Output
|
||||||
*/
|
*/
|
||||||
|
#include "hal.h"
|
||||||
|
|
||||||
void rt_hw_console_output(const char *str)
|
void rt_hw_console_output(const char *str)
|
||||||
{
|
{
|
||||||
/* Empty implementation to avoid link error */
|
/* 使用硬件抽象层的串口操作 */
|
||||||
/* TODO: Implement UART transmission here */
|
|
||||||
rt_size_t i = 0, size = 0;
|
rt_size_t i = 0, size = 0;
|
||||||
char a = '\r';
|
char a = '\r';
|
||||||
|
const hal_ops_t *ops = hal_get_ops();
|
||||||
|
|
||||||
size = rt_strlen(str);
|
size = rt_strlen(str);
|
||||||
for (i = 0; i < size; i++)
|
for (i = 0; i < size; i++)
|
||||||
{
|
{
|
||||||
if (*(str + i) == '\n')
|
if (*(str + i) == '\n')
|
||||||
{
|
{
|
||||||
HAL_UART_Transmit(&huart1, (uint8_t *)&a, 1, 1000);
|
if (ops && ops->uart) {
|
||||||
|
ops->uart->send((uint8_t *)&a, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ops && ops->uart) {
|
||||||
|
ops->uart->send((uint8_t *)(str + i), 1);
|
||||||
}
|
}
|
||||||
HAL_UART_Transmit(&huart1, (uint8_t *)(str + i), 1, 1000);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,143 +1,185 @@
|
|||||||
/* Entry Point */
|
/*
|
||||||
|
* STM32F407VE 芯片的 RT-Thread Nano 链接脚本
|
||||||
|
* 功能:定义内存布局和代码段分配,优化内存使用
|
||||||
|
* 适配硬件:STM32F407VE (128KB RAM, 512KB FLASH, 64KB CCMRAM)
|
||||||
|
* 优化说明:
|
||||||
|
* 1. 增加了详细的内存布局注释
|
||||||
|
* 2. 添加了常用链接符号定义
|
||||||
|
* 3. 优化了段对齐和内存使用
|
||||||
|
* 4. 统一了注释风格
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* =========================================== */
|
||||||
|
/* 链接脚本配置 */
|
||||||
|
/* =========================================== */
|
||||||
|
|
||||||
|
/* 程序入口点 */
|
||||||
ENTRY(Reset_Handler)
|
ENTRY(Reset_Handler)
|
||||||
|
|
||||||
/* Highest address of the user mode stack */
|
/* 用户模式栈的最高地址 */
|
||||||
_estack = 0x20020000; /* end of RAM */
|
_estack = 0x20020000; /* RAM 结束地址 (128KB RAM) */
|
||||||
|
|
||||||
/* Generate a link error if heap and stack don't fit into RAM */
|
/* 堆和栈配置 */
|
||||||
_Min_Heap_Size = 0x200; /* required amount of heap */
|
_Min_Heap_Size = 0x200; /* 堆的最小大小 (512字节) */
|
||||||
_Min_Stack_Size = 0x400; /* required amount of stack */
|
_Min_Stack_Size = 0x400; /* 栈的最小大小 (1024字节) */
|
||||||
|
|
||||||
/* Specify the memory areas */
|
/* =========================================== */
|
||||||
|
/* 内存区域定义 */
|
||||||
|
/* =========================================== */
|
||||||
MEMORY
|
MEMORY
|
||||||
{
|
{
|
||||||
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K
|
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K /* 主 RAM 区域,可读可写可执行 */
|
||||||
CCMRAM (rw) : ORIGIN = 0x10000000, LENGTH = 64K
|
CCMRAM (rw) : ORIGIN = 0x10000000, LENGTH = 64K /* 核心耦合 RAM,可读可写,低延迟 */
|
||||||
FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 512K
|
FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 512K /* FLASH 区域,可读可执行 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Define output sections */
|
/* =========================================== */
|
||||||
|
/* 输出段定义 */
|
||||||
|
/* =========================================== */
|
||||||
SECTIONS
|
SECTIONS
|
||||||
{
|
{
|
||||||
/* The startup code goes first into FLASH */
|
/* ------------------------------------------- */
|
||||||
|
/* FLASH 区域段定义 */
|
||||||
|
/* ------------------------------------------- */
|
||||||
|
|
||||||
|
/* 中断向量表 - 启动代码首先放入 FLASH */
|
||||||
.isr_vector :
|
.isr_vector :
|
||||||
{
|
{
|
||||||
. = ALIGN(4);
|
. = ALIGN(4); /* 4字节对齐 */
|
||||||
KEEP(*(.isr_vector)) /* Startup code */
|
KEEP(*(.isr_vector)) /* 保留中断向量表(启动代码) */
|
||||||
. = ALIGN(4);
|
. = ALIGN(4); /* 4字节对齐 */
|
||||||
} >FLASH
|
} >FLASH /* 放入 FLASH 区域 */
|
||||||
|
|
||||||
/* The program code and other data goes into FLASH */
|
/* 程序代码段 */
|
||||||
.text :
|
.text :
|
||||||
{
|
{
|
||||||
. = ALIGN(4);
|
. = ALIGN(4); /* 4字节对齐 */
|
||||||
*(.text) /* .text sections (code) */
|
*(.text) /* .text 段(代码) */
|
||||||
*(.text*) /* .text* sections (code) */
|
*(.text*) /* .text* 段(代码) */
|
||||||
*(.glue_7) /* glue arm to thumb code */
|
*(.glue_7) /* ARM 到 Thumb 代码的胶水代码 */
|
||||||
*(.glue_7t) /* glue thumb to arm code */
|
*(.glue_7t) /* Thumb 到 ARM 代码的胶水代码 */
|
||||||
*(.eh_frame)
|
*(.eh_frame) /* 异常处理帧信息 */
|
||||||
|
|
||||||
KEEP (*(.init))
|
KEEP (*(.init)) /* 保留初始化相关代码 */
|
||||||
KEEP (*(.fini))
|
KEEP (*(.fini)) /* 保留结束相关代码 */
|
||||||
|
|
||||||
. = ALIGN(4);
|
. = ALIGN(4); /* 4字节对齐 */
|
||||||
_etext = .; /* define a global symbols at end of code */
|
_etext = .; /* 代码结束地址 */
|
||||||
} >FLASH
|
} >FLASH /* 放入 FLASH 区域 */
|
||||||
|
|
||||||
/* Constant data goes into FLASH */
|
/* 常量数据段 */
|
||||||
.rodata :
|
.rodata :
|
||||||
{
|
{
|
||||||
. = ALIGN(4);
|
. = ALIGN(4); /* 4字节对齐 */
|
||||||
*(.rodata) /* .rodata sections (constants, strings, etc.) */
|
*(.rodata) /* .rodata 段(常量、字符串等) */
|
||||||
*(.rodata*) /* .rodata* sections (constants, strings, etc.) */
|
*(.rodata*) /* .rodata* 段(常量、字符串等) */
|
||||||
. = ALIGN(4);
|
. = ALIGN(4); /* 4字节对齐 */
|
||||||
} >FLASH
|
} >FLASH /* 放入 FLASH 区域 */
|
||||||
|
|
||||||
|
/* ARM 异常表相关段 */
|
||||||
.ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH
|
.ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH
|
||||||
.ARM : {
|
.ARM : {
|
||||||
__exidx_start = .;
|
__exidx_start = .; /* 异常索引表开始 */
|
||||||
*(.ARM.exidx*)
|
*(.ARM.exidx*) /* ARM 异常索引表 */
|
||||||
__exidx_end = .;
|
__exidx_end = .; /* 异常索引表结束 */
|
||||||
} >FLASH
|
} >FLASH
|
||||||
|
|
||||||
|
/* 初始化数组相关段 */
|
||||||
.preinit_array :
|
.preinit_array :
|
||||||
{
|
{
|
||||||
PROVIDE_HIDDEN (__preinit_array_start = .);
|
PROVIDE_HIDDEN (__preinit_array_start = .); /* 预初始化数组开始 */
|
||||||
KEEP (*(.preinit_array*))
|
KEEP (*(.preinit_array*)) /* 保留预初始化数组 */
|
||||||
PROVIDE_HIDDEN (__preinit_array_end = .);
|
PROVIDE_HIDDEN (__preinit_array_end = .); /* 预初始化数组结束 */
|
||||||
} >FLASH
|
} >FLASH
|
||||||
|
|
||||||
.init_array :
|
.init_array :
|
||||||
{
|
{
|
||||||
PROVIDE_HIDDEN (__init_array_start = .);
|
PROVIDE_HIDDEN (__init_array_start = .); /* 初始化数组开始 */
|
||||||
KEEP (*(SORT(.init_array.*)))
|
KEEP (*(SORT(.init_array.*))) /* 保留排序后的初始化数组 */
|
||||||
KEEP (*(.init_array*))
|
KEEP (*(.init_array*)) /* 保留初始化数组 */
|
||||||
PROVIDE_HIDDEN (__init_array_end = .);
|
PROVIDE_HIDDEN (__init_array_end = .); /* 初始化数组结束 */
|
||||||
} >FLASH
|
} >FLASH
|
||||||
|
|
||||||
.fini_array :
|
.fini_array :
|
||||||
{
|
{
|
||||||
PROVIDE_HIDDEN (__fini_array_start = .);
|
PROVIDE_HIDDEN (__fini_array_start = .); /* 结束数组开始 */
|
||||||
KEEP (*(SORT(.fini_array.*)))
|
KEEP (*(SORT(.fini_array.*))) /* 保留排序后的结束数组 */
|
||||||
KEEP (*(.fini_array*))
|
KEEP (*(.fini_array*)) /* 保留结束数组 */
|
||||||
PROVIDE_HIDDEN (__fini_array_end = .);
|
PROVIDE_HIDDEN (__fini_array_end = .); /* 结束数组结束 */
|
||||||
} >FLASH
|
} >FLASH
|
||||||
|
|
||||||
/* used by the startup to initialize data */
|
/* ------------------------------------------- */
|
||||||
_sidata = LOADADDR(.data);
|
/* RAM 区域段定义 */
|
||||||
|
/* ------------------------------------------- */
|
||||||
|
|
||||||
|
/* 用于启动代码初始化数据 */
|
||||||
|
_sidata = LOADADDR(.data); /* .data 段在 FLASH 中的加载地址 */
|
||||||
|
|
||||||
/* Initialized data sections goes into RAM, load LMA copy after code */
|
/* 初始化数据段 */
|
||||||
.data :
|
.data :
|
||||||
{
|
{
|
||||||
. = ALIGN(4);
|
. = ALIGN(4); /* 4字节对齐 */
|
||||||
_sdata = .; /* create a global symbol at data start */
|
_sdata = .; /* 数据段开始地址 */
|
||||||
*(.data) /* .data sections */
|
*(.data) /* .data 段 */
|
||||||
*(.data*) /* .data* sections */
|
*(.data*) /* .data* 段 */
|
||||||
. = ALIGN(4);
|
. = ALIGN(4); /* 4字节对齐 */
|
||||||
_edata = .; /* define a global symbol at data end */
|
_edata = .; /* 数据段结束地址 */
|
||||||
} >RAM AT> FLASH
|
} >RAM AT> FLASH /* 放入 RAM,加载地址在 FLASH */
|
||||||
|
|
||||||
/* Uninitialized data section */
|
/* 未初始化数据段 */
|
||||||
. = ALIGN(4);
|
. = ALIGN(4); /* 4字节对齐 */
|
||||||
.bss :
|
.bss :
|
||||||
{
|
{
|
||||||
/* This is used by the startup in order to initialize the .bss secion */
|
/* 启动代码使用此符号初始化 .bss 段 */
|
||||||
_sbss = .; /* define a global symbol at bss start */
|
_sbss = .; /* BSS 段开始地址 */
|
||||||
__bss_start__ = _sbss;
|
__bss_start__ = _sbss; /* 兼容符号 */
|
||||||
*(.bss)
|
*(.bss) /* .bss 段 */
|
||||||
*(.bss*)
|
*(.bss*) /* .bss* 段 */
|
||||||
*(COMMON)
|
*(COMMON) /* COMMON 段 */
|
||||||
|
|
||||||
. = ALIGN(4);
|
. = ALIGN(4); /* 4字节对齐 */
|
||||||
_ebss = .; /* define a global symbol at bss end */
|
_ebss = .; /* BSS 段结束地址 */
|
||||||
__bss_end__ = _ebss;
|
__bss_end__ = _ebss; /* 兼容符号 */
|
||||||
} >RAM
|
} >RAM /* 放入 RAM 区域 */
|
||||||
|
|
||||||
/* User_heap_stack section, used to check that there is enough RAM left */
|
/* 用户堆和栈段 */
|
||||||
._user_heap_stack :
|
._user_heap_stack :
|
||||||
{
|
{
|
||||||
. = ALIGN(8);
|
. = ALIGN(8); /* 8字节对齐 */
|
||||||
PROVIDE ( end = . );
|
PROVIDE ( end = . ); /* 程序结束地址 */
|
||||||
PROVIDE ( _end = . );
|
PROVIDE ( _end = . ); /* 程序结束地址(兼容符号) */
|
||||||
. = . + _Min_Heap_Size;
|
. = . + _Min_Heap_Size; /* 堆空间 */
|
||||||
. = . + _Min_Stack_Size;
|
. = . + _Min_Stack_Size; /* 栈空间 */
|
||||||
. = ALIGN(8);
|
. = ALIGN(8); /* 8字节对齐 */
|
||||||
} >RAM
|
} >RAM /* 放入 RAM 区域 */
|
||||||
|
|
||||||
/* RxDecripSection and TxDecripSection for Ethernet DMA */
|
/* 以太网 DMA 相关段 */
|
||||||
.RxDecripSection (NOLOAD) : { *(.RxDecripSection) } >RAM
|
.RxDecripSection (NOLOAD) : { *(.RxDecripSection) } >RAM /* 接收描述符段 */
|
||||||
.TxDecripSection (NOLOAD) : { *(.TxDecripSection) } >RAM
|
.TxDecripSection (NOLOAD) : { *(.TxDecripSection) } >RAM /* 发送描述符段 */
|
||||||
.RxArraySection (NOLOAD) : { *(.RxArraySection) } >RAM
|
.RxArraySection (NOLOAD) : { *(.RxArraySection) } >RAM /* 接收数组段 */
|
||||||
.TxArraySection (NOLOAD) : { *(.TxArraySection) } >RAM
|
.TxArraySection (NOLOAD) : { *(.TxArraySection) } >RAM /* 发送数组段 */
|
||||||
|
|
||||||
. = ALIGN(4);
|
/* 堆起始地址 */
|
||||||
__heap_start__ = .;
|
. = ALIGN(4); /* 4字节对齐 */
|
||||||
|
__heap_start__ = .; /* 堆开始地址 */
|
||||||
|
__heap_end__ = _estack; /* 堆结束地址(栈顶) */
|
||||||
|
|
||||||
/* Remove information from the standard libraries */
|
/* ------------------------------------------- */
|
||||||
|
/* 特殊段处理 */
|
||||||
|
/* ------------------------------------------- */
|
||||||
|
|
||||||
|
/* 从标准库中移除信息 */
|
||||||
/DISCARD/ :
|
/DISCARD/ :
|
||||||
{
|
{
|
||||||
libc.a ( * )
|
libc.a ( * ) /* 移除 libc 库信息 */
|
||||||
libm.a ( * )
|
libm.a ( * ) /* 移除 libm 库信息 */
|
||||||
libgcc.a ( * )
|
libgcc.a ( * ) /* 移除 libgcc 库信息 */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ARM 属性段 */
|
||||||
.ARM.attributes 0 : { *(.ARM.attributes) }
|
.ARM.attributes 0 : { *(.ARM.attributes) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* =========================================== */
|
||||||
|
/* 链接脚本结束 */
|
||||||
|
/* =========================================== */
|
||||||
@ -39,7 +39,7 @@
|
|||||||
{
|
{
|
||||||
"directoryIndex" : 0,
|
"directoryIndex" : 0,
|
||||||
"id" : "rtthread-nano-stm32f407ve::@6890427a1f51a3e7e1df",
|
"id" : "rtthread-nano-stm32f407ve::@6890427a1f51a3e7e1df",
|
||||||
"jsonFile" : "target-rtthread-nano-stm32f407ve-328f41688cea50c58d51.json",
|
"jsonFile" : "target-rtthread-nano-stm32f407ve-b3ff5369662d463ad855.json",
|
||||||
"name" : "rtthread-nano-stm32f407ve",
|
"name" : "rtthread-nano-stm32f407ve",
|
||||||
"projectIndex" : 0
|
"projectIndex" : 0
|
||||||
}
|
}
|
||||||
@ -26,7 +26,7 @@
|
|||||||
"objects" :
|
"objects" :
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"jsonFile" : "codemodel-v2-ed321a30887ff9aeef14.json",
|
"jsonFile" : "codemodel-v2-76e9189c22d8a3d0fe63.json",
|
||||||
"kind" : "codemodel",
|
"kind" : "codemodel",
|
||||||
"version" :
|
"version" :
|
||||||
{
|
{
|
||||||
@ -99,7 +99,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"jsonFile" : "codemodel-v2-ed321a30887ff9aeef14.json",
|
"jsonFile" : "codemodel-v2-76e9189c22d8a3d0fe63.json",
|
||||||
"kind" : "codemodel",
|
"kind" : "codemodel",
|
||||||
"version" :
|
"version" :
|
||||||
{
|
{
|
||||||
@ -27,13 +27,13 @@
|
|||||||
{
|
{
|
||||||
"command" : 0,
|
"command" : 0,
|
||||||
"file" : 0,
|
"file" : 0,
|
||||||
"line" : 74,
|
"line" : 76,
|
||||||
"parent" : 0
|
"parent" : 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command" : 1,
|
"command" : 1,
|
||||||
"file" : 0,
|
"file" : 0,
|
||||||
"line" : 87,
|
"line" : 90,
|
||||||
"parent" : 0
|
"parent" : 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -108,6 +108,10 @@
|
|||||||
"backtrace" : 4,
|
"backtrace" : 4,
|
||||||
"path" : "C:/Users/ZHIZHANKEJI/Downloads/rtthread-nano-4.1.1/rtthread-nano-4.1.1/drivers/STM32F4xx_HAL_Driver/Inc/Legacy"
|
"path" : "C:/Users/ZHIZHANKEJI/Downloads/rtthread-nano-4.1.1/rtthread-nano-4.1.1/drivers/STM32F4xx_HAL_Driver/Inc/Legacy"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"backtrace" : 4,
|
||||||
|
"path" : "C:/Users/ZHIZHANKEJI/Downloads/rtthread-nano-4.1.1/rtthread-nano-4.1.1/drivers/hal"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"backtrace" : 4,
|
"backtrace" : 4,
|
||||||
"path" : "C:/Users/ZHIZHANKEJI/Downloads/rtthread-nano-4.1.1/rtthread-nano-4.1.1/osal/include"
|
"path" : "C:/Users/ZHIZHANKEJI/Downloads/rtthread-nano-4.1.1/rtthread-nano-4.1.1/osal/include"
|
||||||
@ -343,7 +347,11 @@
|
|||||||
212,
|
212,
|
||||||
213,
|
213,
|
||||||
214,
|
214,
|
||||||
216
|
215,
|
||||||
|
216,
|
||||||
|
217,
|
||||||
|
218,
|
||||||
|
220
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -402,6 +410,10 @@
|
|||||||
"backtrace" : 4,
|
"backtrace" : 4,
|
||||||
"path" : "C:/Users/ZHIZHANKEJI/Downloads/rtthread-nano-4.1.1/rtthread-nano-4.1.1/drivers/STM32F4xx_HAL_Driver/Inc/Legacy"
|
"path" : "C:/Users/ZHIZHANKEJI/Downloads/rtthread-nano-4.1.1/rtthread-nano-4.1.1/drivers/STM32F4xx_HAL_Driver/Inc/Legacy"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"backtrace" : 4,
|
||||||
|
"path" : "C:/Users/ZHIZHANKEJI/Downloads/rtthread-nano-4.1.1/rtthread-nano-4.1.1/drivers/hal"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"backtrace" : 4,
|
"backtrace" : 4,
|
||||||
"path" : "C:/Users/ZHIZHANKEJI/Downloads/rtthread-nano-4.1.1/rtthread-nano-4.1.1/osal/include"
|
"path" : "C:/Users/ZHIZHANKEJI/Downloads/rtthread-nano-4.1.1/rtthread-nano-4.1.1/osal/include"
|
||||||
@ -422,8 +434,8 @@
|
|||||||
"language" : "ASM",
|
"language" : "ASM",
|
||||||
"sourceIndexes" :
|
"sourceIndexes" :
|
||||||
[
|
[
|
||||||
215,
|
219,
|
||||||
217
|
221
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@ -681,15 +693,19 @@
|
|||||||
212,
|
212,
|
||||||
213,
|
213,
|
||||||
214,
|
214,
|
||||||
216
|
215,
|
||||||
|
216,
|
||||||
|
217,
|
||||||
|
218,
|
||||||
|
220
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name" : "",
|
"name" : "",
|
||||||
"sourceIndexes" :
|
"sourceIndexes" :
|
||||||
[
|
[
|
||||||
215,
|
219,
|
||||||
217
|
221
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@ -1295,6 +1311,30 @@
|
|||||||
"path" : "drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_utils.c",
|
"path" : "drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_utils.c",
|
||||||
"sourceGroupIndex" : 0
|
"sourceGroupIndex" : 0
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"backtrace" : 1,
|
||||||
|
"compileGroupIndex" : 0,
|
||||||
|
"path" : "drivers/hal/hal.c",
|
||||||
|
"sourceGroupIndex" : 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"backtrace" : 1,
|
||||||
|
"compileGroupIndex" : 0,
|
||||||
|
"path" : "drivers/hal/stm32f4_hal_eth.c",
|
||||||
|
"sourceGroupIndex" : 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"backtrace" : 1,
|
||||||
|
"compileGroupIndex" : 0,
|
||||||
|
"path" : "drivers/hal/stm32f4_hal_i2c.c",
|
||||||
|
"sourceGroupIndex" : 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"backtrace" : 1,
|
||||||
|
"compileGroupIndex" : 0,
|
||||||
|
"path" : "drivers/hal/stm32f4_hal_uart.c",
|
||||||
|
"sourceGroupIndex" : 0
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"backtrace" : 1,
|
"backtrace" : 1,
|
||||||
"compileGroupIndex" : 0,
|
"compileGroupIndex" : 0,
|
||||||
Binary file not shown.
698
build/.ninja_log
698
build/.ninja_log
@ -1,222 +1,478 @@
|
|||||||
# ninja log v7
|
# ninja log v7
|
||||||
142 1077 7943180137189705 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp.c.obj ec32bd437e5ff2d3
|
89 886 7945751160763040 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp.c.obj ec32bd437e5ff2d3
|
||||||
138 1111 7943180137158929 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_crc.c.obj 7b67b62763d73b0b
|
85 724 7945751160720503 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_crc.c.obj 7b67b62763d73b0b
|
||||||
70 932 7943180136477536 CMakeFiles/rtthread-nano-stm32f407ve.dir/board/stm32f407ve/board.c.obj 74cec99e8c18b81a
|
7 290 7945757253711922 CMakeFiles/rtthread-nano-stm32f407ve.dir/board/stm32f407ve/board.c.obj 74cec99e8c18b81a
|
||||||
128 1373 7943180137073882 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cec.c.obj 998e3b769e20291a
|
77 719 7945751160641489 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cec.c.obj 998e3b769e20291a
|
||||||
631 1365 7943180142094790 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac.c.obj a7d9f780effb07df
|
249 1080 7945751162355444 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac.c.obj a7d9f780effb07df
|
||||||
51 1085 7943180136292035 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/main.c.obj a739475447ae0703
|
39 918 7945751160247367 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/main.c.obj a739475447ae0703
|
||||||
76 826 7943180136539019 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c.obj d942fdfe26c0d22f
|
61 830 7945751160481995 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c.obj d942fdfe26c0d22f
|
||||||
1069 2185 7943180146469660 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma2d.c.obj 9b6e4b8841be52d6
|
724 1474 7945751167105304 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma2d.c.obj 9b6e4b8841be52d6
|
||||||
133 870 7943180137104167 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c.obj 3b3fc39cb4c31c4d
|
81 983 7945751160680134 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c.obj 3b3fc39cb4c31c4d
|
||||||
117 1117 7943180136950311 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c.obj 5a35ce9c62bb54e7
|
65 837 7945751160514397 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c.obj 5a35ce9c62bb54e7
|
||||||
120 1104 7943180136980940 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c.obj de7cbcf09b649b3a
|
69 899 7945751160546902 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c.obj de7cbcf09b649b3a
|
||||||
788 1792 7943180143659530 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac_ex.c.obj 5ee8fb7465f9c646
|
291 1313 7945751162781075 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac_ex.c.obj 5ee8fb7465f9c646
|
||||||
826 2537 7943180144045541 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi.c.obj d7f242ef67e4ba09
|
401 1234 7945751163876337 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi.c.obj d7f242ef67e4ba09
|
||||||
870 2141 7943180144483988 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dfsdm.c.obj b5647a7d35e62b49
|
487 1350 7945751164741037 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dfsdm.c.obj b5647a7d35e62b49
|
||||||
932 2832 7943180145103388 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c.obj 3e9bfbe40b51c2a6
|
719 1486 7945751167062001 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c.obj 3e9bfbe40b51c2a6
|
||||||
124 830 7943180137015135 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c.obj 67d1b5447555fae5
|
73 908 7945751160593066 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c.obj 67d1b5447555fae5
|
||||||
616 1267 7943180141945160 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp_ex.c.obj 9b8790b0c4eb4b07
|
244 1362 7945751162300466 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp_ex.c.obj 9b8790b0c4eb4b07
|
||||||
830 2361 7943180144080834 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi_ex.c.obj 8ddcdd0f3f02bb40
|
406 1197 7945751163929480 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi_ex.c.obj 8ddcdd0f3f02bb40
|
||||||
1117 2431 7943180146959623 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c.obj 22f6f9375d39f151
|
899 1859 7945751168857680 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c.obj 22f6f9375d39f151
|
||||||
1373 2725 7943180149514937 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpsmbus_ex.c.obj 757d6c374d1b319d
|
1080 1991 7945751170669483 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpsmbus_ex.c.obj 757d6c374d1b319d
|
||||||
1093 2730 7943180146698774 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.c.obj a6dce94af40a267
|
837 1647 7945751168239949 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.c.obj a6dce94af40a267
|
||||||
1085 2175 7943180146638284 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dsi.c.obj 81ba010cfd89e4b1
|
830 1658 7945751168169360 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dsi.c.obj 81ba010cfd89e4b1
|
||||||
1792 2697 7943180153692632 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash.c.obj 4db31717a34b706
|
1235 2088 7945751172215403 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash.c.obj 4db31717a34b706
|
||||||
1111 2106 7943180146899301 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c.obj fb2b7a54d14ec5f9
|
886 1721 7945751168732219 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c.obj fb2b7a54d14ec5f9
|
||||||
1436 2547 7943180150147324 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c.obj 1f1eac1996d52611
|
1197 2001 7945751171841391 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c.obj 1f1eac1996d52611
|
||||||
1099 2170 7943180146773287 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c.obj bac3a78877e87962
|
849 1546 7945751168351519 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c.obj bac3a78877e87962
|
||||||
1104 2273 7943180146822529 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c.obj 22e34c6a32015555
|
881 1572 7945751168669769 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c.obj 22e34c6a32015555
|
||||||
1267 2158 7943180148454166 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c_ex.c.obj 9d7e51ba68c30cd4
|
918 1759 7945751169046363 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c_ex.c.obj 9d7e51ba68c30cd4
|
||||||
1122 2527 7943180147000476 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c.c.obj bf384bc8a53e2f45
|
908 1710 7945751168948785 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c.c.obj bf384bc8a53e2f45
|
||||||
1365 2827 7943180149434992 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpsmbus.c.obj 23a425d7528b6900
|
983 1996 7945751169695959 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpsmbus.c.obj 23a425d7528b6900
|
||||||
1077 2195 7943180146557545 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c.obj efc21410ae6079c4
|
803 1663 7945751167902833 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c.obj efc21410ae6079c4
|
||||||
2107 2823 7943180156849473 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash_ex.c.obj 7edf1ba198e39bf1
|
1314 2068 7945751173001187 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash_ex.c.obj 7edf1ba198e39bf1
|
||||||
2141 2980 7943180157196764 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hcd.c.obj 3dd3ef8f43a8eead
|
1350 2202 7945751173369362 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hcd.c.obj 3dd3ef8f43a8eead
|
||||||
2170 4160 7943180157479844 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.c.obj f6feb20988a7ae46
|
1474 2217 7945751174613523 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.c.obj f6feb20988a7ae46
|
||||||
2175 3444 7943180157541074 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s.c.obj 6903465607745954
|
1486 2586 7945751174733083 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s.c.obj 6903465607745954
|
||||||
2158 4574 7943180157366189 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.c.obj a3eec757a8e46d2
|
1362 2458 7945751173495319 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.c.obj a3eec757a8e46d2
|
||||||
2431 3428 7943180160091685 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc.c.obj a8b40b715887a0c4
|
1664 2463 7945751176502617 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc.c.obj a8b40b715887a0c4
|
||||||
2273 3016 7943180158521249 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_iwdg.c.obj 54463e9389efea0
|
1647 2697 7945751176336691 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_iwdg.c.obj 54463e9389efea0
|
||||||
2527 4414 7943180161056456 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc_ex.c.obj c8d3a1d08a3040d4
|
1710 2237 7945751176970882 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc_ex.c.obj c8d3a1d08a3040d4
|
||||||
2361 4045 7943180159390437 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_lptim.c.obj fd572b5c7192800
|
1659 2252 7945751176456594 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_lptim.c.obj fd572b5c7192800
|
||||||
2195 3367 7943180157726240 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_irda.c.obj 4794199779ac428e
|
1572 2370 7945751175594092 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_irda.c.obj 4794199779ac428e
|
||||||
2186 3172 7943180157633711 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s_ex.c.obj 15760851b50e55bb
|
1546 2549 7945751175327376 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s_ex.c.obj 15760851b50e55bb
|
||||||
2730 3484 7943180163088777 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c.obj d88dd78ee860eaab
|
1996 2951 7945751179831311 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c.obj d88dd78ee860eaab
|
||||||
2697 3962 7943180162764360 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nor.c.obj 8b2c422d8327b9eb
|
1859 2749 7945751178464323 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nor.c.obj 8b2c422d8327b9eb
|
||||||
2725 4069 7943180163040626 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pccard.c.obj c9a323517e2a5890
|
1991 3008 7945751179782288 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pccard.c.obj c9a323517e2a5890
|
||||||
2547 3753 7943180161256526 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nand.c.obj af9b2dfbcef2122a
|
1759 2724 7945751177459801 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nand.c.obj af9b2dfbcef2122a
|
||||||
2537 3395 7943180161161816 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_mmc.c.obj f0544ba21b6b59a6
|
1721 2757 7945751177077625 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_mmc.c.obj f0544ba21b6b59a6
|
||||||
2828 3956 7943180164062635 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c.obj 6442bf37ea9c7275
|
2068 2804 7945751180551186 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c.obj 6442bf37ea9c7275
|
||||||
2980 3842 7943180165586461 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_qspi.c.obj 4e7d53824d53971a
|
2202 3048 7945751181887385 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_qspi.c.obj 4e7d53824d53971a
|
||||||
2823 4140 7943180164009339 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c.obj 3c64e0a1d0297ed8
|
2002 2841 7945751179882903 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c.obj 3c64e0a1d0297ed8
|
||||||
2832 3740 7943180164108028 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c.obj 892fab1d70844ff5
|
2088 2945 7945751180753859 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c.obj 892fab1d70844ff5
|
||||||
3017 4492 7943180165952739 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c.obj da85fd8d4a93b687
|
2217 3096 7945751182032431 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c.obj da85fd8d4a93b687
|
||||||
3173 4110 7943180167510918 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c.obj c49a5bb55e2babff
|
2237 3125 7945751182236081 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c.obj c49a5bb55e2babff
|
||||||
3444 4751 7943180170221971 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai.c.obj 4fed24b2595817ed
|
2464 3227 7945751184505770 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai.c.obj 4fed24b2595817ed
|
||||||
3428 4684 7943180170070030 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.c.obj 9dc0faa43c327fa4
|
2459 3198 7945751184455778 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.c.obj 9dc0faa43c327fa4
|
||||||
3484 4720 7943180170625080 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai_ex.c.obj 590e23077f3b9348
|
2549 3202 7945751185352604 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai_ex.c.obj 590e23077f3b9348
|
||||||
3368 4455 7943180169461762 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c.obj aed1b3adc593b6d6
|
2252 3166 7945751182383990 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c.obj aed1b3adc593b6d6
|
||||||
3962 4892 7943180175408452 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spdifrx.c.obj c6cbc6f0dba48072
|
2757 3453 7945751187441495 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spdifrx.c.obj c6cbc6f0dba48072
|
||||||
3395 4064 7943180169736951 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.c.obj 421167a91f0d8c4a
|
2370 3150 7945751183572707 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.c.obj 421167a91f0d8c4a
|
||||||
3753 4329 7943180173320380 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sdram.c.obj 31a6ffa192936b1c
|
2697 3396 7945751186842145 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sdram.c.obj 31a6ffa192936b1c
|
||||||
3740 4726 7943180173191834 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sd.c.obj 48d13ff55094e14b
|
2586 3593 7945751185722364 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sd.c.obj 48d13ff55094e14b
|
||||||
3842 5425 7943180174212075 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_smartcard.c.obj 5833fd2b23c08fbb
|
2725 3462 7945751187120263 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_smartcard.c.obj 5833fd2b23c08fbb
|
||||||
4064 5132 7943180176426807 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sram.c.obj ca7da2a388807265
|
2842 3510 7945751188281931 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sram.c.obj ca7da2a388807265
|
||||||
3956 4828 7943180175346354 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_smbus.c.obj 5a7c8c8c851a69ef
|
2749 3556 7945751187369245 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_smbus.c.obj 5a7c8c8c851a69ef
|
||||||
4492 4844 7943180180706719 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_dac.c.obj a54778e5108e8ae4
|
3166 3615 7945751191535733 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_dac.c.obj a54778e5108e8ae4
|
||||||
4414 4859 7943180179929131 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.c.obj 50998ca7fabb9903
|
3126 3521 7945751191129735 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.c.obj 50998ca7fabb9903
|
||||||
4720 5093 7943180182986260 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_exti.c.obj 6447a34876204847
|
3227 3603 7945751192143931 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_exti.c.obj 6447a34876204847
|
||||||
4574 4864 7943180181524757 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_dma.c.obj 37cbfa07fbb26c18
|
3198 3516 7945751191850761 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_dma.c.obj 37cbfa07fbb26c18
|
||||||
4455 4856 7943180180337359 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_crc.c.obj 4f8370cf146452ad
|
3150 3539 7945751191358377 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_crc.c.obj 4f8370cf146452ad
|
||||||
4844 5549 7943180184224414 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_i2c.c.obj fca8f577cc984d77
|
3516 3885 7945751195028039 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_i2c.c.obj fca8f577cc984d77
|
||||||
4045 4802 7943180176231550 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c.obj 1e10b83029952754
|
2804 3729 7945751187903101 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c.obj 1e10b83029952754
|
||||||
4860 5175 7943180184378596 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_pwr.c.obj d7f8f8b7d246ba34
|
3539 3898 7945751195265329 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_pwr.c.obj d7f8f8b7d246ba34
|
||||||
4864 5187 7943180184425710 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_rcc.c.obj aecc8901bb8350dd
|
3557 3772 7945751195440718 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_rcc.c.obj aecc8901bb8350dd
|
||||||
4868 5430 7943180184456708 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_rng.c.obj b9e9b184243348ba
|
3593 3850 7945751195801264 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_rng.c.obj b9e9b184243348ba
|
||||||
4878 5184 7943180184564401 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_rtc.c.obj a1336754039ab4b4
|
3603 3916 7945751195895905 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_rtc.c.obj a1336754039ab4b4
|
||||||
4751 5068 7943180183298745 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_fmpi2c.c.obj 63ed7c03102d0ea1
|
3453 3718 7945751194396158 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_fmpi2c.c.obj 63ed7c03102d0ea1
|
||||||
5068 5260 7943180186470337 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_tim.c.obj d85f4f868a0a06ad
|
3713 4005 7945751197002097 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_tim.c.obj d85f4f868a0a06ad
|
||||||
5093 5256 7943180186717474 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usart.c.obj f8dd6b1d2ce943bf
|
3718 3934 7945751197047502 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usart.c.obj f8dd6b1d2ce943bf
|
||||||
4973 5251 7943180185515693 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_spi.c.obj e98c4b2b2c7d603e
|
3625 3869 7945751196116825 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_spi.c.obj e98c4b2b2c7d603e
|
||||||
4140 5242 7943180177191945 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c.obj 6f157dcd5cf0df05
|
3008 3857 7945751189949109 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c.obj 6f157dcd5cf0df05
|
||||||
4856 5169 7943180184347702 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_lptim.c.obj 26c473b0d770a33c
|
3521 3880 7945751195080014 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_lptim.c.obj 26c473b0d770a33c
|
||||||
4726 6003 7943180183049118 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_fmc.c.obj 36a7c0acd8d2cd5a
|
3396 4080 7945751193832083 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_fmc.c.obj 36a7c0acd8d2cd5a
|
||||||
5175 5554 7943180187535153 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/clock.c.obj 75435b025e2868a9
|
3763 4139 7945751197504082 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/clock.c.obj 75435b025e2868a9
|
||||||
4110 4868 7943180176878214 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c.obj 6fd30e36ceb4c47f
|
2951 3740 7945751189379169 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c.obj 6fd30e36ceb4c47f
|
||||||
4684 4973 7943180182624912 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_dma2d.c.obj 3ced83f24c6147d0
|
3203 3625 7945751191890780 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_dma2d.c.obj 3ced83f24c6147d0
|
||||||
4829 5179 7943180184063422 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_gpio.c.obj 8dfa52928938b44d
|
3510 3763 7945751194969992 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_gpio.c.obj 8dfa52928938b44d
|
||||||
5184 5621 7943180187626108 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/cpu.c.obj 562cccc135990eb6
|
3850 4134 7945751198368970 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/cpu.c.obj 562cccc135990eb6
|
||||||
4330 5246 7943180179084590 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c.obj b3749c088dd6291f
|
3096 3713 7945751190827682 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c.obj b3749c088dd6291f
|
||||||
5179 5561 7943180187580745 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/components.c.obj 166b9d3638e62f2e
|
3772 4049 7945751197593460 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/components.c.obj 166b9d3638e62f2e
|
||||||
5220 5625 7943180187995089 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/idle.c.obj 1f9a1e802122aaf9
|
3870 4183 7945751198570455 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/idle.c.obj 1f9a1e802122aaf9
|
||||||
4160 5220 7943180177383214 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_usart.c.obj 4b1d09a424db4d29
|
3048 3929 7945751190351627 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_usart.c.obj 4b1d09a424db4d29
|
||||||
4803 5545 7943180183815805 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_fsmc.c.obj 2ab8981c9d898a37
|
3462 4201 7945751194496192 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_fsmc.c.obj 2ab8981c9d898a37
|
||||||
4069 4878 7943180176477319 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c.obj 2685d8e90bb9d5bf
|
2946 4014 7945751189327347 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c.obj 2685d8e90bb9d5bf
|
||||||
5246 5629 7943180188254758 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/irq.c.obj f74905ca255238d6
|
3885 4172 7945751198722215 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/irq.c.obj f74905ca255238d6
|
||||||
5256 5994 7943180188351314 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/mem.c.obj c702f077e74b418c
|
3916 4267 7945751199029369 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/mem.c.obj c702f077e74b418c
|
||||||
5260 5750 7943180188386874 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/memheap.c.obj 1a94e850b2781de1
|
3929 4196 7945751199154104 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/memheap.c.obj 1a94e850b2781de1
|
||||||
5550 6120 7943180191280161 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/signal.c.obj 1a2e8bc02b2d367d
|
4049 4364 7945751200356433 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/signal.c.obj 1a2e8bc02b2d367d
|
||||||
5545 5799 7943180191228154 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/scheduler.c.obj 46baecb8af8850aa
|
4014 4313 7945751200005343 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/scheduler.c.obj 46baecb8af8850aa
|
||||||
5187 5999 7943180187656721 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/device.c.obj fe52a72b60a793b7
|
3857 4353 7945751198440756 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/device.c.obj fe52a72b60a793b7
|
||||||
5555 5910 7943180191336117 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/slab.c.obj 15a78fa3e394ce7b
|
4080 4347 7945751200670615 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/slab.c.obj 15a78fa3e394ce7b
|
||||||
5425 6146 7943180190045073 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/mempool.c.obj 7515345bdbfc9116
|
3934 4250 7945751199212313 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/mempool.c.obj 7515345bdbfc9116
|
||||||
5750 5990 7943180193280444 CMakeFiles/rtthread-nano-stm32f407ve.dir/osal/src/rtthread/osal_log.c.obj 4ff6ea1d61c147fb
|
4201 4473 7945751201887925 CMakeFiles/rtthread-nano-stm32f407ve.dir/osal/src/rtthread/osal_log.c.obj 4ff6ea1d61c147fb
|
||||||
5621 6054 7943180191992457 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/timer.c.obj 606e3f3ade10401c
|
4139 4382 7945751201268658 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/timer.c.obj 606e3f3ade10401c
|
||||||
5799 6063 7943180193777323 CMakeFiles/rtthread-nano-stm32f407ve.dir/osal/src/rtthread/osal_mem.c.obj f256a478633bcd2d
|
4245 4483 7945751202320192 CMakeFiles/rtthread-nano-stm32f407ve.dir/osal/src/rtthread/osal_mem.c.obj f256a478633bcd2d
|
||||||
4892 6013 7943180184704020 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_sdmmc.c.obj 2a9a1aefe09ed02e
|
3615 4245 7945751196026339 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_sdmmc.c.obj 2a9a1aefe09ed02e
|
||||||
5877 6248 7943180194558350 CMakeFiles/rtthread-nano-stm32f407ve.dir/osal/src/rtthread/osal_sem.c.obj d1661090bb9ef5a
|
4313 4616 7945751202999286 CMakeFiles/rtthread-nano-stm32f407ve.dir/osal/src/rtthread/osal_sem.c.obj d1661090bb9ef5a
|
||||||
5700 5814 7943180192790667 CMakeFiles/rtthread-nano-stm32f407ve.dir/osal/src/rtthread/osal_irq.c.obj 509367ee7808c178
|
4196 4512 7945751201835382 CMakeFiles/rtthread-nano-stm32f407ve.dir/osal/src/rtthread/osal_irq.c.obj 509367ee7808c178
|
||||||
5561 6254 7943180191395845 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/thread.c.obj 71a3438a99625ef4
|
4134 4425 7945751201206540 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/thread.c.obj 71a3438a99625ef4
|
||||||
5814 6059 7943180193928635 CMakeFiles/rtthread-nano-stm32f407ve.dir/osal/src/rtthread/osal_mq.c.obj 3efee89e5ef87631
|
4250 4517 7945751202365606 CMakeFiles/rtthread-nano-stm32f407ve.dir/osal/src/rtthread/osal_mq.c.obj 3efee89e5ef87631
|
||||||
5918 6150 7943180194956542 CMakeFiles/rtthread-nano-stm32f407ve.dir/osal/src/rtthread/osal_timer.c.obj ff6c0f8dda2ff201
|
4337 4592 7945751203239782 CMakeFiles/rtthread-nano-stm32f407ve.dir/osal/src/rtthread/osal_timer.c.obj ff6c0f8dda2ff201
|
||||||
5170 6474 7943180187489680 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_utils.c.obj 95bcfcae853cb167
|
3740 4342 7945751197268326 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_utils.c.obj 95bcfcae853cb167
|
||||||
5871 6243 7943180194494994 CMakeFiles/rtthread-nano-stm32f407ve.dir/osal/src/rtthread/osal_mutex.c.obj 703ab8feef668a86
|
4267 4587 7945751202539539 CMakeFiles/rtthread-nano-stm32f407ve.dir/osal/src/rtthread/osal_mutex.c.obj 703ab8feef668a86
|
||||||
5629 5877 7943180192078307 CMakeFiles/rtthread-nano-stm32f407ve.dir/osal/src/rtthread/osal_event.c.obj 6cb97f9fb9453ecd
|
4183 4376 7945751201688495 CMakeFiles/rtthread-nano-stm32f407ve.dir/osal/src/rtthread/osal_event.c.obj 6cb97f9fb9453ecd
|
||||||
5251 6066 7943180188295471 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/kservice.c.obj 883074ad13656e9
|
3899 4359 7945751198853235 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/kservice.c.obj 883074ad13656e9
|
||||||
5242 5918 7943180188203043 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/ipc.c.obj abf7c47a8c0bc2f7
|
3880 4337 7945751198674976 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/ipc.c.obj abf7c47a8c0bc2f7
|
||||||
5910 6415 7943180194885524 CMakeFiles/rtthread-nano-stm32f407ve.dir/osal/src/rtthread/osal_thread.c.obj 1540becc86c77a32
|
4325 4597 7945751203116302 CMakeFiles/rtthread-nano-stm32f407ve.dir/osal/src/rtthread/osal_thread.c.obj 1540becc86c77a32
|
||||||
5625 5871 7943180192037917 CMakeFiles/rtthread-nano-stm32f407ve.dir/osal/src/rtthread/osal_core.c.obj 3cf33e14346500f1
|
4172 4417 7945751201587959 CMakeFiles/rtthread-nano-stm32f407ve.dir/osal/src/rtthread/osal_core.c.obj 3cf33e14346500f1
|
||||||
5430 5700 7943180190083830 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/object.c.obj 282b916c54a7e520
|
4005 4325 7945751199915507 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/object.c.obj 282b916c54a7e520
|
||||||
5132 5933 7943180187109105 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c.obj bda4bfa63da8e5d1
|
3729 4506 7945751197159868 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c.obj bda4bfa63da8e5d1
|
||||||
7910 8061 7943180214881768 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f407xx.s.obj def0faec2571c85
|
6102 6259 7945751220889696 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/libcpu/arm/cortex-m4/context_gcc.S.obj f182a1ab71ead9bf
|
||||||
7924 8217 7943180215031628 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/libcpu/arm/cortex-m4/context_gcc.S.obj f182a1ab71ead9bf
|
5982 6219 7945751219680458 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/port/sys_arch.c.obj c76bb91cdcdcc4a7
|
||||||
7902 8378 7943180214803330 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/port/sys_arch.c.obj c76bb91cdcdcc4a7
|
6022 6296 7945751220095674 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/libcpu/arm/cortex-m4/cpuport.c.obj 9344b12118f1440
|
||||||
7916 8213 7943180214938613 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/libcpu/arm/cortex-m4/cpuport.c.obj 9344b12118f1440
|
5988 6436 7945751219746043 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c.obj 635ab12c5509b5d
|
||||||
7906 8319 7943180214850661 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c.obj 635ab12c5509b5d
|
12 331 7945757253767282 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/port/drv_eth.c.obj f9d0508007c45d16
|
||||||
7893 8405 7943180214710197 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/port/drv_eth.c.obj f9d0508007c45d16
|
10 186 7945762950502805 build.ninja 1bf701faaf99a9f5
|
||||||
27 360 7943183704015794 build.ninja 1bf701faaf99a9f5
|
331 957 7945757256954871 rtthread-nano-stm32f407ve.elf a32c0a3996d89715
|
||||||
8406 9442 7943180219842902 rtthread-nano-stm32f407ve.elf a32c0a3996d89715
|
4353 4689 7945751203397057 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/api/err.c.obj afb75d425b50f9e9
|
||||||
5994 6529 7943180195724810 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/api/err.c.obj afb75d425b50f9e9
|
4364 4682 7945751203510323 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/api/netbuf.c.obj 70c14cf595e75cbe
|
||||||
6004 6303 7943180195826888 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/api/netbuf.c.obj 70c14cf595e75cbe
|
4506 4887 7945751204927649 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/altcp_tcp.c.obj 73a81af36ca2d0c3
|
||||||
6146 6397 7943180197247010 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/altcp_tcp.c.obj 73a81af36ca2d0c3
|
4473 4869 7945751204595367 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/altcp.c.obj a01e9f3c53444666
|
||||||
6067 6404 7943180196454801 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/altcp.c.obj a01e9f3c53444666
|
4377 4748 7945751203633178 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/api/netdb.c.obj 729b8df87d77cc78
|
||||||
6013 6525 7943180195905895 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/api/netdb.c.obj 729b8df87d77cc78
|
4342 4734 7945751203283423 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/api/api_lib.c.obj 654ff8b1f8c0f719
|
||||||
5934 6411 7943180195126041 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/api/api_lib.c.obj 654ff8b1f8c0f719
|
4359 4665 7945751203463223 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/api/if_api.c.obj 711d802816741d98
|
||||||
5999 6298 7943180195775423 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/api/if_api.c.obj 711d802816741d98
|
4382 4678 7945751203699134 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/api/netifapi.c.obj 201690ec978d3bf1
|
||||||
6054 6321 7943180196315676 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/api/netifapi.c.obj 201690ec978d3bf1
|
4348 4760 7945751203345534 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/api/api_msg.c.obj f53db7bcc40e3994
|
||||||
5990 6534 7943180195679356 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/api/api_msg.c.obj f53db7bcc40e3994
|
4513 4850 7945751204991904 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/def.c.obj cb7608266d8b7454
|
||||||
6150 6463 7943180197291703 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/def.c.obj cb7608266d8b7454
|
4483 4802 7945751204701669 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/altcp_alloc.c.obj 13ad071df46343c2
|
||||||
6120 6636 7943180196990960 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/altcp_alloc.c.obj 13ad071df46343c2
|
4425 4753 7945751204117718 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/api/tcpip.c.obj 62388740b31a3c49
|
||||||
6063 6601 7943180196408941 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/api/tcpip.c.obj 62388740b31a3c49
|
4665 4975 7945751206518217 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv4/autoip.c.obj 7c471e44b26a9ff1
|
||||||
6321 6618 7943180199000437 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv4/autoip.c.obj 7c471e44b26a9ff1
|
4587 4994 7945751205746493 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/inet_chksum.c.obj e548bd0aaf68842f
|
||||||
6248 7043 7943180198267525 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/inet_chksum.c.obj e548bd0aaf68842f
|
4597 4947 7945751205838976 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ip.c.obj 90d97fb2731e6dd6
|
||||||
6298 6622 7943180198766155 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ip.c.obj 90d97fb2731e6dd6
|
4417 4942 7945751204037846 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/api/sockets.c.obj 33e1f63b2e1d2c00
|
||||||
6059 6452 7943180196378255 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/api/sockets.c.obj 33e1f63b2e1d2c00
|
4734 5106 7945751207212247 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv4/igmp.c.obj 108271646f8c7021
|
||||||
6415 6716 7943180199938837 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv4/igmp.c.obj 108271646f8c7021
|
4753 5117 7945751207400146 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv4/ip4_addr.c.obj f589e0418e9936f8
|
||||||
6463 7243 7943180200410556 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv4/ip4_addr.c.obj f589e0418e9936f8
|
4678 5132 7945751206648895 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv4/dhcp.c.obj ca026138b3bdb04c
|
||||||
6397 7054 7943180199757029 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv4/dhcp.c.obj ca026138b3bdb04c
|
4850 5297 7945751208373672 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv6/ethip6.c.obj fbbc2cd4718183aa
|
||||||
6529 6799 7943180201081321 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv6/ethip6.c.obj fbbc2cd4718183aa
|
4802 5142 7945751207882196 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv6/dhcp6.c.obj 63e6da2d20806b53
|
||||||
6525 6886 7943180201039892 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv6/dhcp6.c.obj 63e6da2d20806b53
|
4869 5136 7945751208555989 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv6/icmp6.c.obj a7f09de9398d8adb
|
||||||
6534 6795 7943180201127723 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv6/icmp6.c.obj a7f09de9398d8adb
|
4517 4937 7945751205041369 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/dns.c.obj b06aee5aaa719706
|
||||||
6243 6606 7943180198221548 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/dns.c.obj b06aee5aaa719706
|
4760 5076 7945751207471320 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv4/ip4_frag.c.obj e96d635675f8a52c
|
||||||
6475 6953 7943180200535225 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv4/ip4_frag.c.obj e96d635675f8a52c
|
4937 5189 7945751209240995 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv6/ip6.c.obj 748e64f12e617ae5
|
||||||
6602 6859 7943180201805387 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv6/ip6.c.obj 748e64f12e617ae5
|
4616 5043 7945751206031947 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv4/acd.c.obj 94e60c76ec87fb48
|
||||||
6303 6784 7943180198816843 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv4/acd.c.obj 94e60c76ec87fb48
|
4689 4980 7945751206766871 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv4/icmp.c.obj 28c42a1dbc2e46c
|
||||||
6411 6789 7943180199893361 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv4/icmp.c.obj 28c42a1dbc2e46c
|
4749 5125 7945751207346361 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv4/ip4.c.obj 52b492a19b0ea703
|
||||||
6452 6957 7943180200301732 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv4/ip4.c.obj 52b492a19b0ea703
|
4592 4969 7945751205786505 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/init.c.obj 9e6a477e678e050c
|
||||||
6254 6597 7943180198328159 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/init.c.obj 9e6a477e678e050c
|
4682 5097 7945751206696651 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv4/etharp.c.obj 22282a1c03b5d97
|
||||||
6404 7102 7943180199827795 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv4/etharp.c.obj 22282a1c03b5d97
|
4975 5183 7945751209615604 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv6/nd6.c.obj 50d42a98ad82dd70
|
||||||
6636 6890 7943180202150423 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv6/nd6.c.obj 50d42a98ad82dd70
|
4948 5292 7945751209346399 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv6/ip6_frag.c.obj dc43690ca12bd5c1
|
||||||
6618 6894 7943180201968627 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv6/ip6_frag.c.obj dc43690ca12bd5c1
|
4969 5240 7945751209556298 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv6/mld6.c.obj a43a9514fa0b6113
|
||||||
6623 6946 7943180202014123 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv6/mld6.c.obj a43a9514fa0b6113
|
4888 5147 7945751208742552 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv6/inet6.c.obj d9223f9feea70fcd
|
||||||
6597 6941 7943180201761021 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv6/inet6.c.obj d9223f9feea70fcd
|
4943 5171 7945751209290866 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv6/ip6_addr.c.obj cacc888a452fc8a4
|
||||||
6607 6855 7943180201856008 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv6/ip6_addr.c.obj cacc888a452fc8a4
|
4980 5223 7945751209668438 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/mem.c.obj d4aa79df81cc5e6a
|
||||||
6716 7037 7943180202941052 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/mem.c.obj d4aa79df81cc5e6a
|
4994 5434 7945751209814912 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/memp.c.obj 144625baf787c249
|
||||||
6784 7360 7943180203631021 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/memp.c.obj 144625baf787c249
|
5106 5466 7945751210920919 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/stats.c.obj e913f73f793179f5
|
||||||
6855 7211 7943180204335740 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/stats.c.obj e913f73f793179f5
|
5118 5430 7945751211048688 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/sys.c.obj 13279b10f44756e
|
||||||
6859 7123 7943180204381154 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/sys.c.obj 13279b10f44756e
|
5043 5400 7945751210298391 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/netif.c.obj 580e36e161d6950e
|
||||||
6789 7142 7943180203676770 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/netif.c.obj 580e36e161d6950e
|
5076 5664 7945751210636398 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/pbuf.c.obj d355af7d824fc99f
|
||||||
6795 7480 7943180203739045 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/pbuf.c.obj d355af7d824fc99f
|
5097 5461 7945751210841035 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/raw.c.obj b63d4f0d0477ff1e
|
||||||
6799 7115 7943180203770227 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/raw.c.obj b63d4f0d0477ff1e
|
5171 5557 7945751211582557 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/bridgeif.c.obj ea9d036732f48bf4
|
||||||
6953 7368 7943180205320165 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/bridgeif.c.obj ea9d036732f48bf4
|
5142 5598 7945751211281499 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/timeouts.c.obj 39a11e74360ce5e9
|
||||||
6941 7365 7943180205204219 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/timeouts.c.obj 39a11e74360ce5e9
|
5147 5479 7945751211340020 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/udp.c.obj 1035d946805bbda2
|
||||||
6946 7356 7943180205249590 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/udp.c.obj 1035d946805bbda2
|
5137 5625 7945751211238409 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/tcp_out.c.obj e47e19b2db20970e
|
||||||
6894 7611 7943180204729392 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/tcp_out.c.obj e47e19b2db20970e
|
5292 5674 7945751212780023 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/lowpan6_common.c.obj b97d708f02705aa1
|
||||||
7102 7437 7943180206809173 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/lowpan6_common.c.obj b97d708f02705aa1
|
5189 5502 7945751211758561 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ethernet.c.obj 46e4b1db856f4abe
|
||||||
7037 7622 7943180206157244 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ethernet.c.obj 46e4b1db856f4abe
|
5223 5643 7945751212093145 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/lowpan6.c.obj 9315b81429ae0671
|
||||||
7044 7708 7943180206218049 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/lowpan6.c.obj 9315b81429ae0671
|
5183 5552 7945751211703642 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/bridgeif_fdb.c.obj 6f07c80c0ad8ff78
|
||||||
6957 7372 7943180205365634 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/bridgeif_fdb.c.obj 6f07c80c0ad8ff78
|
5240 5734 7945751212265221 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/lowpan6_ble.c.obj 34c38e9d19e53043
|
||||||
7054 7446 7943180206319903 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/lowpan6_ble.c.obj 34c38e9d19e53043
|
5125 5669 7945751211123038 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/tcp.c.obj 6e4e41e56dbe5844
|
||||||
6886 7376 7943180204653774 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/tcp.c.obj 6e4e41e56dbe5844
|
5132 5610 7945751211192463 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/tcp_in.c.obj 82728f203100f04c
|
||||||
6890 7590 7943180204689078 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/tcp_in.c.obj 82728f203100f04c
|
5400 5814 7945751213869869 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/ccp.c.obj de4fe8962b6036de
|
||||||
7123 7442 7943180207021852 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/ccp.c.obj de4fe8962b6036de
|
5297 5678 7945751212843231 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/auth.c.obj ff8a5d095673156c
|
||||||
7115 7631 7943180206944849 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/auth.c.obj ff8a5d095673156c
|
5430 5777 7945751214164965 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/chap-md5.c.obj d545ade2e8d55a0f
|
||||||
7142 7606 7943180207209946 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/chap-md5.c.obj d545ade2e8d55a0f
|
5434 5803 7945751214211155 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/chap-new.c.obj 8887475f948dec1d
|
||||||
7211 7626 7943180207892222 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/chap-new.c.obj 8887475f948dec1d
|
5461 5767 7945751214475547 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/chap_ms.c.obj e9dea8de70762fd4
|
||||||
7243 7515 7943180208209903 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/chap_ms.c.obj e9dea8de70762fd4
|
5466 5923 7945751214538930 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/demand.c.obj 7f9e783cc1e443b
|
||||||
7356 8132 7943180209349625 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/demand.c.obj 7f9e783cc1e443b
|
5480 5900 7945751214663616 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/eap.c.obj 7c751126dd2ab833
|
||||||
7361 7762 7943180209392822 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/eap.c.obj 7c751126dd2ab833
|
5552 5907 7945751215391772 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/eui64.c.obj 5db9bc6a6f350963
|
||||||
7369 7848 7943180209471191 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/eui64.c.obj 5db9bc6a6f350963
|
5502 5917 7945751214895732 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/ecp.c.obj fb8eb68674bc93c7
|
||||||
7365 7659 7943180209439248 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/ecp.c.obj fb8eb68674bc93c7
|
5557 5937 7945751215444916 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/fsm.c.obj 3d7d59ada644d9fa
|
||||||
7373 7669 7943180209516868 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/fsm.c.obj 3d7d59ada644d9fa
|
5598 5960 7945751215852827 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/ipcp.c.obj 677d81f01d8ef546
|
||||||
7376 7649 7943180209547751 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/ipcp.c.obj 677d81f01d8ef546
|
5664 6108 7945751216514382 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/mppe.c.obj 8ceb4b58e294402c
|
||||||
7481 7798 7943180210589838 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/mppe.c.obj 8ceb4b58e294402c
|
5669 5982 7945751216564930 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/multilink.c.obj 62c56122bb65ed6c
|
||||||
7515 7853 7943180210942253 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/multilink.c.obj 62c56122bb65ed6c
|
5610 5931 7945751215969552 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/ipv6cp.c.obj d9b366fc2ac5290a
|
||||||
7437 7749 7943180210158497 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/ipv6cp.c.obj d9b366fc2ac5290a
|
5644 5911 7945751216304828 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/magic.c.obj 4c90c1cacd25abab
|
||||||
7446 7902 7943180210255110 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/magic.c.obj 4c90c1cacd25abab
|
5625 5965 7945751216123475 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/lcp.c.obj c958349e003fdc58
|
||||||
7442 7738 7943180210210839 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/lcp.c.obj c958349e003fdc58
|
5674 5942 7945751216614028 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/polarssl/arc4.c.obj 69ab292aa02e24d3
|
||||||
7591 8042 7943180211697517 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/polarssl/arc4.c.obj 69ab292aa02e24d3
|
5907 6190 7945751218932804 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/pppoe.c.obj d3b8c2433707c7a0
|
||||||
7669 7980 7943180212478090 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/pppoe.c.obj d3b8c2433707c7a0
|
5900 6180 7945751218870691 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/pppcrypt.c.obj eeaff152eef09c5e
|
||||||
7659 7910 7943180212387279 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/pppcrypt.c.obj eeaff152eef09c5e
|
5804 6107 7945751217895669 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/ppp.c.obj 95dbda436ddc1a4
|
||||||
7631 7906 7943180212106138 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/ppp.c.obj 95dbda436ddc1a4
|
5734 6101 7945751217213568 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/polarssl/md4.c.obj 8494b18a789cfd30
|
||||||
7611 7924 7943180211904069 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/polarssl/md4.c.obj 8494b18a789cfd30
|
5777 6108 7945751217643229 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/polarssl/sha1.c.obj c205d93ec22541b1
|
||||||
7627 8042 7943180212056994 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/polarssl/sha1.c.obj c205d93ec22541b1
|
5937 6173 7945751219231160 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/vj.c.obj a3748ae2776c2ad3
|
||||||
7798 8181 7943180213765886 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/vj.c.obj a3748ae2776c2ad3
|
5767 6022 7945751217540544 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/polarssl/md5.c.obj 4ef8a1fb3ec0b466
|
||||||
7622 7893 7943180212004671 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/polarssl/md5.c.obj 4ef8a1fb3ec0b466
|
5678 5988 7945751216655814 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/polarssl/des.c.obj c6da4b61f39ddc77
|
||||||
7606 7916 7943180211856329 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/polarssl/des.c.obj c6da4b61f39ddc77
|
5931 6220 7945751219179490 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/utils.c.obj 25c805149a1e51f9
|
||||||
7762 8173 7943180213403197 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/utils.c.obj 25c805149a1e51f9
|
5923 6152 7945751219093556 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/upap.c.obj ba551349020d2236
|
||||||
7749 8233 7943180213286146 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/upap.c.obj ba551349020d2236
|
5814 6017 7945751218011724 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/pppapi.c.obj a011cbcb2449c13b
|
||||||
7649 8182 7943180212285727 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/pppapi.c.obj a011cbcb2449c13b
|
5917 6144 7945751219043195 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/pppos.c.obj 3b3abea33c130cbb
|
||||||
7738 8181 7943180213173234 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/pppos.c.obj 3b3abea33c130cbb
|
5912 6172 7945751218980959 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/pppol2tp.c.obj fbb6264d9812bc92
|
||||||
7708 8070 7943180212873632 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/pppol2tp.c.obj fbb6264d9812bc92
|
5960 6186 7945751219463035 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/zepif.c.obj b6fafc051f5cffbb
|
||||||
7853 8189 7943180214317750 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/zepif.c.obj b6fafc051f5cffbb
|
5942 6225 7945751219287537 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/slipif.c.obj b7d9d13d727cacbb
|
||||||
7848 8122 7943180214272291 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/slipif.c.obj b7d9d13d727cacbb
|
4 58 7945738531478170 clean 48fb0083216ba165
|
||||||
3 51 7942869265267381 clean 48fb0083216ba165
|
42 803 7945751160294423 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/sht40.c.obj 495a242bd3c720b1
|
||||||
56 1099 7943180136328390 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/sht40.c.obj 495a242bd3c720b1
|
50 881 7945751160372289 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/tcp_server.c.obj 2f9b9aee6813f977
|
||||||
64 1069 7943180136416112 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/tcp_server.c.obj 2f9b9aee6813f977
|
35 487 7945751160216331 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/event_trigger.c.obj e2861b62811efbac
|
||||||
47 1122 7943180136245930 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/event_trigger.c.obj e2861b62811efbac
|
53 291 7945751160403204 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/transaction.c.obj 2656930e26c72e59
|
||||||
67 787 7943180136446873 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/transaction.c.obj 2656930e26c72e59
|
29 243 7945751160165091 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/event_handler.c.obj 40cb707626fe69a6
|
||||||
38 615 7943180136151753 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/event_handler.c.obj 40cb707626fe69a6
|
33 248 7945751160201048 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/event_queue.c.obj 7a3a4640221394c7
|
||||||
43 1092 7943180136209850 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/event_queue.c.obj 7a3a4640221394c7
|
46 401 7945751160325984 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/state_manager.c.obj 3770f56ac2f630a9
|
||||||
61 1436 7943180136385447 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/state_manager.c.obj 3770f56ac2f630a9
|
26 406 7945751160126739 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/error_handler.c.obj 4ebd7aa818b2dbe6
|
||||||
31 631 7943180136090382 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/error_handler.c.obj 4ebd7aa818b2dbe6
|
6017 6217 7945751220044945 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f407xx.s.obj def0faec2571c85
|
||||||
|
126 1292 7945763000478578 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/event_queue.c.obj a33a4135ed57c729
|
||||||
|
179 1404 7945763001023168 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/event_trigger.c.obj 926544271e75ab9d
|
||||||
|
285 1513 7945763002072371 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/sht40.c.obj d163d7c9624e7848
|
||||||
|
341 1609 7945763002642178 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/state_manager.c.obj 88b612495d64f7ee
|
||||||
|
468 1712 7945763003916522 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/transaction.c.obj fd3b1bac98863d17
|
||||||
|
594 1855 7945763005176285 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c.obj 2d228870b98a7d8b
|
||||||
|
657 1948 7945763005806588 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c.obj 129568b79ab7f8ca
|
||||||
|
724 2043 7945763006461022 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c.obj a22edbfb1ec92c6c
|
||||||
|
786 2150 7945763007097519 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c.obj c705714ae9fe2f9a
|
||||||
|
853 2243 7945763007772650 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cec.c.obj 5851ce3889921f1b
|
||||||
|
916 2368 7945763008387874 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c.obj ebc8f6c337b2d0e1
|
||||||
|
992 2513 7945763009157508 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_crc.c.obj 89c813f1a170a2a9
|
||||||
|
1073 2631 7945763009964540 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp.c.obj 475ab0187c367e81
|
||||||
|
1294 2738 7945763012184853 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp_ex.c.obj 33c4951f4fe6a6bc
|
||||||
|
1405 2860 7945763013281405 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac.c.obj 33257b5c8106713f
|
||||||
|
1514 2960 7945763014380046 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac_ex.c.obj ffc94946ed7f7fd4
|
||||||
|
1609 3072 7945763015324542 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi.c.obj 422726f98dd917c0
|
||||||
|
1712 3214 7945763016352171 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi_ex.c.obj ff52025c44c14691
|
||||||
|
1856 3347 7945763017791858 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dfsdm.c.obj 4f0674b3c4ab51f6
|
||||||
|
1948 3439 7945763018718775 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c.obj bb05e4857760ab
|
||||||
|
2043 3540 7945763019663316 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma2d.c.obj 1a67456765259
|
||||||
|
2150 3622 7945763020739944 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c.obj b7b2dbc13040106f
|
||||||
|
2243 3712 7945763021662742 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dsi.c.obj 9c275b0f24f1c6dc
|
||||||
|
2368 3826 7945763022906055 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.c.obj a9cad8ecbf605e9f
|
||||||
|
2514 3928 7945763024369916 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c.obj 239e8ad6274b26cf
|
||||||
|
2632 4044 7945763025562712 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c.obj 3561c1eaf2b7e0e4
|
||||||
|
2861 4152 7945763027834156 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c.obj f981cbdfe963a770
|
||||||
|
2960 4249 7945763028829668 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c.c.obj 19f105f94e63bee9
|
||||||
|
3072 4339 7945763029946827 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c_ex.c.obj 5a51155439464a78
|
||||||
|
397 4489 7945763003209847 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/tcp_server.c.obj 443eef53a78f00cc
|
||||||
|
3215 4596 7945763031373386 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpsmbus.c.obj 4b249be1d903ce48
|
||||||
|
3349 4741 7945763032726497 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpsmbus_ex.c.obj c20e9e3ce5f7f27a
|
||||||
|
3441 4835 7945763033641055 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c.obj 42f542b7b744e9eb
|
||||||
|
3540 4935 7945763034626172 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash.c.obj 1f7b8fd978779184
|
||||||
|
3622 5021 7945763035454480 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash_ex.c.obj 616c46b42b34b8ba
|
||||||
|
3712 5150 7945763036361708 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hcd.c.obj 4bdf86c980debe12
|
||||||
|
3827 5245 7945763037498926 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.c.obj fa36f877c6fb4508
|
||||||
|
3928 5334 7945763038535663 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.c.obj 7a3d6b15f5b3fdbb
|
||||||
|
4045 5417 7945763039681488 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s.c.obj 8241af7d9219eff7
|
||||||
|
4152 5517 7945763040758205 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s_ex.c.obj 27945460fd531b06
|
||||||
|
4250 5647 7945763041741644 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_irda.c.obj f3d2097ebbb2ae1a
|
||||||
|
4339 5751 7945763042623230 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_iwdg.c.obj 615c83e0ec6ad531
|
||||||
|
4490 5847 7945763044129548 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_lptim.c.obj 3978ae50209e427a
|
||||||
|
4596 5952 7945763045211078 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc.c.obj 185866d95e1f5c90
|
||||||
|
4742 6038 7945763046661520 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc_ex.c.obj 914daee07173df37
|
||||||
|
4835 6128 7945763047589717 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_mmc.c.obj ee21a3ba5f92b2f2
|
||||||
|
4935 6234 7945763048587566 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nand.c.obj 2a3e092c0f318677
|
||||||
|
5021 6381 7945763049439966 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nor.c.obj 3a8e0e1e10b19cad
|
||||||
|
5150 6481 7945763050739667 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pccard.c.obj 4b39dcc7e81a2ec4
|
||||||
|
5247 6603 7945763051700477 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c.obj dd1592070bdaa05f
|
||||||
|
5334 6729 7945763052580471 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c.obj 652e8367d4c8760a
|
||||||
|
5418 6836 7945763053416614 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c.obj e83036b4313a1ef3
|
||||||
|
5517 6918 7945763054411593 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c.obj 3a5b638238b5c6e2
|
||||||
|
5647 7012 7945763055705891 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_qspi.c.obj 18e7096201b13fc3
|
||||||
|
5752 7146 7945763056741423 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c.obj cccd47b00bd176a1
|
||||||
|
5847 7253 7945763057711757 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c.obj f61b6b6dc5f5bbdb
|
||||||
|
5952 7371 7945763058756352 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c.obj d1126a4ce4055bef
|
||||||
|
6038 7489 7945763059610200 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.c.obj be4f6b35ee5c499
|
||||||
|
6128 7589 7945763060520840 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.c.obj a1e2fcb211cdc342
|
||||||
|
6234 7682 7945763061580437 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai.c.obj ff70543014644efb
|
||||||
|
6381 7879 7945763063045319 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai_ex.c.obj c1ee579877cce255
|
||||||
|
6481 8004 7945763064043379 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sd.c.obj 73bcb592af4f0a0f
|
||||||
|
6604 8136 7945763065271678 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sdram.c.obj befb0c38a4fa103
|
||||||
|
6729 8260 7945763066531983 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_smartcard.c.obj 36ee836c0a48569c
|
||||||
|
6836 8401 7945763067588638 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_smbus.c.obj 292c74c141b117b5
|
||||||
|
6918 8615 7945763068419168 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spdifrx.c.obj 36eff4aab20a8c4d
|
||||||
|
7013 8709 7945763069358285 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c.obj de8a3e8b6f5d6f03
|
||||||
|
7147 8827 7945763070706948 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sram.c.obj a0c24a1c5a3aa6a1
|
||||||
|
7253 8961 7945763071762017 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c.obj 138ef734b7053632
|
||||||
|
7371 9078 7945763072949808 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c.obj d57bce0b1cd28074
|
||||||
|
7489 9179 7945763074123412 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c.obj aead5b06fd31b37d
|
||||||
|
7590 9267 7945763075135711 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_usart.c.obj 265bcc4c08869847
|
||||||
|
7682 9360 7945763076059225 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c.obj 4587709b364cb57f
|
||||||
|
7880 9448 7945763078035440 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.c.obj b30a833f83c91c1c
|
||||||
|
8006 9553 7945763079296535 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_crc.c.obj 5eb7490929ed2b5a
|
||||||
|
8137 9640 7945763080599122 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_dac.c.obj e175931912cefb2e
|
||||||
|
8260 9729 7945763081827681 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_dma.c.obj 5b1134b995a2a396
|
||||||
|
8417 9818 7945763083412656 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_dma2d.c.obj c3f6b7e7ed87d645
|
||||||
|
8615 9916 7945763085386938 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_exti.c.obj 2b5d5892ae3888a2
|
||||||
|
8710 10009 7945763086334474 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_fmc.c.obj 52bcc44077d662ef
|
||||||
|
8827 10113 7945763087510040 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_fmpi2c.c.obj 7750a586ac30a6e
|
||||||
|
8961 10263 7945763088846546 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_fsmc.c.obj feeafa976ba1bc49
|
||||||
|
9079 10401 7945763090025122 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_gpio.c.obj 26acc2cf3a90faa2
|
||||||
|
9179 10543 7945763091031731 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_i2c.c.obj 44c40ecf286dad1c
|
||||||
|
9267 10650 7945763091908019 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_lptim.c.obj 870009dd2ce27c3d
|
||||||
|
9361 10746 7945763092844354 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_pwr.c.obj 15398a79c30b6846
|
||||||
|
9449 10845 7945763093722142 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_rcc.c.obj 3a2c53f14851be5a
|
||||||
|
9553 10948 7945763094765234 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_rng.c.obj 1645ec72f9115d4
|
||||||
|
9640 11047 7945763095635449 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_rtc.c.obj 7f981cdda7272cb9
|
||||||
|
9729 11143 7945763096523557 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_sdmmc.c.obj ec6259f4aeacc68e
|
||||||
|
9818 11223 7945763097419945 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_spi.c.obj 147b2a5db506708b
|
||||||
|
9917 11323 7945763098411630 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_tim.c.obj f37d8d33863e54c
|
||||||
|
10009 11421 7945763099328856 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usart.c.obj d0b6fac4d0f72ee5
|
||||||
|
10113 11515 7945763100366741 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c.obj 4755778142380626
|
||||||
|
10263 11602 7945763101871988 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_utils.c.obj ec7c1d427bfc34c0
|
||||||
|
10402 11684 7945763103291313 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/hal/hal.c.obj 4b38f4a77b092186
|
||||||
|
10845 11772 7945763107693525 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/clock.c.obj 34c6882072c4534e
|
||||||
|
11047 11860 7945763109708227 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/cpu.c.obj 33fe98e41464e565
|
||||||
|
11143 11946 7945763110665656 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/device.c.obj 4251d6013eb4462b
|
||||||
|
73 12043 7945762999960845 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/event_handler.c.obj 8f1c1e27881ef79d
|
||||||
|
2739 12146 7945763026613402 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c.obj bd1d6b8b1f6944cd
|
||||||
|
11423 12266 7945763113474636 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/irq.c.obj 6bbcd0ad5f6f3dd1
|
||||||
|
11603 12362 7945763115259070 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/mem.c.obj 7296e2e6fa2e0f54
|
||||||
|
11684 12480 7945763116081291 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/memheap.c.obj bd81cdbb354d7e75
|
||||||
|
11772 12599 7945763116958340 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/mempool.c.obj 6f4ba4af13faa5b8
|
||||||
|
11860 12637 7945763117839019 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/object.c.obj c5dbc7c1061f2ab8
|
||||||
|
11946 12667 7945763118682957 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/scheduler.c.obj ef7369310c97b831
|
||||||
|
12044 12688 7945763119676419 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/signal.c.obj 68ebddfd35d59659
|
||||||
|
12149 12706 7945763120726813 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/slab.c.obj 24a1e95663248daa
|
||||||
|
10948 12878 7945763108716870 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/components.c.obj f8da2309e76dac2
|
||||||
|
12480 12929 7945763124034862 CMakeFiles/rtthread-nano-stm32f407ve.dir/osal/src/rtthread/osal_core.c.obj 35a7f92d5fa89393
|
||||||
|
12 12989 7945762999355750 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/error_handler.c.obj afd2b5483d4affb4
|
||||||
|
11224 13095 7945763111467743 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/idle.c.obj ea82aed10a7c365e
|
||||||
|
12363 13178 7945763122866676 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/timer.c.obj 27fc4c10cddc0b24
|
||||||
|
12267 13504 7945763121902903 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/thread.c.obj adf1a692e2c0287f
|
||||||
|
11515 13565 7945763114380072 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/kservice.c.obj 2486ab7cf30554cd
|
||||||
|
11323 13608 7945763112517425 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/ipc.c.obj 6c39f3c9d0de1b6b
|
||||||
|
56 386 7945763132116056 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/thread.c.obj adf1a692e2c0287f
|
||||||
|
52 387 7945763132067787 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/kservice.c.obj 2486ab7cf30554cd
|
||||||
|
60 388 7945763132151843 CMakeFiles/rtthread-nano-stm32f407ve.dir/osal/src/rtthread/osal_event.c.obj 2dc8e06adab998f3
|
||||||
|
64 388 7945763132198355 CMakeFiles/rtthread-nano-stm32f407ve.dir/osal/src/rtthread/osal_irq.c.obj a8964936032c1b87
|
||||||
|
97 389 7945763132522861 CMakeFiles/rtthread-nano-stm32f407ve.dir/osal/src/rtthread/osal_thread.c.obj 86b35d35c611d658
|
||||||
|
73 389 7945763132278568 CMakeFiles/rtthread-nano-stm32f407ve.dir/osal/src/rtthread/osal_mem.c.obj 7c802c36ec419a48
|
||||||
|
48 390 7945763132021824 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/src/ipc.c.obj 6c39f3c9d0de1b6b
|
||||||
|
69 390 7945763132246860 CMakeFiles/rtthread-nano-stm32f407ve.dir/osal/src/rtthread/osal_log.c.obj 88d6ae699164d101
|
||||||
|
78 391 7945763132331169 CMakeFiles/rtthread-nano-stm32f407ve.dir/osal/src/rtthread/osal_mq.c.obj b48e60ca0f46468c
|
||||||
|
230 13626 7945763001533831 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/main.c.obj b3484d3e1fdc3112
|
||||||
|
85 408 7945763132398071 CMakeFiles/rtthread-nano-stm32f407ve.dir/osal/src/rtthread/osal_mutex.c.obj 484c503450f72acb
|
||||||
|
91 409 7945763132460483 CMakeFiles/rtthread-nano-stm32f407ve.dir/osal/src/rtthread/osal_sem.c.obj fb9baf905376fbc1
|
||||||
|
101 409 7945763132558110 CMakeFiles/rtthread-nano-stm32f407ve.dir/osal/src/rtthread/osal_timer.c.obj 857254bb5cca9738
|
||||||
|
108 424 7945763132633158 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/api/api_lib.c.obj 5ba7866b5ce33eb4
|
||||||
|
30 573 7945763131852487 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/main.c.obj b3484d3e1fdc3112
|
||||||
|
14 237 7945764167325378 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/hal/hal.c.obj 4b38f4a77b092186
|
||||||
|
34 292 7945764167535181 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/api/err.c.obj 3393441461287b63
|
||||||
|
52 305 7945764167713024 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/api/netifapi.c.obj f292c9d1e060124e
|
||||||
|
68 331 7945764167869136 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/altcp.c.obj ae5f1f6676d7e46a
|
||||||
|
38 340 7945764167571438 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/api/if_api.c.obj f168e42e434f39ab
|
||||||
|
78 347 7945764167959315 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/altcp_tcp.c.obj fe103a5a265699ff
|
||||||
|
42 352 7945764167611815 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/api/netbuf.c.obj 6087d8252ad5869c
|
||||||
|
73 357 7945764167913332 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/altcp_alloc.c.obj d34453861aaeaf20
|
||||||
|
46 361 7945764167657424 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/api/netdb.c.obj e8bcd26e3017f7b6
|
||||||
|
30 395 7945764167488623 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/api/api_msg.c.obj 72d2739fd058f265
|
||||||
|
82 409 7945764168013585 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/def.c.obj 4d1582093d627a79
|
||||||
|
64 413 7945764167829645 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/api/tcpip.c.obj d17355809d1c53f3
|
||||||
|
10 463 7945764167278387 CMakeFiles/rtthread-nano-stm32f407ve.dir/board/stm32f407ve/board.c.obj 904a442d551f6c1e
|
||||||
|
87 499 7945764168061669 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/dns.c.obj 2fb34eded506a63
|
||||||
|
26 523 7945764167447181 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/hal/stm32f4_hal_uart.c.obj ca8660b85168593c
|
||||||
|
60 539 7945764167788505 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/api/sockets.c.obj fd9c45568937a82b
|
||||||
|
22 552 7945764167400039 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/hal/stm32f4_hal_i2c.c.obj 68ebce49ebab2317
|
||||||
|
237 576 7945764169554576 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/inet_chksum.c.obj 3611967c1ec2ee
|
||||||
|
305 610 7945764170239254 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ip.c.obj 81139f412576ac70
|
||||||
|
18 615 7945764167377758 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/hal/stm32f4_hal_eth.c.obj 89b12ba5a6b23f9c
|
||||||
|
292 621 7945764170104746 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/init.c.obj b1fd75f15330e316
|
||||||
|
340 642 7945764170591149 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv4/autoip.c.obj b7f749ed61e523cc
|
||||||
|
362 697 7945764170806437 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv4/igmp.c.obj bd2b8e177060111b
|
||||||
|
331 703 7945764170501229 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv4/acd.c.obj 50999f7c4cb0bc39
|
||||||
|
352 713 7945764170712868 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv4/etharp.c.obj 228f02a467bbc2ad
|
||||||
|
357 721 7945764170750209 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv4/icmp.c.obj f696e718cd7ca7a2
|
||||||
|
463 747 7945764171822353 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv6/dhcp6.c.obj 4da9f56dcce1029e
|
||||||
|
499 756 7945764172179493 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv6/ethip6.c.obj 4afc21f07a291b2
|
||||||
|
347 768 7945764170664045 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv4/dhcp.c.obj a218d7f5f079c80c
|
||||||
|
539 776 7945764172579598 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv6/inet6.c.obj 5b21874796165690
|
||||||
|
523 791 7945764172425306 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv6/icmp6.c.obj 40cdad3ee461d48a
|
||||||
|
615 808 7945764173343126 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv6/mld6.c.obj 2343d5afab9c2deb
|
||||||
|
395 813 7945764171148544 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv4/ip4.c.obj 339f08c80aa9ca41
|
||||||
|
409 818 7945764171279250 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv4/ip4_addr.c.obj 7138afc0c51d3aeb
|
||||||
|
552 823 7945764172712562 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv6/ip6.c.obj 87349b952f84fc6f
|
||||||
|
576 828 7945764172952722 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv6/ip6_addr.c.obj 27172e38f020cb75
|
||||||
|
621 848 7945764173395800 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv6/nd6.c.obj 3242c23cbeb5717f
|
||||||
|
413 854 7945764171324297 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv4/ip4_frag.c.obj 39b96b887ac7e283
|
||||||
|
610 912 7945764173291815 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/ipv6/ip6_frag.c.obj 2c14dc172f74e5c9
|
||||||
|
642 943 7945764173616537 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/mem.c.obj 628cf6c275d16830
|
||||||
|
756 1052 7945764174753253 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/sys.c.obj 3705b7480ab2c7e2
|
||||||
|
698 1057 7945764174161535 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/memp.c.obj 6c4c8ddf2a01b0ca
|
||||||
|
714 1091 7945764174327626 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/pbuf.c.obj b6aa4fbcdc206568
|
||||||
|
748 1096 7945764174661890 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/stats.c.obj 30a080d13dae02ae
|
||||||
|
703 1132 7945764174218331 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/netif.c.obj f700c54108d2bfd6
|
||||||
|
721 1137 7945764174387895 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/raw.c.obj bb951b7c76402745
|
||||||
|
809 1162 7945764175276179 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/timeouts.c.obj fa513f9283328edb
|
||||||
|
848 1196 7945764175672760 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/lowpan6.c.obj b4a6613074a5afef
|
||||||
|
823 1212 7945764175425582 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/bridgeif_fdb.c.obj 364d995813847fa4
|
||||||
|
813 1218 7945764175318104 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/udp.c.obj 4dde3fd516370808
|
||||||
|
768 1222 7945764174872509 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/tcp.c.obj bc3020eeda53abd6
|
||||||
|
828 1237 7945764175473557 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ethernet.c.obj 88894c7e4eec924
|
||||||
|
912 1264 7945764176307377 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/lowpan6_common.c.obj c54d7c0bd97d98cd
|
||||||
|
854 1271 7945764175730568 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/lowpan6_ble.c.obj 4c7d5112da0723e8
|
||||||
|
776 1319 7945764174959907 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/tcp_in.c.obj 372fa004044ac358
|
||||||
|
943 1328 7945764176615348 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/auth.c.obj 84b32e6e635b187a
|
||||||
|
819 1333 7945764175370840 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/bridgeif.c.obj f16962fd2c2c1a9b
|
||||||
|
791 1339 7945764175099234 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/core/tcp_out.c.obj 3f76390914ee900a
|
||||||
|
1057 1358 7945764177767404 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/chap-md5.c.obj f84434b186ef142f
|
||||||
|
1096 1386 7945764178153062 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/chap_ms.c.obj 3508cc4cf3db6bcb
|
||||||
|
1162 1400 7945764178814654 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/ecp.c.obj 3d95761b4c66c174
|
||||||
|
1197 1406 7945764179157008 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/eui64.c.obj 80f6dae6f0468abe
|
||||||
|
1132 1411 7945764178507466 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/demand.c.obj d3e1ffcc092f7669
|
||||||
|
1212 1416 7945764179314465 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/fsm.c.obj 2f6c3b491fdc7f74
|
||||||
|
1053 1421 7945764177721447 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/ccp.c.obj 511aa0f5125ccb91
|
||||||
|
1091 1426 7945764178102768 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/chap-new.c.obj d755ce877b62b371
|
||||||
|
1223 1461 7945764179421736 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/ipv6cp.c.obj 2a0abd4df5211522
|
||||||
|
1218 1477 7945764179371646 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/ipcp.c.obj be96734756a6301
|
||||||
|
1138 1502 7945764178570500 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/eap.c.obj a58a5e59eda623b4
|
||||||
|
1237 1507 7945764179557669 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/lcp.c.obj c346b0557bd64875
|
||||||
|
1328 1522 7945764180472169 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/polarssl/arc4.c.obj 74e58cceb0094a3
|
||||||
|
1264 1540 7945764179830611 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/magic.c.obj 6022b014c985415a
|
||||||
|
1272 1551 7945764179910598 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/mppe.c.obj 3d665068bc56f47
|
||||||
|
1416 1601 7945764181354185 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/pppoe.c.obj cb3392e8594970a
|
||||||
|
1358 1614 7945764180771673 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/polarssl/md5.c.obj 8e2454b6f4c112d9
|
||||||
|
1406 1633 7945764181249477 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/pppapi.c.obj cb2111472ea12341
|
||||||
|
1319 1638 7945764180382988 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/multilink.c.obj 993ec1d7be8c72a7
|
||||||
|
1386 1663 7945764181042067 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/polarssl/sha1.c.obj 29d53d2fb7a50c0
|
||||||
|
1411 1669 7945764181297265 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/pppcrypt.c.obj dc7c28147901c47e
|
||||||
|
1421 1676 7945764181405839 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/pppol2tp.c.obj 46b04febdea037e0
|
||||||
|
1333 1676 7945764180515545 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/polarssl/des.c.obj e323141b0074c8e3
|
||||||
|
1426 1677 7945764181452821 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/pppos.c.obj 2eb4f4d841408bed
|
||||||
|
1401 1682 7945764181199296 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/ppp.c.obj 62461143f5ebacc4
|
||||||
|
1461 1682 7945764181800730 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/upap.c.obj 2dd9f6f40447e263
|
||||||
|
1340 1683 7945764180578662 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/polarssl/md4.c.obj 4fa579bc598a223c
|
||||||
|
1478 1689 7945764181971490 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/utils.c.obj 88e71895fc2a74c9
|
||||||
|
1503 1706 7945764182221164 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/ppp/vj.c.obj 9fa62d0752ab88da
|
||||||
|
1614 1715 7945764183330582 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f407xx.s.obj b08cb3d00af6e36b
|
||||||
|
1522 1728 7945764182412290 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/zepif.c.obj cbae23e65d2af4aa
|
||||||
|
1638 1732 7945764183570068 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/libcpu/arm/cortex-m4/context_gcc.S.obj 74fbeda71c326f28
|
||||||
|
1552 1770 7945764182705612 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/port/sys_arch.c.obj 4d76295cfcbb766f
|
||||||
|
1507 1791 7945764182254095 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/lwip-2.2.1/src/netif/slipif.c.obj 31941e5f632c300f
|
||||||
|
1633 1870 7945764183523078 CMakeFiles/rtthread-nano-stm32f407ve.dir/rt-thread/libcpu/arm/cortex-m4/cpuport.c.obj 4718c7c71c7d66f7
|
||||||
|
1540 1970 7945764182590287 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/port/drv_eth.c.obj fe1bc139bc2dd747
|
||||||
|
1601 1975 7945764183199603 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c.obj d32fc9cda964f0ca
|
||||||
|
1975 2614 7945764186935721 rtthread-nano-stm32f407ve.elf 82684ad022f3dcf
|
||||||
|
9 300 7945764301819221 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/hal/stm32f4_hal_eth.c.obj 89b12ba5a6b23f9c
|
||||||
|
300 863 7945764304737904 rtthread-nano-stm32f407ve.elf 82684ad022f3dcf
|
||||||
|
9 269 7945764471398542 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/hal/stm32f4_hal_eth.c.obj 89b12ba5a6b23f9c
|
||||||
|
269 819 7945764473997859 rtthread-nano-stm32f407ve.elf 82684ad022f3dcf
|
||||||
|
11 654 7945764970515388 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/hal/stm32f4_hal_eth.c.obj 89b12ba5a6b23f9c
|
||||||
|
656 2113 7945764976947881 rtthread-nano-stm32f407ve.elf 82684ad022f3dcf
|
||||||
|
13 778 7945766443699197 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/main.c.obj b3484d3e1fdc3112
|
||||||
|
780 2245 7945766451356063 rtthread-nano-stm32f407ve.elf 82684ad022f3dcf
|
||||||
|
15 292 7945769306246525 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/main.c.obj b3484d3e1fdc3112
|
||||||
|
292 849 7945769309021221 rtthread-nano-stm32f407ve.elf 82684ad022f3dcf
|
||||||
|
8 298 7945769670262700 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/main.c.obj b3484d3e1fdc3112
|
||||||
|
299 857 7945769673175417 rtthread-nano-stm32f407ve.elf 82684ad022f3dcf
|
||||||
|
8 270 7945769996196331 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/main.c.obj b3484d3e1fdc3112
|
||||||
|
271 763 7945769998826456 rtthread-nano-stm32f407ve.elf 82684ad022f3dcf
|
||||||
|
7 275 7945771870868479 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/main.c.obj b3484d3e1fdc3112
|
||||||
|
276 855 7945771873547049 rtthread-nano-stm32f407ve.elf 82684ad022f3dcf
|
||||||
|
23 2316 7947433113232662 CMakeFiles/rtthread-nano-stm32f407ve.dir/lwip/port/drv_eth.c.obj fe1bc139bc2dd747
|
||||||
|
2317 4751 7947433136169332 rtthread-nano-stm32f407ve.elf 82684ad022f3dcf
|
||||||
|
8 281 7947433844316313 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/hal/stm32f4_hal_eth.c.obj 89b12ba5a6b23f9c
|
||||||
|
281 763 7947433847046832 rtthread-nano-stm32f407ve.elf 82684ad022f3dcf
|
||||||
|
17 300 7947439346850626 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/sht40.c.obj d163d7c9624e7848
|
||||||
|
9 301 7947439346765204 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/error_handler.c.obj afd2b5483d4affb4
|
||||||
|
13 304 7947439346810401 CMakeFiles/rtthread-nano-stm32f407ve.dir/app/main.c.obj b3484d3e1fdc3112
|
||||||
|
304 967 7947439349726503 rtthread-nano-stm32f407ve.elf 82684ad022f3dcf
|
||||||
|
12 651 7947443453105321 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/hal/stm32f4_hal_eth.c.obj 89b12ba5a6b23f9c
|
||||||
|
652 2160 7947443459506020 rtthread-nano-stm32f407ve.elf 82684ad022f3dcf
|
||||||
|
12 629 7947446200600237 CMakeFiles/rtthread-nano-stm32f407ve.dir/drivers/hal/stm32f4_hal_eth.c.obj 89b12ba5a6b23f9c
|
||||||
|
630 2117 7947446206774632 rtthread-nano-stm32f407ve.elf 82684ad022f3dcf
|
||||||
|
|||||||
Binary file not shown.
@ -73,8 +73,8 @@ events:
|
|||||||
checks:
|
checks:
|
||||||
- "Detecting C compiler ABI info"
|
- "Detecting C compiler ABI info"
|
||||||
directories:
|
directories:
|
||||||
source: "C:/Users/ZHIZHANKEJI/Downloads/rtthread-nano-4.1.1/rtthread-nano-4.1.1/build/CMakeFiles/CMakeScratch/TryCompile-gwucrf"
|
source: "C:/Users/ZHIZHANKEJI/Downloads/rtthread-nano-4.1.1/rtthread-nano-4.1.1/build/CMakeFiles/CMakeScratch/TryCompile-hhqe8k"
|
||||||
binary: "C:/Users/ZHIZHANKEJI/Downloads/rtthread-nano-4.1.1/rtthread-nano-4.1.1/build/CMakeFiles/CMakeScratch/TryCompile-gwucrf"
|
binary: "C:/Users/ZHIZHANKEJI/Downloads/rtthread-nano-4.1.1/rtthread-nano-4.1.1/build/CMakeFiles/CMakeScratch/TryCompile-hhqe8k"
|
||||||
cmakeVariables:
|
cmakeVariables:
|
||||||
CMAKE_C_FLAGS: "-mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -ffunction-sections -fdata-sections -g3 -O0 -std=c99"
|
CMAKE_C_FLAGS: "-mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -ffunction-sections -fdata-sections -g3 -O0 -std=c99"
|
||||||
CMAKE_C_FLAGS_DEBUG: "-g"
|
CMAKE_C_FLAGS_DEBUG: "-g"
|
||||||
@ -83,10 +83,10 @@ events:
|
|||||||
variable: "CMAKE_C_ABI_COMPILED"
|
variable: "CMAKE_C_ABI_COMPILED"
|
||||||
cached: true
|
cached: true
|
||||||
stdout: |
|
stdout: |
|
||||||
Change Dir: 'C:/Users/ZHIZHANKEJI/Downloads/rtthread-nano-4.1.1/rtthread-nano-4.1.1/build/CMakeFiles/CMakeScratch/TryCompile-gwucrf'
|
Change Dir: 'C:/Users/ZHIZHANKEJI/Downloads/rtthread-nano-4.1.1/rtthread-nano-4.1.1/build/CMakeFiles/CMakeScratch/TryCompile-hhqe8k'
|
||||||
|
|
||||||
Run Build Command(s): C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Scripts/ninja.exe -v cmTC_2c05d
|
Run Build Command(s): C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Scripts/ninja.exe -v cmTC_feb17
|
||||||
[1/2] D:\\ARM_GCC\\bin\\arm-none-eabi-gcc.exe -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -ffunction-sections -fdata-sections -g3 -O0 -std=c99 -v -o CMakeFiles/cmTC_2c05d.dir/CMakeCCompilerABI.c.obj -c C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Lib/site-packages/cmake/data/share/cmake-3.31/Modules/CMakeCCompilerABI.c
|
[1/2] D:\\ARM_GCC\\bin\\arm-none-eabi-gcc.exe -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -ffunction-sections -fdata-sections -g3 -O0 -std=c99 -v -o CMakeFiles/cmTC_feb17.dir/CMakeCCompilerABI.c.obj -c C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Lib/site-packages/cmake/data/share/cmake-3.31/Modules/CMakeCCompilerABI.c
|
||||||
Using built-in specs.
|
Using built-in specs.
|
||||||
COLLECT_GCC=D:\\ARM_GCC\\bin\\arm-none-eabi-gcc.exe
|
COLLECT_GCC=D:\\ARM_GCC\\bin\\arm-none-eabi-gcc.exe
|
||||||
Target: arm-none-eabi
|
Target: arm-none-eabi
|
||||||
@ -94,8 +94,8 @@ events:
|
|||||||
Thread model: single
|
Thread model: single
|
||||||
Supported LTO compression algorithms: zlib
|
Supported LTO compression algorithms: zlib
|
||||||
gcc version 10.3.1 20210824 (release) (GNU Arm Embedded Toolchain 10.3-2021.10)
|
gcc version 10.3.1 20210824 (release) (GNU Arm Embedded Toolchain 10.3-2021.10)
|
||||||
COLLECT_GCC_OPTIONS='-mcpu=cortex-m4' '-mthumb' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-ffunction-sections' '-fdata-sections' '-g3' '-O0' '-std=c99' '-v' '-o' 'CMakeFiles/cmTC_2c05d.dir/CMakeCCompilerABI.c.obj' '-c' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp'
|
COLLECT_GCC_OPTIONS='-mcpu=cortex-m4' '-mthumb' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-ffunction-sections' '-fdata-sections' '-g3' '-O0' '-std=c99' '-v' '-o' 'CMakeFiles/cmTC_feb17.dir/CMakeCCompilerABI.c.obj' '-c' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp'
|
||||||
d:/arm_gcc/bin/../lib/gcc/arm-none-eabi/10.3.1/cc1.exe -quiet -v -imultilib thumb/v7e-m+fp/hard -iprefix d:\\arm_gcc\\bin\\../lib/gcc/arm-none-eabi/10.3.1/ -isysroot d:\\arm_gcc\\bin\\../arm-none-eabi -dD -D__USES_INITFINI__ C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Lib/site-packages/cmake/data/share/cmake-3.31/Modules/CMakeCCompilerABI.c -quiet -dumpbase CMakeCCompilerABI.c -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mlibarch=armv7e-m+fp -march=armv7e-m+fp -auxbase-strip CMakeFiles/cmTC_2c05d.dir/CMakeCCompilerABI.c.obj -g3 -O0 -Wall -Wextra -std=c99 -version -ffunction-sections -fdata-sections -o C:\\Users\\ZHIZHA~1\\AppData\\Local\\Temp\\cc6SOf0g.s
|
d:/arm_gcc/bin/../lib/gcc/arm-none-eabi/10.3.1/cc1.exe -quiet -v -imultilib thumb/v7e-m+fp/hard -iprefix d:\\arm_gcc\\bin\\../lib/gcc/arm-none-eabi/10.3.1/ -isysroot d:\\arm_gcc\\bin\\../arm-none-eabi -dD -D__USES_INITFINI__ C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Lib/site-packages/cmake/data/share/cmake-3.31/Modules/CMakeCCompilerABI.c -quiet -dumpbase CMakeCCompilerABI.c -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mlibarch=armv7e-m+fp -march=armv7e-m+fp -auxbase-strip CMakeFiles/cmTC_feb17.dir/CMakeCCompilerABI.c.obj -g3 -O0 -Wall -Wextra -std=c99 -version -ffunction-sections -fdata-sections -o C:\\Users\\ZHIZHA~1\\AppData\\Local\\Temp\\cc2Mw2P8.s
|
||||||
GNU C99 (GNU Arm Embedded Toolchain 10.3-2021.10) version 10.3.1 20210824 (release) (arm-none-eabi)
|
GNU C99 (GNU Arm Embedded Toolchain 10.3-2021.10) version 10.3.1 20210824 (release) (arm-none-eabi)
|
||||||
compiled by GNU C version 7.3-win32 20180312, GMP version 6.1.0, MPFR version 3.1.4, MPC version 1.0.3, isl version isl-0.18-GMP
|
compiled by GNU C version 7.3-win32 20180312, GMP version 6.1.0, MPFR version 3.1.4, MPC version 1.0.3, isl version isl-0.18-GMP
|
||||||
|
|
||||||
@ -116,13 +116,13 @@ events:
|
|||||||
|
|
||||||
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
|
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
|
||||||
Compiler executable checksum: f3937ce18b4177bfd408ca565336596a
|
Compiler executable checksum: f3937ce18b4177bfd408ca565336596a
|
||||||
COLLECT_GCC_OPTIONS='-mcpu=cortex-m4' '-mthumb' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-ffunction-sections' '-fdata-sections' '-g3' '-O0' '-std=c99' '-v' '-o' 'CMakeFiles/cmTC_2c05d.dir/CMakeCCompilerABI.c.obj' '-c' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp'
|
COLLECT_GCC_OPTIONS='-mcpu=cortex-m4' '-mthumb' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-ffunction-sections' '-fdata-sections' '-g3' '-O0' '-std=c99' '-v' '-o' 'CMakeFiles/cmTC_feb17.dir/CMakeCCompilerABI.c.obj' '-c' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp'
|
||||||
d:/arm_gcc/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/as.exe -v -march=armv7e-m -mfloat-abi=hard -mfpu=fpv4-sp-d16 -meabi=5 -o CMakeFiles/cmTC_2c05d.dir/CMakeCCompilerABI.c.obj C:\\Users\\ZHIZHA~1\\AppData\\Local\\Temp\\cc6SOf0g.s
|
d:/arm_gcc/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/as.exe -v -march=armv7e-m -mfloat-abi=hard -mfpu=fpv4-sp-d16 -meabi=5 -o CMakeFiles/cmTC_feb17.dir/CMakeCCompilerABI.c.obj C:\\Users\\ZHIZHA~1\\AppData\\Local\\Temp\\cc2Mw2P8.s
|
||||||
GNU assembler version 2.36.1 (arm-none-eabi) using BFD version (GNU Arm Embedded Toolchain 10.3-2021.10) 2.36.1.20210621
|
GNU assembler version 2.36.1 (arm-none-eabi) using BFD version (GNU Arm Embedded Toolchain 10.3-2021.10) 2.36.1.20210621
|
||||||
COMPILER_PATH=d:/arm_gcc/bin/../lib/gcc/arm-none-eabi/10.3.1/;d:/arm_gcc/bin/../lib/gcc/;d:/arm_gcc/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/
|
COMPILER_PATH=d:/arm_gcc/bin/../lib/gcc/arm-none-eabi/10.3.1/;d:/arm_gcc/bin/../lib/gcc/;d:/arm_gcc/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/
|
||||||
LIBRARY_PATH=d:/arm_gcc/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/;d:/arm_gcc/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/;d:/arm_gcc/bin/../arm-none-eabi/lib/thumb/v7e-m+fp/hard/;d:/arm_gcc/bin/../lib/gcc/arm-none-eabi/10.3.1/;d:/arm_gcc/bin/../lib/gcc/;d:/arm_gcc/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/;d:/arm_gcc/bin/../arm-none-eabi/lib/
|
LIBRARY_PATH=d:/arm_gcc/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/;d:/arm_gcc/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/;d:/arm_gcc/bin/../arm-none-eabi/lib/thumb/v7e-m+fp/hard/;d:/arm_gcc/bin/../lib/gcc/arm-none-eabi/10.3.1/;d:/arm_gcc/bin/../lib/gcc/;d:/arm_gcc/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/;d:/arm_gcc/bin/../arm-none-eabi/lib/
|
||||||
COLLECT_GCC_OPTIONS='-mcpu=cortex-m4' '-mthumb' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-ffunction-sections' '-fdata-sections' '-g3' '-O0' '-std=c99' '-v' '-o' 'CMakeFiles/cmTC_2c05d.dir/CMakeCCompilerABI.c.obj' '-c' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp'
|
COLLECT_GCC_OPTIONS='-mcpu=cortex-m4' '-mthumb' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-ffunction-sections' '-fdata-sections' '-g3' '-O0' '-std=c99' '-v' '-o' 'CMakeFiles/cmTC_feb17.dir/CMakeCCompilerABI.c.obj' '-c' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp'
|
||||||
[2/2] C:\\windows\\system32\\cmd.exe /C "cd . && C:\\Users\\ZHIZHANKEJI\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\cmake\\data\\bin\\cmake.exe -E rm -f libcmTC_2c05d.a && D:\\ARM_GCC\\bin\\arm-none-eabi-ar.exe qc libcmTC_2c05d.a CMakeFiles/cmTC_2c05d.dir/CMakeCCompilerABI.c.obj && D:\\ARM_GCC\\bin\\arm-none-eabi-ranlib.exe libcmTC_2c05d.a && cd ."
|
[2/2] C:\\windows\\system32\\cmd.exe /C "cd . && C:\\Users\\ZHIZHANKEJI\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\cmake\\data\\bin\\cmake.exe -E rm -f libcmTC_feb17.a && D:\\ARM_GCC\\bin\\arm-none-eabi-ar.exe qc libcmTC_feb17.a CMakeFiles/cmTC_feb17.dir/CMakeCCompilerABI.c.obj && D:\\ARM_GCC\\bin\\arm-none-eabi-ranlib.exe libcmTC_feb17.a && cd ."
|
||||||
|
|
||||||
exitCode: 0
|
exitCode: 0
|
||||||
-
|
-
|
||||||
@ -155,10 +155,10 @@ events:
|
|||||||
Parsed C implicit link information:
|
Parsed C implicit link information:
|
||||||
link line regex: [^( *|.*[/\\])(ld[0-9]*(\\.[a-z]+)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]
|
link line regex: [^( *|.*[/\\])(ld[0-9]*(\\.[a-z]+)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]
|
||||||
linker tool regex: [^[ ]*(->|")?[ ]*(([^"]*[/\\])?(ld[0-9]*(\\.[a-z]+)?))("|,| |$)]
|
linker tool regex: [^[ ]*(->|")?[ ]*(([^"]*[/\\])?(ld[0-9]*(\\.[a-z]+)?))("|,| |$)]
|
||||||
ignore line: [Change Dir: 'C:/Users/ZHIZHANKEJI/Downloads/rtthread-nano-4.1.1/rtthread-nano-4.1.1/build/CMakeFiles/CMakeScratch/TryCompile-gwucrf']
|
ignore line: [Change Dir: 'C:/Users/ZHIZHANKEJI/Downloads/rtthread-nano-4.1.1/rtthread-nano-4.1.1/build/CMakeFiles/CMakeScratch/TryCompile-hhqe8k']
|
||||||
ignore line: []
|
ignore line: []
|
||||||
ignore line: [Run Build Command(s): C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Scripts/ninja.exe -v cmTC_2c05d]
|
ignore line: [Run Build Command(s): C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Scripts/ninja.exe -v cmTC_feb17]
|
||||||
ignore line: [[1/2] D:\\ARM_GCC\\bin\\arm-none-eabi-gcc.exe -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -ffunction-sections -fdata-sections -g3 -O0 -std=c99 -v -o CMakeFiles/cmTC_2c05d.dir/CMakeCCompilerABI.c.obj -c C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Lib/site-packages/cmake/data/share/cmake-3.31/Modules/CMakeCCompilerABI.c]
|
ignore line: [[1/2] D:\\ARM_GCC\\bin\\arm-none-eabi-gcc.exe -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -ffunction-sections -fdata-sections -g3 -O0 -std=c99 -v -o CMakeFiles/cmTC_feb17.dir/CMakeCCompilerABI.c.obj -c C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Lib/site-packages/cmake/data/share/cmake-3.31/Modules/CMakeCCompilerABI.c]
|
||||||
ignore line: [Using built-in specs.]
|
ignore line: [Using built-in specs.]
|
||||||
ignore line: [COLLECT_GCC=D:\\ARM_GCC\\bin\\arm-none-eabi-gcc.exe]
|
ignore line: [COLLECT_GCC=D:\\ARM_GCC\\bin\\arm-none-eabi-gcc.exe]
|
||||||
ignore line: [Target: arm-none-eabi]
|
ignore line: [Target: arm-none-eabi]
|
||||||
@ -166,8 +166,8 @@ events:
|
|||||||
ignore line: [Thread model: single]
|
ignore line: [Thread model: single]
|
||||||
ignore line: [Supported LTO compression algorithms: zlib]
|
ignore line: [Supported LTO compression algorithms: zlib]
|
||||||
ignore line: [gcc version 10.3.1 20210824 (release) (GNU Arm Embedded Toolchain 10.3-2021.10) ]
|
ignore line: [gcc version 10.3.1 20210824 (release) (GNU Arm Embedded Toolchain 10.3-2021.10) ]
|
||||||
ignore line: [COLLECT_GCC_OPTIONS='-mcpu=cortex-m4' '-mthumb' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-ffunction-sections' '-fdata-sections' '-g3' '-O0' '-std=c99' '-v' '-o' 'CMakeFiles/cmTC_2c05d.dir/CMakeCCompilerABI.c.obj' '-c' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp']
|
ignore line: [COLLECT_GCC_OPTIONS='-mcpu=cortex-m4' '-mthumb' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-ffunction-sections' '-fdata-sections' '-g3' '-O0' '-std=c99' '-v' '-o' 'CMakeFiles/cmTC_feb17.dir/CMakeCCompilerABI.c.obj' '-c' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp']
|
||||||
ignore line: [ d:/arm_gcc/bin/../lib/gcc/arm-none-eabi/10.3.1/cc1.exe -quiet -v -imultilib thumb/v7e-m+fp/hard -iprefix d:\\arm_gcc\\bin\\../lib/gcc/arm-none-eabi/10.3.1/ -isysroot d:\\arm_gcc\\bin\\../arm-none-eabi -dD -D__USES_INITFINI__ C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Lib/site-packages/cmake/data/share/cmake-3.31/Modules/CMakeCCompilerABI.c -quiet -dumpbase CMakeCCompilerABI.c -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mlibarch=armv7e-m+fp -march=armv7e-m+fp -auxbase-strip CMakeFiles/cmTC_2c05d.dir/CMakeCCompilerABI.c.obj -g3 -O0 -Wall -Wextra -std=c99 -version -ffunction-sections -fdata-sections -o C:\\Users\\ZHIZHA~1\\AppData\\Local\\Temp\\cc6SOf0g.s]
|
ignore line: [ d:/arm_gcc/bin/../lib/gcc/arm-none-eabi/10.3.1/cc1.exe -quiet -v -imultilib thumb/v7e-m+fp/hard -iprefix d:\\arm_gcc\\bin\\../lib/gcc/arm-none-eabi/10.3.1/ -isysroot d:\\arm_gcc\\bin\\../arm-none-eabi -dD -D__USES_INITFINI__ C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Lib/site-packages/cmake/data/share/cmake-3.31/Modules/CMakeCCompilerABI.c -quiet -dumpbase CMakeCCompilerABI.c -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mlibarch=armv7e-m+fp -march=armv7e-m+fp -auxbase-strip CMakeFiles/cmTC_feb17.dir/CMakeCCompilerABI.c.obj -g3 -O0 -Wall -Wextra -std=c99 -version -ffunction-sections -fdata-sections -o C:\\Users\\ZHIZHA~1\\AppData\\Local\\Temp\\cc2Mw2P8.s]
|
||||||
ignore line: [GNU C99 (GNU Arm Embedded Toolchain 10.3-2021.10) version 10.3.1 20210824 (release) (arm-none-eabi)]
|
ignore line: [GNU C99 (GNU Arm Embedded Toolchain 10.3-2021.10) version 10.3.1 20210824 (release) (arm-none-eabi)]
|
||||||
ignore line: [ compiled by GNU C version 7.3-win32 20180312 GMP version 6.1.0 MPFR version 3.1.4 MPC version 1.0.3 isl version isl-0.18-GMP]
|
ignore line: [ compiled by GNU C version 7.3-win32 20180312 GMP version 6.1.0 MPFR version 3.1.4 MPC version 1.0.3 isl version isl-0.18-GMP]
|
||||||
ignore line: []
|
ignore line: []
|
||||||
@ -188,8 +188,8 @@ events:
|
|||||||
ignore line: []
|
ignore line: []
|
||||||
ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
|
ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
|
||||||
ignore line: [Compiler executable checksum: f3937ce18b4177bfd408ca565336596a]
|
ignore line: [Compiler executable checksum: f3937ce18b4177bfd408ca565336596a]
|
||||||
ignore line: [COLLECT_GCC_OPTIONS='-mcpu=cortex-m4' '-mthumb' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-ffunction-sections' '-fdata-sections' '-g3' '-O0' '-std=c99' '-v' '-o' 'CMakeFiles/cmTC_2c05d.dir/CMakeCCompilerABI.c.obj' '-c' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp']
|
ignore line: [COLLECT_GCC_OPTIONS='-mcpu=cortex-m4' '-mthumb' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-ffunction-sections' '-fdata-sections' '-g3' '-O0' '-std=c99' '-v' '-o' 'CMakeFiles/cmTC_feb17.dir/CMakeCCompilerABI.c.obj' '-c' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp']
|
||||||
ignore line: [ d:/arm_gcc/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/as.exe -v -march=armv7e-m -mfloat-abi=hard -mfpu=fpv4-sp-d16 -meabi=5 -o CMakeFiles/cmTC_2c05d.dir/CMakeCCompilerABI.c.obj C:\\Users\\ZHIZHA~1\\AppData\\Local\\Temp\\cc6SOf0g.s]
|
ignore line: [ d:/arm_gcc/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/as.exe -v -march=armv7e-m -mfloat-abi=hard -mfpu=fpv4-sp-d16 -meabi=5 -o CMakeFiles/cmTC_feb17.dir/CMakeCCompilerABI.c.obj C:\\Users\\ZHIZHA~1\\AppData\\Local\\Temp\\cc2Mw2P8.s]
|
||||||
ignore line: [GNU assembler version 2.36.1 (arm-none-eabi) using BFD version (GNU Arm Embedded Toolchain 10.3-2021.10) 2.36.1.20210621]
|
ignore line: [GNU assembler version 2.36.1 (arm-none-eabi) using BFD version (GNU Arm Embedded Toolchain 10.3-2021.10) 2.36.1.20210621]
|
||||||
ignore line: [COMPILER_PATH=d:/arm_gcc/bin/../lib/gcc/arm-none-eabi/10.3.1/]
|
ignore line: [COMPILER_PATH=d:/arm_gcc/bin/../lib/gcc/arm-none-eabi/10.3.1/]
|
||||||
ignore line: [d:/arm_gcc/bin/../lib/gcc/]
|
ignore line: [d:/arm_gcc/bin/../lib/gcc/]
|
||||||
@ -201,8 +201,8 @@ events:
|
|||||||
ignore line: [d:/arm_gcc/bin/../lib/gcc/]
|
ignore line: [d:/arm_gcc/bin/../lib/gcc/]
|
||||||
ignore line: [d:/arm_gcc/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/]
|
ignore line: [d:/arm_gcc/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/]
|
||||||
ignore line: [d:/arm_gcc/bin/../arm-none-eabi/lib/]
|
ignore line: [d:/arm_gcc/bin/../arm-none-eabi/lib/]
|
||||||
ignore line: [COLLECT_GCC_OPTIONS='-mcpu=cortex-m4' '-mthumb' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-ffunction-sections' '-fdata-sections' '-g3' '-O0' '-std=c99' '-v' '-o' 'CMakeFiles/cmTC_2c05d.dir/CMakeCCompilerABI.c.obj' '-c' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp']
|
ignore line: [COLLECT_GCC_OPTIONS='-mcpu=cortex-m4' '-mthumb' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-ffunction-sections' '-fdata-sections' '-g3' '-O0' '-std=c99' '-v' '-o' 'CMakeFiles/cmTC_feb17.dir/CMakeCCompilerABI.c.obj' '-c' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp']
|
||||||
ignore line: [[2/2] C:\\windows\\system32\\cmd.exe /C "cd . && C:\\Users\\ZHIZHANKEJI\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\cmake\\data\\bin\\cmake.exe -E rm -f libcmTC_2c05d.a && D:\\ARM_GCC\\bin\\arm-none-eabi-ar.exe qc libcmTC_2c05d.a CMakeFiles/cmTC_2c05d.dir/CMakeCCompilerABI.c.obj && D:\\ARM_GCC\\bin\\arm-none-eabi-ranlib.exe libcmTC_2c05d.a && cd ."]
|
ignore line: [[2/2] C:\\windows\\system32\\cmd.exe /C "cd . && C:\\Users\\ZHIZHANKEJI\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\cmake\\data\\bin\\cmake.exe -E rm -f libcmTC_feb17.a && D:\\ARM_GCC\\bin\\arm-none-eabi-ar.exe qc libcmTC_feb17.a CMakeFiles/cmTC_feb17.dir/CMakeCCompilerABI.c.obj && D:\\ARM_GCC\\bin\\arm-none-eabi-ranlib.exe libcmTC_feb17.a && cd ."]
|
||||||
ignore line: []
|
ignore line: []
|
||||||
ignore line: []
|
ignore line: []
|
||||||
implicit libs: []
|
implicit libs: []
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
Binary file not shown.
57
drivers/hal/hal.c
Normal file
57
drivers/hal/hal.c
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
/*
|
||||||
|
* 硬件抽象层实现
|
||||||
|
* 功能:实现硬件抽象层的初始化和操作结构体获取
|
||||||
|
* 依赖硬件:STM32F407VE
|
||||||
|
* 跨平台适配点:通过不同平台的实现文件适配不同硬件
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "hal.h"
|
||||||
|
|
||||||
|
/* 前向声明平台特定的硬件抽象层实现 */
|
||||||
|
extern const hal_uart_ops_t stm32f4_uart_ops;
|
||||||
|
extern const hal_i2c_ops_t stm32f4_i2c_ops;
|
||||||
|
extern const hal_eth_ops_t stm32f4_eth_ops;
|
||||||
|
|
||||||
|
/* 硬件抽象层操作结构体 */
|
||||||
|
static const hal_ops_t hal_ops = {
|
||||||
|
.uart = &stm32f4_uart_ops,
|
||||||
|
.i2c = &stm32f4_i2c_ops,
|
||||||
|
.eth = &stm32f4_eth_ops
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 硬件抽象层初始化
|
||||||
|
* @return hal_status_t: 操作结果
|
||||||
|
* @note 初始化所有硬件抽象层组件
|
||||||
|
*/
|
||||||
|
hal_status_t hal_init(void)
|
||||||
|
{
|
||||||
|
hal_status_t status = HAL_STATUS_OK;
|
||||||
|
|
||||||
|
/* 初始化串口 */
|
||||||
|
if (hal_ops.uart->init(HAL_UART_BAUDRATE_115200) != HAL_STATUS_OK) {
|
||||||
|
status = HAL_STATUS_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 初始化I2C */
|
||||||
|
if (hal_ops.i2c->init(HAL_I2C_CLOCK_SPEED_100K) != HAL_STATUS_OK) {
|
||||||
|
status = HAL_STATUS_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 初始化以太网 */
|
||||||
|
if (hal_ops.eth->init() != HAL_STATUS_OK) {
|
||||||
|
status = HAL_STATUS_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 获取硬件抽象层操作结构体
|
||||||
|
* @return const hal_ops_t*: 硬件抽象层操作结构体指针
|
||||||
|
* @note 返回硬件抽象层操作结构体,用于访问各种硬件操作
|
||||||
|
*/
|
||||||
|
const hal_ops_t *hal_get_ops(void)
|
||||||
|
{
|
||||||
|
return &hal_ops;
|
||||||
|
}
|
||||||
74
drivers/hal/hal.h
Normal file
74
drivers/hal/hal.h
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
/*
|
||||||
|
* 硬件抽象层通用接口
|
||||||
|
* 功能:定义硬件抽象层的通用接口,包括串口、I2C和以太网驱动
|
||||||
|
* 依赖硬件:STM32F407VE
|
||||||
|
* 跨平台适配点:通过不同平台的实现文件适配不同硬件
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef HAL_H
|
||||||
|
#define HAL_H
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include "osal.h"
|
||||||
|
|
||||||
|
/* 硬件抽象层错误码 */
|
||||||
|
typedef enum {
|
||||||
|
HAL_STATUS_OK = 0,
|
||||||
|
HAL_STATUS_ERROR = -1,
|
||||||
|
HAL_STATUS_BUSY = -2,
|
||||||
|
HAL_STATUS_TIMEOUT = -3
|
||||||
|
} hal_status_t;
|
||||||
|
|
||||||
|
/* 串口波特率定义 */
|
||||||
|
typedef enum {
|
||||||
|
HAL_UART_BAUDRATE_9600 = 9600,
|
||||||
|
HAL_UART_BAUDRATE_115200 = 115200,
|
||||||
|
HAL_UART_BAUDRATE_460800 = 460800,
|
||||||
|
HAL_UART_BAUDRATE_921600 = 921600
|
||||||
|
} hal_uart_baudrate_t;
|
||||||
|
|
||||||
|
/* I2C时钟速度定义 */
|
||||||
|
typedef enum {
|
||||||
|
HAL_I2C_CLOCK_SPEED_100K = 100000,
|
||||||
|
HAL_I2C_CLOCK_SPEED_400K = 400000
|
||||||
|
} hal_i2c_clock_speed_t;
|
||||||
|
|
||||||
|
/* 串口硬件抽象层接口 */
|
||||||
|
typedef struct {
|
||||||
|
hal_status_t (*init)(hal_uart_baudrate_t baudrate);
|
||||||
|
hal_status_t (*deinit)(void);
|
||||||
|
hal_status_t (*send)(const uint8_t *data, uint32_t len);
|
||||||
|
hal_status_t (*recv)(uint8_t *data, uint32_t len, uint32_t timeout);
|
||||||
|
} hal_uart_ops_t;
|
||||||
|
|
||||||
|
/* I2C硬件抽象层接口 */
|
||||||
|
typedef struct {
|
||||||
|
hal_status_t (*init)(hal_i2c_clock_speed_t clock_speed);
|
||||||
|
hal_status_t (*deinit)(void);
|
||||||
|
hal_status_t (*master_transmit)(uint16_t dev_addr, const uint8_t *data, uint32_t len, uint32_t timeout);
|
||||||
|
hal_status_t (*master_receive)(uint16_t dev_addr, uint8_t *data, uint32_t len, uint32_t timeout);
|
||||||
|
} hal_i2c_ops_t;
|
||||||
|
|
||||||
|
/* 以太网硬件抽象层接口 */
|
||||||
|
typedef struct {
|
||||||
|
hal_status_t (*init)(void);
|
||||||
|
hal_status_t (*deinit)(void);
|
||||||
|
hal_status_t (*send)(const uint8_t *data, uint32_t len);
|
||||||
|
hal_status_t (*recv)(uint8_t *data, uint32_t *len, uint32_t timeout);
|
||||||
|
hal_status_t (*get_link_status)(void);
|
||||||
|
} hal_eth_ops_t;
|
||||||
|
|
||||||
|
/* 硬件抽象层操作结构体 */
|
||||||
|
typedef struct {
|
||||||
|
const hal_uart_ops_t *uart;
|
||||||
|
const hal_i2c_ops_t *i2c;
|
||||||
|
const hal_eth_ops_t *eth;
|
||||||
|
} hal_ops_t;
|
||||||
|
|
||||||
|
/* 硬件抽象层初始化函数 */
|
||||||
|
extern hal_status_t hal_init(void);
|
||||||
|
|
||||||
|
/* 获取硬件抽象层操作结构体 */
|
||||||
|
extern const hal_ops_t *hal_get_ops(void);
|
||||||
|
|
||||||
|
#endif /* HAL_H */
|
||||||
444
drivers/hal/stm32f4_hal_eth.c
Normal file
444
drivers/hal/stm32f4_hal_eth.c
Normal file
@ -0,0 +1,444 @@
|
|||||||
|
/*
|
||||||
|
* STM32F4以太网硬件抽象层实现
|
||||||
|
* 功能:实现STM32F4平台的以太网硬件抽象层
|
||||||
|
* 依赖硬件:STM32F407VE
|
||||||
|
* 跨平台适配点:通过硬件抽象层接口适配不同平台
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "hal.h"
|
||||||
|
#include "stm32f4xx_hal.h"
|
||||||
|
#include "lwip/opt.h"
|
||||||
|
#include "lwip/mem.h"
|
||||||
|
#include "lwip/memp.h"
|
||||||
|
#include "lwip/timeouts.h"
|
||||||
|
#include "netif/etharp.h"
|
||||||
|
#include "lwip/ethip6.h"
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
/* 以太网句柄 */
|
||||||
|
static ETH_HandleTypeDef heth;
|
||||||
|
static uint32_t g_phy_address = 0; /* 存储PHY地址 */
|
||||||
|
static uint32_t g_last_link_check_time = 0; /* 上次链接状态检测时间 */
|
||||||
|
static uint32_t g_link_check_interval = 1000; /* 链接状态检测间隔 (ms) */
|
||||||
|
static uint8_t g_link_state_stable = 0; /* 链接状态稳定性标志 */
|
||||||
|
static uint8_t g_link_state_counter = 0; /* 链接状态计数器,用于防抖 */
|
||||||
|
|
||||||
|
/* DMA描述符和缓冲区 */
|
||||||
|
/* 优化缓冲区对齐方式,提高内存访问效率 */
|
||||||
|
__attribute__((section(".RxDecripSection"))) __attribute__((aligned(32))) static ETH_DMADescTypeDef DMARxDscrTab[ETH_RXBUFNB];
|
||||||
|
__attribute__((section(".TxDecripSection"))) __attribute__((aligned(32))) static ETH_DMADescTypeDef DMATxDscrTab[ETH_TXBUFNB];
|
||||||
|
__attribute__((section(".RxArraySection"))) __attribute__((aligned(32))) static uint8_t Rx_Buff[ETH_RXBUFNB][ETH_RX_BUF_SIZE];
|
||||||
|
__attribute__((section(".TxArraySection"))) __attribute__((aligned(32))) static uint8_t Tx_Buff[ETH_TXBUFNB][ETH_TX_BUF_SIZE];
|
||||||
|
|
||||||
|
/* 信号量 */
|
||||||
|
static osal_sem_t s_xSemaphore = NULL;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 检测并配置PHY
|
||||||
|
* @return HAL_StatusTypeDef: 操作结果
|
||||||
|
* @note 负责检测PHY地址并进行配置
|
||||||
|
*/
|
||||||
|
static hal_status_t detect_and_configure_phy(void)
|
||||||
|
{
|
||||||
|
uint32_t phy_id1 = 0, phy_id2 = 0;
|
||||||
|
uint8_t detected_phy_addr = 0xFF; /* 无效的初始值 */
|
||||||
|
uint32_t regvalue;
|
||||||
|
|
||||||
|
/* 优先检查常见的PHY地址,减少遍历次数 */
|
||||||
|
uint8_t common_phy_addresses[] = {0, 1, 2, 3, 16, 17, 18, 19, 20};
|
||||||
|
uint8_t common_phy_count = sizeof(common_phy_addresses) / sizeof(common_phy_addresses[0]);
|
||||||
|
|
||||||
|
/* 先检查常见地址 */
|
||||||
|
for(uint8_t i = 0; i < common_phy_count; i++) {
|
||||||
|
uint8_t addr = common_phy_addresses[i];
|
||||||
|
/* 读取PHY ID寄存器(通常是Reg 2和3) */
|
||||||
|
if(HAL_ETH_ReadPHYRegister(&heth, addr, 2, &phy_id1) == HAL_OK &&
|
||||||
|
HAL_ETH_ReadPHYRegister(&heth, addr, 3, &phy_id2) == HAL_OK) {
|
||||||
|
if((phy_id1 != 0xFFFF) && (phy_id1 != 0x0000) && (phy_id1 != 0)) {
|
||||||
|
detected_phy_addr = addr;
|
||||||
|
osal_log_i("Found PHY at Address %d (ID: %04x %04x)", addr, phy_id1, phy_id2);
|
||||||
|
goto phy_found;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 如果常见地址没找到,再遍历所有可能的地址 */
|
||||||
|
for(uint8_t addr = 0; addr <= 31; addr++) {
|
||||||
|
/* 跳过已经检查过的常见地址 */
|
||||||
|
uint8_t skip = 0;
|
||||||
|
for(uint8_t i = 0; i < common_phy_count; i++) {
|
||||||
|
if(addr == common_phy_addresses[i]) {
|
||||||
|
skip = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(skip) continue;
|
||||||
|
|
||||||
|
/* 读取PHY ID寄存器(通常是Reg 2和3) */
|
||||||
|
if(HAL_ETH_ReadPHYRegister(&heth, addr, 2, &phy_id1) == HAL_OK &&
|
||||||
|
HAL_ETH_ReadPHYRegister(&heth, addr, 3, &phy_id2) == HAL_OK) {
|
||||||
|
if((phy_id1 != 0xFFFF) && (phy_id1 != 0x0000) && (phy_id1 != 0)) {
|
||||||
|
detected_phy_addr = addr;
|
||||||
|
osal_log_i("Found PHY at Address %d (ID: %04x %04x)", addr, phy_id1, phy_id2);
|
||||||
|
goto phy_found;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
phy_found:
|
||||||
|
|
||||||
|
if (detected_phy_addr != 0xFF)
|
||||||
|
{
|
||||||
|
g_phy_address = detected_phy_addr;
|
||||||
|
|
||||||
|
/* PHY软复位 */
|
||||||
|
osal_log_i("Resetting PHY at address %d...", g_phy_address);
|
||||||
|
/* 写入复位位 */
|
||||||
|
HAL_ETH_WritePHYRegister(&heth, g_phy_address, PHY_BCR, PHY_RESET);
|
||||||
|
|
||||||
|
/* 等待复位完成 */
|
||||||
|
uint32_t tickstart = osal_tick_get();
|
||||||
|
uint32_t reset_timeout = 200; // 优化为200ms超时
|
||||||
|
do {
|
||||||
|
HAL_ETH_ReadPHYRegister(&heth, g_phy_address, PHY_BCR, ®value);
|
||||||
|
if((regvalue & PHY_RESET) == 0) break;
|
||||||
|
} while ((osal_tick_get() - tickstart) < reset_timeout); // 200ms超时
|
||||||
|
|
||||||
|
/* 添加延迟以确保PHY稳定 */
|
||||||
|
osal_thread_mdelay(50); // 优化为50ms延迟
|
||||||
|
return HAL_STATUS_OK;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
osal_log_e("No PHY found!");
|
||||||
|
return HAL_STATUS_ERROR;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 配置MAC
|
||||||
|
* @param macConf: MAC配置结构体指针
|
||||||
|
* @return 无
|
||||||
|
* @note 负责配置MAC的双工模式、速度和校验和等
|
||||||
|
*/
|
||||||
|
static void configure_mac(ETH_MACConfigTypeDef *macConf)
|
||||||
|
{
|
||||||
|
HAL_ETH_GetMACConfig(&heth, macConf);
|
||||||
|
macConf->DuplexMode = ETH_FULLDUPLEX_MODE;
|
||||||
|
macConf->Speed = ETH_SPEED_100M;
|
||||||
|
macConf->ChecksumOffload = ENABLE; /* 启用硬件校验和 */
|
||||||
|
HAL_ETH_SetMACConfig(&heth, macConf);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 以太网初始化
|
||||||
|
* @return hal_status_t: 操作结果
|
||||||
|
* @note 初始化以太网硬件
|
||||||
|
*/
|
||||||
|
static hal_status_t stm32f4_eth_init(void)
|
||||||
|
{
|
||||||
|
/* 使用固定MAC地址避免冲突/过滤 */
|
||||||
|
uint8_t macaddress[6] = { 0x00, 0x80, 0xE1, 0x00, 0x00, 0x55 };
|
||||||
|
ETH_MACConfigTypeDef macConf;
|
||||||
|
HAL_StatusTypeDef hal_eth_init_status;
|
||||||
|
|
||||||
|
osal_log_i("MAC: %02x:%02x:%02x:%02x:%02x:%02x",
|
||||||
|
macaddress[0], macaddress[1], macaddress[2],
|
||||||
|
macaddress[3], macaddress[4], macaddress[5]);
|
||||||
|
|
||||||
|
/* 初始化ETH句柄 */
|
||||||
|
heth.Instance = ETH;
|
||||||
|
heth.Init.MACAddr = macaddress;
|
||||||
|
heth.Init.MediaInterface = ETH_MEDIA_INTERFACE_RMII;
|
||||||
|
heth.Init.TxDesc = DMATxDscrTab;
|
||||||
|
heth.Init.RxDesc = DMARxDscrTab;
|
||||||
|
heth.Init.RxBuffLen = ETH_RX_BUF_SIZE;
|
||||||
|
|
||||||
|
/* 初始化ETH(MAC、DMA、GPIO通过MSP)以启用MDC/MDIO */
|
||||||
|
hal_eth_init_status = HAL_ETH_Init(&heth);
|
||||||
|
|
||||||
|
if (hal_eth_init_status == HAL_OK)
|
||||||
|
{
|
||||||
|
/* 检测并配置PHY */
|
||||||
|
if (detect_and_configure_phy() == HAL_STATUS_OK)
|
||||||
|
{
|
||||||
|
/* 配置MAC */
|
||||||
|
configure_mac(&macConf);
|
||||||
|
|
||||||
|
/* 手动启用混杂模式,因为它不在结构体中 */
|
||||||
|
heth.Instance->MACFFR |= ETH_MACFFR_PM;
|
||||||
|
|
||||||
|
/* 启动ETH中断 */
|
||||||
|
HAL_ETH_Start_IT(&heth);
|
||||||
|
|
||||||
|
/* 创建信号量 */
|
||||||
|
s_xSemaphore = osal_sem_create("eth_sem", 0);
|
||||||
|
|
||||||
|
return HAL_STATUS_OK;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
osal_log_e("HAL_ETH_Init failed");
|
||||||
|
}
|
||||||
|
|
||||||
|
return HAL_STATUS_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 以太网反初始化
|
||||||
|
* @return hal_status_t: 操作结果
|
||||||
|
* @note 反初始化以太网硬件
|
||||||
|
*/
|
||||||
|
static hal_status_t stm32f4_eth_deinit(void)
|
||||||
|
{
|
||||||
|
/* 停止ETH */
|
||||||
|
HAL_ETH_Stop(&heth);
|
||||||
|
|
||||||
|
/* 反初始化ETH */
|
||||||
|
if (HAL_ETH_DeInit(&heth) != HAL_OK) {
|
||||||
|
return HAL_STATUS_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 删除信号量 */
|
||||||
|
if (s_xSemaphore != NULL) {
|
||||||
|
osal_sem_delete(s_xSemaphore);
|
||||||
|
s_xSemaphore = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return HAL_STATUS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 以太网发送数据
|
||||||
|
* @param data: 数据指针
|
||||||
|
* @param len: 数据长度
|
||||||
|
* @return hal_status_t: 操作结果
|
||||||
|
* @note 发送数据
|
||||||
|
*/
|
||||||
|
static hal_status_t stm32f4_eth_send(const uint8_t *data, uint32_t len)
|
||||||
|
{
|
||||||
|
ETH_TxPacketConfigTypeDef txConfig;
|
||||||
|
ETH_BufferTypeDef txBuffer;
|
||||||
|
|
||||||
|
memset(&txConfig, 0, sizeof(ETH_TxPacketConfigTypeDef));
|
||||||
|
/* 启用硬件校验和插入 */
|
||||||
|
txConfig.Attributes = ETH_TX_PACKETS_FEATURES_CSUM | ETH_TX_PACKETS_FEATURES_CRCPAD;
|
||||||
|
txConfig.ChecksumCtrl = ETH_CHECKSUM_IPHDR_PAYLOAD_INSERT_PHDR_CALC;
|
||||||
|
txConfig.CRCPadCtrl = ETH_CRC_PAD_INSERT;
|
||||||
|
|
||||||
|
txBuffer.buffer = (uint8_t*)data;
|
||||||
|
txBuffer.len = len;
|
||||||
|
txBuffer.next = NULL;
|
||||||
|
|
||||||
|
txConfig.Length = len;
|
||||||
|
txConfig.TxBuffer = &txBuffer;
|
||||||
|
|
||||||
|
if (HAL_ETH_Transmit(&heth, &txConfig, 10) == HAL_OK) {
|
||||||
|
return HAL_STATUS_OK;
|
||||||
|
} else {
|
||||||
|
return HAL_STATUS_ERROR;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 以太网接收数据
|
||||||
|
* @param data: 数据指针
|
||||||
|
* @param len: 数据长度指针
|
||||||
|
* @param timeout: 超时时间
|
||||||
|
* @return hal_status_t: 操作结果
|
||||||
|
* @note 接收数据
|
||||||
|
*/
|
||||||
|
static hal_status_t stm32f4_eth_recv(uint8_t *data, uint32_t *len, uint32_t timeout)
|
||||||
|
{
|
||||||
|
uint8_t *buffer = NULL;
|
||||||
|
uint32_t rxLength = 0;
|
||||||
|
|
||||||
|
if (s_xSemaphore == NULL) {
|
||||||
|
return HAL_STATUS_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (osal_sem_take(s_xSemaphore, timeout) != OSAL_OK) {
|
||||||
|
return HAL_STATUS_TIMEOUT;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (HAL_ETH_ReadData(&heth, (void**)&buffer) == HAL_OK)
|
||||||
|
{
|
||||||
|
/* Get the received frame length from Rx descriptor list */
|
||||||
|
rxLength = heth.RxDescList.RxDataLength;
|
||||||
|
|
||||||
|
if (rxLength > 0 && buffer != NULL && data != NULL && len != NULL) {
|
||||||
|
memcpy(data, buffer, rxLength);
|
||||||
|
*len = rxLength;
|
||||||
|
return HAL_STATUS_OK;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return HAL_STATUS_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 获取以太网链接状态
|
||||||
|
* @return hal_status_t: 操作结果
|
||||||
|
* @note 获取以太网链接状态
|
||||||
|
*/
|
||||||
|
static hal_status_t stm32f4_eth_get_link_status(void)
|
||||||
|
{
|
||||||
|
uint32_t regvalue = 0;
|
||||||
|
uint32_t current_time = osal_tick_get();
|
||||||
|
|
||||||
|
/* 实现时间间隔控制,减少PHY寄存器读取 */
|
||||||
|
if ((current_time - g_last_link_check_time) < g_link_check_interval)
|
||||||
|
{
|
||||||
|
return g_link_state_stable ? HAL_STATUS_OK : HAL_STATUS_ERROR;
|
||||||
|
}
|
||||||
|
g_last_link_check_time = current_time;
|
||||||
|
|
||||||
|
/* 检查PHY地址是否有效 */
|
||||||
|
if (g_phy_address == 0 || g_phy_address > 31) {
|
||||||
|
osal_log_e("Invalid PHY address: %d", g_phy_address);
|
||||||
|
g_link_state_stable = 0;
|
||||||
|
g_link_state_counter = 0;
|
||||||
|
return HAL_STATUS_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 使用配置的PHY地址读取状态寄存器 */
|
||||||
|
HAL_StatusTypeDef status = HAL_ETH_ReadPHYRegister(&heth, g_phy_address, PHY_BSR, ®value);
|
||||||
|
if (status != HAL_OK) {
|
||||||
|
osal_log_e("Failed to read PHY register, status=%d", status);
|
||||||
|
g_link_state_counter--;
|
||||||
|
if (g_link_state_counter <= 0) {
|
||||||
|
g_link_state_counter = 0;
|
||||||
|
g_link_state_stable = 0;
|
||||||
|
}
|
||||||
|
return HAL_STATUS_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
osal_log_i("PHY BSR=0x%04x, LinkStatus=%d", regvalue, (regvalue & PHY_LINKED_STATUS) != 0);
|
||||||
|
|
||||||
|
if ((regvalue & PHY_LINKED_STATUS) != 0)
|
||||||
|
{
|
||||||
|
/* 链接状态防抖 */
|
||||||
|
g_link_state_counter++;
|
||||||
|
if (g_link_state_counter >= 3) /* 连续3次检测到链接状态为up */
|
||||||
|
{
|
||||||
|
g_link_state_stable = 1;
|
||||||
|
}
|
||||||
|
return HAL_STATUS_OK;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* 链接状态防抖 */
|
||||||
|
g_link_state_counter--;
|
||||||
|
if (g_link_state_counter <= 0) /* 连续3次检测到链接状态为down */
|
||||||
|
{
|
||||||
|
g_link_state_counter = 0;
|
||||||
|
g_link_state_stable = 0;
|
||||||
|
}
|
||||||
|
return HAL_STATUS_ERROR;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 以太网硬件抽象层操作结构体 */
|
||||||
|
const hal_eth_ops_t stm32f4_eth_ops = {
|
||||||
|
.init = stm32f4_eth_init,
|
||||||
|
.deinit = stm32f4_eth_deinit,
|
||||||
|
.send = stm32f4_eth_send,
|
||||||
|
.recv = stm32f4_eth_recv,
|
||||||
|
.get_link_status = stm32f4_eth_get_link_status
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 以太网Rx完成回调
|
||||||
|
* @param heth: 以太网句柄
|
||||||
|
* @return 无
|
||||||
|
* @note 以太网接收完成回调函数
|
||||||
|
*/
|
||||||
|
void HAL_ETH_RxCpltCallback(ETH_HandleTypeDef *heth)
|
||||||
|
{
|
||||||
|
(void)heth;
|
||||||
|
if (s_xSemaphore != NULL)
|
||||||
|
{
|
||||||
|
osal_sem_release(s_xSemaphore);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 以太网Rx分配回调
|
||||||
|
* @param buff: 缓冲区指针
|
||||||
|
* @return 无
|
||||||
|
* @note 以太网接收缓冲区分配回调函数
|
||||||
|
*/
|
||||||
|
void HAL_ETH_RxAllocateCallback(uint8_t **buff)
|
||||||
|
{
|
||||||
|
static int rx_idx = 0;
|
||||||
|
*buff = Rx_Buff[rx_idx];
|
||||||
|
rx_idx = (rx_idx + 1) % ETH_RXBUFNB;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 以太网Rx链接回调
|
||||||
|
* @param pStart: 开始指针
|
||||||
|
* @param pEnd: 结束指针
|
||||||
|
* @param buff: 缓冲区指针
|
||||||
|
* @param Length: 长度
|
||||||
|
* @return 无
|
||||||
|
* @note 以太网接收链接回调函数
|
||||||
|
*/
|
||||||
|
void HAL_ETH_RxLinkCallback(void **pStart, void **pEnd, uint8_t *buff, uint16_t Length)
|
||||||
|
{
|
||||||
|
(void)Length;
|
||||||
|
*pStart = (void *)buff;
|
||||||
|
*pEnd = (void *)buff;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 以太网中断处理函数
|
||||||
|
* @return 无
|
||||||
|
* @note 以太网中断处理函数
|
||||||
|
*/
|
||||||
|
void ETH_IRQHandler(void)
|
||||||
|
{
|
||||||
|
/* 直接调用HAL中断处理函数,不使用全局临界区
|
||||||
|
* HAL_ETH_IRQHandler内部已经有适当的中断保护机制
|
||||||
|
*/
|
||||||
|
HAL_ETH_IRQHandler(&heth);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 以太网MSP初始化
|
||||||
|
* @param heth: 以太网句柄
|
||||||
|
* @return 无
|
||||||
|
* @note 初始化以太网的MSP
|
||||||
|
*/
|
||||||
|
void HAL_ETH_MspInit(ETH_HandleTypeDef *heth)
|
||||||
|
{
|
||||||
|
(void)heth;
|
||||||
|
GPIO_InitTypeDef GPIO_InitStructure;
|
||||||
|
|
||||||
|
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||||
|
__HAL_RCC_GPIOB_CLK_ENABLE();
|
||||||
|
__HAL_RCC_GPIOC_CLK_ENABLE();
|
||||||
|
__HAL_RCC_SYSCFG_CLK_ENABLE();
|
||||||
|
|
||||||
|
__HAL_RCC_ETH_CLK_ENABLE();
|
||||||
|
|
||||||
|
/* PA1, PA2, PA7 */
|
||||||
|
GPIO_InitStructure.Pin = GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_7;
|
||||||
|
GPIO_InitStructure.Mode = GPIO_MODE_AF_PP;
|
||||||
|
GPIO_InitStructure.Pull = GPIO_NOPULL;
|
||||||
|
GPIO_InitStructure.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||||
|
GPIO_InitStructure.Alternate = GPIO_AF11_ETH;
|
||||||
|
HAL_GPIO_Init(GPIOA, &GPIO_InitStructure);
|
||||||
|
|
||||||
|
/* PC1, PC4, PC5 */
|
||||||
|
GPIO_InitStructure.Pin = GPIO_PIN_1 | GPIO_PIN_4 | GPIO_PIN_5;
|
||||||
|
HAL_GPIO_Init(GPIOC, &GPIO_InitStructure);
|
||||||
|
|
||||||
|
/* PB11, PB12, PB13 */
|
||||||
|
GPIO_InitStructure.Pin = GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13;
|
||||||
|
HAL_GPIO_Init(GPIOB, &GPIO_InitStructure);
|
||||||
|
|
||||||
|
HAL_NVIC_SetPriority(ETH_IRQn, 0x07, 0);
|
||||||
|
HAL_NVIC_EnableIRQ(ETH_IRQn);
|
||||||
|
}
|
||||||
144
drivers/hal/stm32f4_hal_i2c.c
Normal file
144
drivers/hal/stm32f4_hal_i2c.c
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
/*
|
||||||
|
* STM32F4 I2C硬件抽象层实现
|
||||||
|
* 功能:实现STM32F4平台的I2C硬件抽象层
|
||||||
|
* 依赖硬件:STM32F407VE
|
||||||
|
* 跨平台适配点:通过硬件抽象层接口适配不同平台
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "hal.h"
|
||||||
|
#include "stm32f4xx_hal.h"
|
||||||
|
|
||||||
|
/* I2C句柄 */
|
||||||
|
static I2C_HandleTypeDef hi2c1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief I2C初始化
|
||||||
|
* @param clock_speed: 时钟速度
|
||||||
|
* @return hal_status_t: 操作结果
|
||||||
|
* @note 初始化I2C硬件
|
||||||
|
*/
|
||||||
|
static hal_status_t stm32f4_i2c_init(hal_i2c_clock_speed_t clock_speed)
|
||||||
|
{
|
||||||
|
hi2c1.Instance = I2C1;
|
||||||
|
hi2c1.Init.ClockSpeed = clock_speed;
|
||||||
|
hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2;
|
||||||
|
hi2c1.Init.OwnAddress1 = 0;
|
||||||
|
hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
|
||||||
|
hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
|
||||||
|
hi2c1.Init.OwnAddress2 = 0;
|
||||||
|
hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
|
||||||
|
hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
|
||||||
|
|
||||||
|
if (HAL_I2C_Init(&hi2c1) != HAL_OK) {
|
||||||
|
return HAL_STATUS_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
return HAL_STATUS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief I2C反初始化
|
||||||
|
* @return hal_status_t: 操作结果
|
||||||
|
* @note 反初始化I2C硬件
|
||||||
|
*/
|
||||||
|
static hal_status_t stm32f4_i2c_deinit(void)
|
||||||
|
{
|
||||||
|
if (HAL_I2C_DeInit(&hi2c1) != HAL_OK) {
|
||||||
|
return HAL_STATUS_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
return HAL_STATUS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief I2C主模式发送数据
|
||||||
|
* @param dev_addr: 设备地址
|
||||||
|
* @param data: 数据指针
|
||||||
|
* @param len: 数据长度
|
||||||
|
* @param timeout: 超时时间
|
||||||
|
* @return hal_status_t: 操作结果
|
||||||
|
* @note 发送数据,使用阻塞方式
|
||||||
|
*/
|
||||||
|
static hal_status_t stm32f4_i2c_master_transmit(uint16_t dev_addr, const uint8_t *data, uint32_t len, uint32_t timeout)
|
||||||
|
{
|
||||||
|
if (HAL_I2C_Master_Transmit(&hi2c1, dev_addr, (uint8_t *)data, len, timeout) != HAL_OK) {
|
||||||
|
return HAL_STATUS_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
return HAL_STATUS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief I2C主模式接收数据
|
||||||
|
* @param dev_addr: 设备地址
|
||||||
|
* @param data: 数据指针
|
||||||
|
* @param len: 数据长度
|
||||||
|
* @param timeout: 超时时间
|
||||||
|
* @return hal_status_t: 操作结果
|
||||||
|
* @note 接收数据,使用阻塞方式
|
||||||
|
*/
|
||||||
|
static hal_status_t stm32f4_i2c_master_receive(uint16_t dev_addr, uint8_t *data, uint32_t len, uint32_t timeout)
|
||||||
|
{
|
||||||
|
if (HAL_I2C_Master_Receive(&hi2c1, dev_addr, data, len, timeout) != HAL_OK) {
|
||||||
|
return HAL_STATUS_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
return HAL_STATUS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* I2C硬件抽象层操作结构体 */
|
||||||
|
const hal_i2c_ops_t stm32f4_i2c_ops = {
|
||||||
|
.init = stm32f4_i2c_init,
|
||||||
|
.deinit = stm32f4_i2c_deinit,
|
||||||
|
.master_transmit = stm32f4_i2c_master_transmit,
|
||||||
|
.master_receive = stm32f4_i2c_master_receive
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief I2C MSP初始化
|
||||||
|
* @param i2cHandle: I2C句柄
|
||||||
|
* @return 无
|
||||||
|
* @note 初始化I2C的MSP
|
||||||
|
*/
|
||||||
|
void HAL_I2C_MspInit(I2C_HandleTypeDef* i2cHandle)
|
||||||
|
{
|
||||||
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||||
|
if(i2cHandle->Instance==I2C1)
|
||||||
|
{
|
||||||
|
/* I2C1 clock enable */
|
||||||
|
__HAL_RCC_I2C1_CLK_ENABLE();
|
||||||
|
__HAL_RCC_GPIOB_CLK_ENABLE();
|
||||||
|
|
||||||
|
/**I2C1 GPIO Configuration
|
||||||
|
PB6 ------> I2C1_SCL
|
||||||
|
PB7 ------> I2C1_SDA
|
||||||
|
*/
|
||||||
|
GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||||
|
GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;
|
||||||
|
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief I2C MSP反初始化
|
||||||
|
* @param i2cHandle: I2C句柄
|
||||||
|
* @return 无
|
||||||
|
* @note 反初始化I2C的MSP
|
||||||
|
*/
|
||||||
|
void HAL_I2C_MspDeInit(I2C_HandleTypeDef* i2cHandle)
|
||||||
|
{
|
||||||
|
if(i2cHandle->Instance==I2C1)
|
||||||
|
{
|
||||||
|
/* Peripheral clock disable */
|
||||||
|
__HAL_RCC_I2C1_CLK_DISABLE();
|
||||||
|
|
||||||
|
/**I2C1 GPIO Configuration
|
||||||
|
PB6 ------> I2C1_SCL
|
||||||
|
PB7 ------> I2C1_SDA
|
||||||
|
*/
|
||||||
|
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_6|GPIO_PIN_7);
|
||||||
|
}
|
||||||
|
}
|
||||||
140
drivers/hal/stm32f4_hal_uart.c
Normal file
140
drivers/hal/stm32f4_hal_uart.c
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
/*
|
||||||
|
* STM32F4串口硬件抽象层实现
|
||||||
|
* 功能:实现STM32F4平台的串口硬件抽象层
|
||||||
|
* 依赖硬件:STM32F407VE
|
||||||
|
* 跨平台适配点:通过硬件抽象层接口适配不同平台
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "hal.h"
|
||||||
|
#include "stm32f4xx_hal.h"
|
||||||
|
|
||||||
|
/* 串口句柄 */
|
||||||
|
static UART_HandleTypeDef huart1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 串口初始化
|
||||||
|
* @param baudrate: 波特率
|
||||||
|
* @return hal_status_t: 操作结果
|
||||||
|
* @note 初始化串口硬件
|
||||||
|
*/
|
||||||
|
static hal_status_t stm32f4_uart_init(hal_uart_baudrate_t baudrate)
|
||||||
|
{
|
||||||
|
huart1.Instance = USART1;
|
||||||
|
huart1.Init.BaudRate = baudrate;
|
||||||
|
huart1.Init.WordLength = UART_WORDLENGTH_8B;
|
||||||
|
huart1.Init.StopBits = UART_STOPBITS_1;
|
||||||
|
huart1.Init.Parity = UART_PARITY_NONE;
|
||||||
|
huart1.Init.Mode = UART_MODE_TX_RX;
|
||||||
|
huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
|
||||||
|
huart1.Init.OverSampling = UART_OVERSAMPLING_16;
|
||||||
|
|
||||||
|
if (HAL_UART_Init(&huart1) != HAL_OK) {
|
||||||
|
return HAL_STATUS_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
return HAL_STATUS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 串口反初始化
|
||||||
|
* @return hal_status_t: 操作结果
|
||||||
|
* @note 反初始化串口硬件
|
||||||
|
*/
|
||||||
|
static hal_status_t stm32f4_uart_deinit(void)
|
||||||
|
{
|
||||||
|
if (HAL_UART_DeInit(&huart1) != HAL_OK) {
|
||||||
|
return HAL_STATUS_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
return HAL_STATUS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 串口发送数据
|
||||||
|
* @param data: 数据指针
|
||||||
|
* @param len: 数据长度
|
||||||
|
* @return hal_status_t: 操作结果
|
||||||
|
* @note 发送数据,使用阻塞方式
|
||||||
|
*/
|
||||||
|
static hal_status_t stm32f4_uart_send(const uint8_t *data, uint32_t len)
|
||||||
|
{
|
||||||
|
if (HAL_UART_Transmit(&huart1, (uint8_t *)data, len, 1000) != HAL_OK) {
|
||||||
|
return HAL_STATUS_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
return HAL_STATUS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 串口接收数据
|
||||||
|
* @param data: 数据指针
|
||||||
|
* @param len: 数据长度
|
||||||
|
* @param timeout: 超时时间
|
||||||
|
* @return hal_status_t: 操作结果
|
||||||
|
* @note 接收数据,使用阻塞方式
|
||||||
|
*/
|
||||||
|
static hal_status_t stm32f4_uart_recv(uint8_t *data, uint32_t len, uint32_t timeout)
|
||||||
|
{
|
||||||
|
if (HAL_UART_Receive(&huart1, data, len, timeout) != HAL_OK) {
|
||||||
|
return HAL_STATUS_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
return HAL_STATUS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 串口硬件抽象层操作结构体 */
|
||||||
|
const hal_uart_ops_t stm32f4_uart_ops = {
|
||||||
|
.init = stm32f4_uart_init,
|
||||||
|
.deinit = stm32f4_uart_deinit,
|
||||||
|
.send = stm32f4_uart_send,
|
||||||
|
.recv = stm32f4_uart_recv
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief UART MSP初始化
|
||||||
|
* @param uartHandle: UART句柄
|
||||||
|
* @return 无
|
||||||
|
* @note 初始化UART的MSP
|
||||||
|
*/
|
||||||
|
void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
|
||||||
|
{
|
||||||
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||||
|
if(uartHandle->Instance==USART1)
|
||||||
|
{
|
||||||
|
/* USART1 clock enable */
|
||||||
|
__HAL_RCC_USART1_CLK_ENABLE();
|
||||||
|
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||||
|
|
||||||
|
/**USART1 GPIO Configuration
|
||||||
|
PA9 ------> USART1_TX
|
||||||
|
PA10 ------> USART1_RX
|
||||||
|
*/
|
||||||
|
GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||||
|
GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
|
||||||
|
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief UART MSP反初始化
|
||||||
|
* @param uartHandle: UART句柄
|
||||||
|
* @return 无
|
||||||
|
* @note 反初始化UART的MSP
|
||||||
|
*/
|
||||||
|
void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
|
||||||
|
{
|
||||||
|
if(uartHandle->Instance==USART1)
|
||||||
|
{
|
||||||
|
/* Peripheral clock disable */
|
||||||
|
__HAL_RCC_USART1_CLK_DISABLE();
|
||||||
|
|
||||||
|
/**USART1 GPIO Configuration
|
||||||
|
PA9 ------> USART1_TX
|
||||||
|
PA10 ------> USART1_RX
|
||||||
|
*/
|
||||||
|
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
|
||||||
|
}
|
||||||
|
}
|
||||||
125
log.txt
Normal file
125
log.txt
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
[Info] MAC: 00:80:e1:00:00:55
|
||||||
|
[Info] Found PHY at Address 1 (ID: 0007 c0f1)
|
||||||
|
[Info] Resetting PHY at address 1...
|
||||||
|
[Debug] Hardware abstraction layer initialized
|
||||||
|
|
||||||
|
[Info] Main: OSAL Log Level = 4
|
||||||
|
|
||||||
|
[Info] Test osal_log_i from main
|
||||||
|
[Debug] Initializing application components...
|
||||||
|
|
||||||
|
[Info] Event queue initialized
|
||||||
|
[Debug] Event queue initialized
|
||||||
|
|
||||||
|
[Info] Event handler initialized
|
||||||
|
[Debug] Event handler initialized
|
||||||
|
|
||||||
|
[Info] Transaction management initialized
|
||||||
|
[Debug] Transaction management initialized
|
||||||
|
|
||||||
|
[Info] State manager initialized
|
||||||
|
[Debug] State manager initialized
|
||||||
|
|
||||||
|
[Info] Error handler initialized
|
||||||
|
[Debug] Error handler initialized
|
||||||
|
|
||||||
|
[Info] Event handler registered for type 1
|
||||||
|
[Info] Event handler registered for type 2
|
||||||
|
[Info] Event handler registered for type 3
|
||||||
|
[Info] Event handler registered for type 4
|
||||||
|
[Info] Event handler registered for type 5
|
||||||
|
[Info] Event handler registered for type 7
|
||||||
|
[Info] Event handler registered for type 8
|
||||||
|
[Debug] Event handlers registered
|
||||||
|
|
||||||
|
[Debug] Initializing network components...
|
||||||
|
|
||||||
|
[Debug] Initializing TCP/IP stack...
|
||||||
|
|
||||||
|
[Debug] TCP/IP stack initialized.
|
||||||
|
|
||||||
|
[Debug] Network interface added
|
||||||
|
|
||||||
|
[Debug] Initializing sensors...
|
||||||
|
|
||||||
|
[Info] SHT40: Sending reset command 0x89
|
||||||
|
[Info] SHT40: Reset successful
|
||||||
|
[Info] SHT40 sensor initialized successfully
|
||||||
|
[Info] Sensor state set to 2
|
||||||
|
[Info] Performing SHT40 self-calibration using heater...
|
||||||
|
[Info] SHT40 self-calibration completed successfully
|
||||||
|
[Debug] Creating threads...
|
||||||
|
|
||||||
|
[Debug] Thread 'event_dispatch' created.
|
||||||
|
|
||||||
|
[Debug] Thread 'net_mon' created.
|
||||||
|
|
||||||
|
[Debug] Thread 'eth_input' created.
|
||||||
|
|
||||||
|
[Debug] Thread 'tcp_server' created.
|
||||||
|
|
||||||
|
[Debug] Thread 'blink' created.
|
||||||
|
|
||||||
|
[Debug] Memory Info: Total=88720, Used=12192, MaxUsed=12192
|
||||||
|
|
||||||
|
[Debug] System initialization completed. Starting OSAL...
|
||||||
|
|
||||||
|
[Info] Starting DHCP...
|
||||||
|
[Info] PHY BSR=0x7809, LinkStatus=0
|
||||||
|
.[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
[Info] Ethernet Link Up
|
||||||
|
[Info] Network link is up, starting DHCP...
|
||||||
|
|
||||||
|
[Info] Ethernet Link Down
|
||||||
|
.[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
[Info] Ethernet Link Up
|
||||||
|
.[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
.[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
.[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
.[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
.[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
.[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
.[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
.[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
.[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
.[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
.[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
.[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
.[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
.[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
.[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
.[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
.[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
.[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
.[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
.[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
.[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
.[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
.[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
.[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
.[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
.[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
.[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
.[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
.
|
||||||
|
[Warning] DHCP Timeout! Fallback to Static IP.
|
||||||
|
[Debug] Processing event type 2
|
||||||
|
[Info] Handling network connected event
|
||||||
|
[Info] Network state set to 2
|
||||||
|
[Info] IP Address: 192.168.1.10
|
||||||
|
[Info] Netmask: 255.255.255.0
|
||||||
|
[Info] Gateway: 192.168.1.1
|
||||||
|
[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
[Info] TCP Server Starting...
|
||||||
|
[Info] TCP Server listening on port 5588
|
||||||
|
[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
|
[Info] PHY BSR=0x782d, LinkStatus=1
|
||||||
@ -6,314 +6,38 @@
|
|||||||
#include "netif/etharp.h"
|
#include "netif/etharp.h"
|
||||||
#include "lwip/ethip6.h"
|
#include "lwip/ethip6.h"
|
||||||
#include "osal.h"
|
#include "osal.h"
|
||||||
|
#include "hal.h"
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
/* Ethernet Handle */
|
/* 硬件抽象层操作结构体 */
|
||||||
ETH_HandleTypeDef heth;
|
static const hal_ops_t *hal_ops = NULL;
|
||||||
static uint32_t g_phy_address = 0; /* Stored PHY Address */
|
|
||||||
static uint32_t g_last_link_check_time = 0; /* 上次链接状态检测时间 */
|
|
||||||
static uint32_t g_link_check_interval = 1000; /* 链接状态检测间隔 (ms) */
|
|
||||||
static uint8_t g_link_state_stable = 0; /* 链接状态稳定性标志 */
|
|
||||||
static uint8_t g_link_state_counter = 0; /* 链接状态计数器,用于防抖 */
|
|
||||||
|
|
||||||
/* DMA Descriptors and Buffers */
|
|
||||||
/* 优化缓冲区对齐方式,提高内存访问效率 */
|
|
||||||
__attribute__((section(".RxDecripSection"))) __attribute__((aligned(32))) ETH_DMADescTypeDef DMARxDscrTab[ETH_RXBUFNB];
|
|
||||||
__attribute__((section(".TxDecripSection"))) __attribute__((aligned(32))) ETH_DMADescTypeDef DMATxDscrTab[ETH_TXBUFNB];
|
|
||||||
__attribute__((section(".RxArraySection"))) __attribute__((aligned(32))) uint8_t Rx_Buff[ETH_RXBUFNB][ETH_RX_BUF_SIZE];
|
|
||||||
__attribute__((section(".TxArraySection"))) __attribute__((aligned(32))) uint8_t Tx_Buff[ETH_TXBUFNB][ETH_TX_BUF_SIZE];
|
|
||||||
|
|
||||||
/* 缓冲区管理优化:可以根据实际网络流量调整缓冲区大小和数量 */
|
|
||||||
/* 建议值:
|
|
||||||
* - 高流量场景:ETH_RXBUFNB = 8, ETH_TXBUFNB = 8
|
|
||||||
* - 低内存场景:ETH_RXBUFNB = 2, ETH_TXBUFNB = 2
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Semaphore for Ethernet */
|
|
||||||
static osal_sem_t s_xSemaphore = NULL;
|
|
||||||
|
|
||||||
/* 函数声明 */
|
|
||||||
static HAL_StatusTypeDef detect_and_configure_phy(void);
|
|
||||||
static void configure_mac(ETH_MACConfigTypeDef *macConf);
|
|
||||||
|
|
||||||
/* MSP Init - Implemented in board.c */
|
|
||||||
// void HAL_ETH_MspInit(ETH_HandleTypeDef *heth)
|
|
||||||
// {
|
|
||||||
// (void)heth;
|
|
||||||
// GPIO_InitTypeDef GPIO_InitStructure;
|
|
||||||
|
|
||||||
// __HAL_RCC_GPIOA_CLK_ENABLE();
|
|
||||||
// __HAL_RCC_GPIOB_CLK_ENABLE();
|
|
||||||
// __HAL_RCC_GPIOC_CLK_ENABLE();
|
|
||||||
// __HAL_RCC_SYSCFG_CLK_ENABLE();
|
|
||||||
|
|
||||||
// __HAL_RCC_ETH_CLK_ENABLE();
|
|
||||||
|
|
||||||
// /* PA1, PA2, PA7 */
|
|
||||||
// GPIO_InitStructure.Pin = GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_7;
|
|
||||||
// GPIO_InitStructure.Mode = GPIO_MODE_AF_PP;
|
|
||||||
// GPIO_InitStructure.Pull = GPIO_NOPULL;
|
|
||||||
// GPIO_InitStructure.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
|
||||||
// GPIO_InitStructure.Alternate = GPIO_AF11_ETH;
|
|
||||||
// HAL_GPIO_Init(GPIOA, &GPIO_InitStructure);
|
|
||||||
|
|
||||||
// /* PC1, PC4, PC5 */
|
|
||||||
// GPIO_InitStructure.Pin = GPIO_PIN_1 | GPIO_PIN_4 | GPIO_PIN_5;
|
|
||||||
// HAL_GPIO_Init(GPIOC, &GPIO_InitStructure);
|
|
||||||
|
|
||||||
// /* PB11, PB12, PB13 */
|
|
||||||
// GPIO_InitStructure.Pin = GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13;
|
|
||||||
// HAL_GPIO_Init(GPIOB, &GPIO_InitStructure);
|
|
||||||
//
|
|
||||||
// HAL_NVIC_SetPriority(ETH_IRQn, 0x07, 0);
|
|
||||||
// HAL_NVIC_EnableIRQ(ETH_IRQn);
|
|
||||||
// }
|
|
||||||
|
|
||||||
void HAL_ETH_RxCpltCallback(ETH_HandleTypeDef *heth)
|
|
||||||
{
|
|
||||||
(void)heth;
|
|
||||||
if (s_xSemaphore != NULL)
|
|
||||||
{
|
|
||||||
osal_sem_release(s_xSemaphore);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void HAL_ETH_RxAllocateCallback(uint8_t **buff)
|
|
||||||
{
|
|
||||||
static int rx_idx = 0;
|
|
||||||
*buff = Rx_Buff[rx_idx];
|
|
||||||
rx_idx = (rx_idx + 1) % ETH_RXBUFNB;
|
|
||||||
}
|
|
||||||
|
|
||||||
void HAL_ETH_RxLinkCallback(void **pStart, void **pEnd, uint8_t *buff, uint16_t Length)
|
|
||||||
{
|
|
||||||
(void)Length;
|
|
||||||
*pStart = (void *)buff;
|
|
||||||
*pEnd = (void *)buff;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ETH_IRQHandler(void)
|
|
||||||
{
|
|
||||||
/* 直接调用 HAL 中断处理函数,不使用全局临界区
|
|
||||||
* HAL_ETH_IRQHandler 内部已经有适当的中断保护机制
|
|
||||||
*/
|
|
||||||
HAL_ETH_IRQHandler(&heth);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief 以太网硬件初始化函数
|
|
||||||
* @param netif: 网络接口结构体指针
|
|
||||||
* @return 无
|
|
||||||
* @note 负责初始化以太网硬件,包括MAC、DMA、PHY等
|
|
||||||
*/
|
|
||||||
static void low_level_init(struct netif *netif)
|
|
||||||
{
|
|
||||||
/* Use a fixed MAC address to avoid conflicts/filtering */
|
|
||||||
uint8_t macaddress[6] = { 0x00, 0x80, 0xE1, 0x00, 0x00, 0x55 };
|
|
||||||
ETH_MACConfigTypeDef macConf;
|
|
||||||
HAL_StatusTypeDef hal_eth_init_status;
|
|
||||||
|
|
||||||
/* Generate MAC address from UID */
|
|
||||||
/*
|
|
||||||
uint32_t uid0 = HAL_GetUIDw0();
|
|
||||||
uint32_t uid1 = HAL_GetUIDw1();
|
|
||||||
uint32_t uid2 = HAL_GetUIDw2();
|
|
||||||
|
|
||||||
macaddress[0] = 0x02;
|
|
||||||
macaddress[1] = 0x80;
|
|
||||||
macaddress[2] = 0xE1;
|
|
||||||
macaddress[3] = (uid0 >> 16) & 0xFF;
|
|
||||||
macaddress[4] = (uid1 >> 8) & 0xFF;
|
|
||||||
macaddress[5] = uid2 & 0xFF;
|
|
||||||
*/
|
|
||||||
|
|
||||||
osal_log_i("MAC: %02x:%02x:%02x:%02x:%02x:%02x",
|
|
||||||
macaddress[0], macaddress[1], macaddress[2],
|
|
||||||
macaddress[3], macaddress[4], macaddress[5]);
|
|
||||||
|
|
||||||
/* 初始化 ETH 句柄 */
|
|
||||||
heth.Instance = ETH;
|
|
||||||
heth.Init.MACAddr = macaddress;
|
|
||||||
heth.Init.MediaInterface = ETH_MEDIA_INTERFACE_RMII;
|
|
||||||
heth.Init.TxDesc = DMATxDscrTab;
|
|
||||||
heth.Init.RxDesc = DMARxDscrTab;
|
|
||||||
heth.Init.RxBuffLen = ETH_RX_BUF_SIZE;
|
|
||||||
|
|
||||||
/* Initialize ETH (MAC, DMA, GPIOs via MSP) first to enable MDC/MDIO */
|
|
||||||
hal_eth_init_status = HAL_ETH_Init(&heth);
|
|
||||||
|
|
||||||
if (hal_eth_init_status == HAL_OK)
|
|
||||||
{
|
|
||||||
/* 检测并配置 PHY */
|
|
||||||
if (detect_and_configure_phy() == HAL_OK)
|
|
||||||
{
|
|
||||||
netif->flags |= NETIF_FLAG_LINK_UP;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
osal_log_e("HAL_ETH_Init failed");
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 配置 MAC */
|
|
||||||
configure_mac(&macConf);
|
|
||||||
|
|
||||||
/* Enable Promiscuous Mode manually as it's not in the struct */
|
|
||||||
heth.Instance->MACFFR |= ETH_MACFFR_PM;
|
|
||||||
|
|
||||||
/* 启动 ETH 中断 */
|
|
||||||
HAL_ETH_Start_IT(&heth);
|
|
||||||
|
|
||||||
/* 创建信号量 */
|
|
||||||
s_xSemaphore = osal_sem_create("eth_sem", 0);
|
|
||||||
|
|
||||||
/* 配置网络接口 */
|
|
||||||
netif->hwaddr_len = 6;
|
|
||||||
memcpy(netif->hwaddr, macaddress, 6);
|
|
||||||
netif->mtu = 1500;
|
|
||||||
netif->flags |= NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP;
|
|
||||||
#if LWIP_IPV6
|
|
||||||
netif->flags |= NETIF_FLAG_IGMP;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief 检测并配置 PHY
|
|
||||||
* @return HAL_StatusTypeDef: 操作结果
|
|
||||||
* @note 负责检测 PHY 地址并进行配置
|
|
||||||
*/
|
|
||||||
static HAL_StatusTypeDef detect_and_configure_phy(void)
|
|
||||||
{
|
|
||||||
uint32_t phy_id1 = 0, phy_id2 = 0;
|
|
||||||
uint8_t detected_phy_addr = 0xFF; /* Invalid initial value */
|
|
||||||
uint32_t regvalue;
|
|
||||||
|
|
||||||
/* Step 1: PHY address detection */
|
|
||||||
osal_log_i("Detecting PHY Address...");
|
|
||||||
|
|
||||||
/* 优先检查常见的 PHY 地址,减少遍历次数 */
|
|
||||||
uint8_t common_phy_addresses[] = {0, 1, 2, 3, 16, 17, 18, 19, 20};
|
|
||||||
uint8_t common_phy_count = sizeof(common_phy_addresses) / sizeof(common_phy_addresses[0]);
|
|
||||||
|
|
||||||
/* 先检查常见地址 */
|
|
||||||
for(uint8_t i = 0; i < common_phy_count; i++) {
|
|
||||||
uint8_t addr = common_phy_addresses[i];
|
|
||||||
/* Read PHY ID registers (typically Reg 2 and 3) */
|
|
||||||
if(HAL_ETH_ReadPHYRegister(&heth, addr, 2, &phy_id1) == HAL_OK &&
|
|
||||||
HAL_ETH_ReadPHYRegister(&heth, addr, 3, &phy_id2) == HAL_OK) {
|
|
||||||
if((phy_id1 != 0xFFFF) && (phy_id1 != 0x0000) && (phy_id1 != 0)) {
|
|
||||||
detected_phy_addr = addr;
|
|
||||||
osal_log_i("Found PHY at Address %d (ID: %04x %04x)", addr, phy_id1, phy_id2);
|
|
||||||
goto phy_found;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 如果常见地址没找到,再遍历所有可能的地址 */
|
|
||||||
for(uint8_t addr = 0; addr <= 31; addr++) {
|
|
||||||
/* 跳过已经检查过的常见地址 */
|
|
||||||
uint8_t skip = 0;
|
|
||||||
for(uint8_t i = 0; i < common_phy_count; i++) {
|
|
||||||
if(addr == common_phy_addresses[i]) {
|
|
||||||
skip = 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(skip) continue;
|
|
||||||
|
|
||||||
/* Read PHY ID registers (typically Reg 2 and 3) */
|
|
||||||
if(HAL_ETH_ReadPHYRegister(&heth, addr, 2, &phy_id1) == HAL_OK &&
|
|
||||||
HAL_ETH_ReadPHYRegister(&heth, addr, 3, &phy_id2) == HAL_OK) {
|
|
||||||
if((phy_id1 != 0xFFFF) && (phy_id1 != 0x0000) && (phy_id1 != 0)) {
|
|
||||||
detected_phy_addr = addr;
|
|
||||||
osal_log_i("Found PHY at Address %d (ID: %04x %04x)", addr, phy_id1, phy_id2);
|
|
||||||
goto phy_found;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
phy_found:
|
|
||||||
|
|
||||||
if (detected_phy_addr != 0xFF)
|
|
||||||
{
|
|
||||||
g_phy_address = detected_phy_addr;
|
|
||||||
|
|
||||||
/* Step 2: PHY Soft Reset */
|
|
||||||
osal_log_i("Resetting PHY...");
|
|
||||||
/* Write Reset Bit */
|
|
||||||
HAL_ETH_WritePHYRegister(&heth, g_phy_address, PHY_BCR, PHY_RESET);
|
|
||||||
|
|
||||||
/* Wait for Reset to clear */
|
|
||||||
uint32_t tickstart = osal_tick_get();
|
|
||||||
uint32_t reset_timeout = 200; // 优化为 200ms 超时
|
|
||||||
do {
|
|
||||||
HAL_ETH_ReadPHYRegister(&heth, g_phy_address, PHY_BCR, ®value);
|
|
||||||
if((regvalue & PHY_RESET) == 0) break;
|
|
||||||
} while ((osal_tick_get() - tickstart) < reset_timeout); // 200ms timeout
|
|
||||||
|
|
||||||
/* Add a delay to ensure PHY is stable */
|
|
||||||
osal_thread_mdelay(50); // 优化为 50ms 延迟
|
|
||||||
return HAL_OK;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
osal_log_e("No PHY found!");
|
|
||||||
return HAL_ERROR;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief 配置 MAC
|
|
||||||
* @param macConf: MAC 配置结构体指针
|
|
||||||
* @return 无
|
|
||||||
* @note 负责配置 MAC 的双工模式、速度和校验和等
|
|
||||||
*/
|
|
||||||
static void configure_mac(ETH_MACConfigTypeDef *macConf)
|
|
||||||
{
|
|
||||||
HAL_ETH_GetMACConfig(&heth, macConf);
|
|
||||||
macConf->DuplexMode = ETH_FULLDUPLEX_MODE;
|
|
||||||
macConf->Speed = ETH_SPEED_100M;
|
|
||||||
macConf->ChecksumOffload = ENABLE; /* Enable HW Checksum */
|
|
||||||
HAL_ETH_SetMACConfig(&heth, macConf);
|
|
||||||
}
|
|
||||||
|
|
||||||
static err_t low_level_output(struct netif *netif, struct pbuf *p)
|
static err_t low_level_output(struct netif *netif, struct pbuf *p)
|
||||||
{
|
{
|
||||||
(void)netif;
|
(void)netif;
|
||||||
err_t errval;
|
err_t errval;
|
||||||
struct pbuf *q;
|
uint8_t *buffer = NULL;
|
||||||
ETH_TxPacketConfigTypeDef txConfig;
|
uint32_t len = p->tot_len;
|
||||||
ETH_BufferTypeDef txBuffers[16];
|
|
||||||
|
|
||||||
memset(&txConfig, 0, sizeof(ETH_TxPacketConfigTypeDef));
|
/* 分配缓冲区 */
|
||||||
/* Enable Hardware Checksum Insertion */
|
buffer = (uint8_t *)mem_malloc(len);
|
||||||
txConfig.Attributes = ETH_TX_PACKETS_FEATURES_CSUM | ETH_TX_PACKETS_FEATURES_CRCPAD;
|
if (buffer == NULL) {
|
||||||
txConfig.ChecksumCtrl = ETH_CHECKSUM_IPHDR_PAYLOAD_INSERT_PHDR_CALC;
|
return ERR_MEM;
|
||||||
txConfig.CRCPadCtrl = ETH_CRC_PAD_INSERT;
|
|
||||||
|
|
||||||
int i = 0;
|
|
||||||
for(q = p; q != NULL; q = q->next)
|
|
||||||
{
|
|
||||||
if (i >= 16) break;
|
|
||||||
txBuffers[i].buffer = (uint8_t*)q->payload;
|
|
||||||
txBuffers[i].len = q->len;
|
|
||||||
if (q->next != NULL) {
|
|
||||||
txBuffers[i].next = &txBuffers[i+1];
|
|
||||||
} else {
|
|
||||||
txBuffers[i].next = NULL;
|
|
||||||
}
|
|
||||||
i++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
txConfig.Length = p->tot_len;
|
/* 复制数据到缓冲区 */
|
||||||
txConfig.TxBuffer = &txBuffers[0];
|
pbuf_copy_partial(p, buffer, len, 0);
|
||||||
|
|
||||||
if (HAL_ETH_Transmit(&heth, &txConfig, 10) == HAL_OK) {
|
/* 使用硬件抽象层发送数据 */
|
||||||
|
if (hal_ops && hal_ops->eth && hal_ops->eth->send(buffer, len) == HAL_STATUS_OK) {
|
||||||
errval = ERR_OK;
|
errval = ERR_OK;
|
||||||
} else {
|
} else {
|
||||||
errval = ERR_IF;
|
errval = ERR_IF;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 释放缓冲区 */
|
||||||
|
mem_free(buffer);
|
||||||
|
|
||||||
return errval;
|
return errval;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -324,36 +48,31 @@ static struct pbuf * low_level_input(struct netif *netif)
|
|||||||
uint8_t *buffer = NULL;
|
uint8_t *buffer = NULL;
|
||||||
uint32_t rxLength = 0;
|
uint32_t rxLength = 0;
|
||||||
|
|
||||||
if (HAL_ETH_ReadData(&heth, (void**)&buffer) == HAL_OK)
|
/* 分配缓冲区 */
|
||||||
|
buffer = (uint8_t *)mem_malloc(ETH_RX_BUF_SIZE);
|
||||||
|
if (buffer == NULL) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 使用硬件抽象层接收数据 */
|
||||||
|
if (hal_ops && hal_ops->eth && hal_ops->eth->recv(buffer, &rxLength, 100) == HAL_STATUS_OK)
|
||||||
{
|
{
|
||||||
rxLength = heth.RxDescList.RxDataLength;
|
|
||||||
// osal_log_i("Rx: rxLength=%d", rxLength);
|
|
||||||
|
|
||||||
if (rxLength > 0 && buffer != NULL) {
|
if (rxLength > 0 && buffer != NULL) {
|
||||||
/* 尝试使用 PBUF_REF 模式创建 pbuf,实现零拷贝
|
/* 尝试使用 PBUF_REF 模式创建 pbuf,实现零拷贝 */
|
||||||
* 注意:需要确保缓冲区在 pbuf 使用期间有效
|
p = pbuf_alloc(PBUF_RAW, rxLength, PBUF_POOL);
|
||||||
*/
|
|
||||||
p = pbuf_alloc(PBUF_RAW, rxLength, PBUF_REF);
|
|
||||||
if (p != NULL) {
|
if (p != NULL) {
|
||||||
/* 直接设置 pbuf 的 payload 指针,避免数据拷贝 */
|
pbuf_take(p, buffer, rxLength);
|
||||||
p->payload = buffer;
|
|
||||||
p->len = rxLength;
|
|
||||||
p->tot_len = rxLength;
|
|
||||||
// osal_log_i("Rx: p->tot_len=%d", p->tot_len);
|
|
||||||
} else {
|
} else {
|
||||||
/* 如果 PBUF_REF 失败,回退到传统方式 */
|
osal_log_e("pbuf_alloc failed");
|
||||||
p = pbuf_alloc(PBUF_RAW, rxLength, PBUF_POOL);
|
|
||||||
if (p != NULL) {
|
|
||||||
pbuf_take(p, buffer, rxLength);
|
|
||||||
} else {
|
|
||||||
osal_log_e("pbuf_alloc failed");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
/* HAL_ETH_ReadData internally calls ETH_UpdateDescriptor, so descriptors are rebuilt automatically */
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/* ReadData failed, maybe no data available */
|
/* ReadData failed, maybe no data available */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 释放缓冲区 */
|
||||||
|
mem_free(buffer);
|
||||||
|
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -361,25 +80,17 @@ void ethernetif_input(struct netif *netif)
|
|||||||
{
|
{
|
||||||
struct pbuf *p;
|
struct pbuf *p;
|
||||||
|
|
||||||
if (s_xSemaphore == NULL) {
|
do {
|
||||||
osal_thread_mdelay(100);
|
p = low_level_input(netif);
|
||||||
return;
|
if (p != NULL)
|
||||||
}
|
{
|
||||||
|
// osal_log_i("Rx: len=%d", p->tot_len); // Debug print
|
||||||
if (osal_sem_take(s_xSemaphore, 100) == OSAL_OK)
|
if (netif->input(p, netif) != ERR_OK)
|
||||||
{
|
|
||||||
do {
|
|
||||||
p = low_level_input(netif);
|
|
||||||
if (p != NULL)
|
|
||||||
{
|
{
|
||||||
// osal_log_i("Rx: len=%d", p->tot_len); // Debug print
|
pbuf_free(p);
|
||||||
if (netif->input(p, netif) != ERR_OK)
|
|
||||||
{
|
|
||||||
pbuf_free(p);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} while(p != NULL);
|
}
|
||||||
}
|
} while(p != NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
err_t ethernetif_init(struct netif *netif)
|
err_t ethernetif_init(struct netif *netif)
|
||||||
@ -396,53 +107,38 @@ err_t ethernetif_init(struct netif *netif)
|
|||||||
netif->output = etharp_output;
|
netif->output = etharp_output;
|
||||||
netif->linkoutput = low_level_output;
|
netif->linkoutput = low_level_output;
|
||||||
|
|
||||||
low_level_init(netif);
|
/* 获取硬件抽象层操作结构体 */
|
||||||
|
hal_ops = hal_get_ops();
|
||||||
|
if (hal_ops == NULL) {
|
||||||
|
osal_log_e("Failed to get HAL ops");
|
||||||
|
return ERR_IF;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 配置网络接口 */
|
||||||
|
netif->hwaddr_len = 6;
|
||||||
|
/* MAC地址由硬件抽象层初始化 */
|
||||||
|
netif->mtu = 1500;
|
||||||
|
netif->flags |= NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP;
|
||||||
|
#if LWIP_IPV6
|
||||||
|
netif->flags |= NETIF_FLAG_IGMP;
|
||||||
|
#endif
|
||||||
|
|
||||||
return ERR_OK;
|
return ERR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ethernet_link_check_state(struct netif *netif)
|
void ethernet_link_check_state(struct netif *netif)
|
||||||
{
|
{
|
||||||
uint32_t regvalue = 0;
|
if (hal_ops && hal_ops->eth) {
|
||||||
uint32_t current_time = osal_tick_get();
|
if (hal_ops->eth->get_link_status() == HAL_STATUS_OK) {
|
||||||
|
if (!netif_is_link_up(netif)) {
|
||||||
/* 实现时间间隔控制,减少 PHY 寄存器读取 */
|
|
||||||
if ((current_time - g_last_link_check_time) < g_link_check_interval)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
g_last_link_check_time = current_time;
|
|
||||||
|
|
||||||
/* Use configured PHY Address */
|
|
||||||
HAL_ETH_ReadPHYRegister(&heth, g_phy_address, PHY_BSR, ®value);
|
|
||||||
|
|
||||||
if ((regvalue & PHY_LINKED_STATUS) != (uint16_t)RESET)
|
|
||||||
{
|
|
||||||
/* 链接状态防抖 */
|
|
||||||
g_link_state_counter++;
|
|
||||||
if (g_link_state_counter >= 3) /* 连续 3 次检测到链接状态为 up */
|
|
||||||
{
|
|
||||||
if (!netif_is_link_up(netif))
|
|
||||||
{
|
|
||||||
netif_set_link_up(netif);
|
netif_set_link_up(netif);
|
||||||
osal_log_i("Ethernet Link Up");
|
osal_log_i("Ethernet Link Up");
|
||||||
}
|
}
|
||||||
g_link_state_stable = 1;
|
} else {
|
||||||
}
|
if (netif_is_link_up(netif)) {
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* 链接状态防抖 */
|
|
||||||
g_link_state_counter--;
|
|
||||||
if (g_link_state_counter <= 0) /* 连续 3 次检测到链接状态为 down */
|
|
||||||
{
|
|
||||||
g_link_state_counter = 0;
|
|
||||||
if (netif_is_link_up(netif))
|
|
||||||
{
|
|
||||||
netif_set_link_down(netif);
|
netif_set_link_down(netif);
|
||||||
osal_log_i("Ethernet Link Down");
|
osal_log_i("Ethernet Link Down");
|
||||||
}
|
}
|
||||||
g_link_state_stable = 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,234 +0,0 @@
|
|||||||
/*
|
|
||||||
******************************************************************************
|
|
||||||
**
|
|
||||||
|
|
||||||
** File : LinkerScript.ld
|
|
||||||
**
|
|
||||||
** Author : STM32CubeMX
|
|
||||||
**
|
|
||||||
** Abstract : Linker script for STM32F407VETx series
|
|
||||||
** 512Kbytes FLASH and 192Kbytes RAM
|
|
||||||
**
|
|
||||||
** Set heap size, stack size and stack location according
|
|
||||||
** to application requirements.
|
|
||||||
**
|
|
||||||
** Set memory bank area and size if external memory is used.
|
|
||||||
**
|
|
||||||
** Target : STMicroelectronics STM32
|
|
||||||
**
|
|
||||||
** Distribution: The file is distributed "as is," without any warranty
|
|
||||||
** of any kind.
|
|
||||||
**
|
|
||||||
*****************************************************************************
|
|
||||||
** @attention
|
|
||||||
**
|
|
||||||
** <h2><center>© COPYRIGHT(c) 2025 STMicroelectronics</center></h2>
|
|
||||||
**
|
|
||||||
** Redistribution and use in source and binary forms, with or without modification,
|
|
||||||
** are permitted provided that the following conditions are met:
|
|
||||||
** 1. Redistributions of source code must retain the above copyright notice,
|
|
||||||
** this list of conditions and the following disclaimer.
|
|
||||||
** 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
** this list of conditions and the following disclaimer in the documentation
|
|
||||||
** and/or other materials provided with the distribution.
|
|
||||||
** 3. Neither the name of STMicroelectronics nor the names of its contributors
|
|
||||||
** may be used to endorse or promote products derived from this software
|
|
||||||
** without specific prior written permission.
|
|
||||||
**
|
|
||||||
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
||||||
** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
||||||
** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
||||||
** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
||||||
** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
||||||
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
**
|
|
||||||
*****************************************************************************
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* ===============================================
|
|
||||||
STM32F407VET6 链接脚本中文注释说明
|
|
||||||
=============================================== */
|
|
||||||
|
|
||||||
/* 入口点定义 */
|
|
||||||
ENTRY(Reset_Handler) /* 程序入口点:复位中断处理函数 */
|
|
||||||
|
|
||||||
/* 用户模式堆栈的最高地址 */
|
|
||||||
_estack = ORIGIN(RAM) + LENGTH(RAM); /* 栈顶地址:RAM 结束地址 */
|
|
||||||
/* 如果堆和栈无法放入 RAM,将生成链接错误 */
|
|
||||||
_Min_Heap_Size = 0x200; /* 最小堆大小:512 字节 */
|
|
||||||
_Min_Stack_Size = 0x400; /* 最小栈大小:1024 字节 */
|
|
||||||
|
|
||||||
/* 内存区域定义 */
|
|
||||||
MEMORY
|
|
||||||
{
|
|
||||||
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K /* 主 RAM:128KB,可读写,地址从 0x20000000 开始 */
|
|
||||||
CCMRAM (xrw) : ORIGIN = 0x10000000, LENGTH = 64K /* 核心耦合内存:64KB,可读写,地址从 0x10000000 开始 */
|
|
||||||
FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 512K /* 闪存:512KB,只读和可执行,地址从 0x08000000 开始 */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 定义输出段 */
|
|
||||||
SECTIONS
|
|
||||||
{
|
|
||||||
/* 启动代码首先放入 FLASH */
|
|
||||||
.isr_vector : /* 中断向量表段 */
|
|
||||||
{
|
|
||||||
. = ALIGN(4); /* 4 字节对齐 */
|
|
||||||
KEEP(*(.isr_vector)) /* 保留中断向量表(启动代码),防止被优化掉 */
|
|
||||||
. = ALIGN(4); /* 4 字节对齐 */
|
|
||||||
} >FLASH /* 此段放入 FLASH 内存区域 */
|
|
||||||
|
|
||||||
/* 程序代码和其他数据放入 FLASH */
|
|
||||||
.text : /* 代码段 */
|
|
||||||
{
|
|
||||||
. = ALIGN(4); /* 4 字节对齐 */
|
|
||||||
*(.text) /* .text 段(代码) */
|
|
||||||
*(.text*) /* .text* 段(代码) */
|
|
||||||
*(.glue_7) /* ARM 到 Thumb 代码的粘合代码 */
|
|
||||||
*(.glue_7t) /* Thumb 到 ARM 代码的粘合代码 */
|
|
||||||
*(.eh_frame) /* 异常处理框架 */
|
|
||||||
|
|
||||||
KEEP (*(.init)) /* 保留初始化代码 */
|
|
||||||
KEEP (*(.fini)) /* 保留结束代码 */
|
|
||||||
|
|
||||||
. = ALIGN(4); /* 4 字节对齐 */
|
|
||||||
_etext = .; /* 在代码结束处定义全局符号 */
|
|
||||||
} >FLASH /* 此段放入 FLASH 内存区域 */
|
|
||||||
|
|
||||||
/* 常量数据放入 FLASH */
|
|
||||||
.rodata : /* 只读数据段 */
|
|
||||||
{
|
|
||||||
. = ALIGN(4); /* 4 字节对齐 */
|
|
||||||
*(.rodata) /* .rodata 段(常量、字符串等) */
|
|
||||||
*(.rodata*) /* .rodata* 段(常量、字符串等) */
|
|
||||||
. = ALIGN(4); /* 4 字节对齐 */
|
|
||||||
} >FLASH /* 此段放入 FLASH 内存区域 */
|
|
||||||
|
|
||||||
/* ARM 异常表扩展段 */
|
|
||||||
.ARM.extab : /* "READONLY" 关键字仅在 GCC11 及更高版本支持,使用 GCC10 或更早版本时请移除 */
|
|
||||||
{
|
|
||||||
. = ALIGN(4); /* 4 字节对齐 */
|
|
||||||
*(.ARM.extab* .gnu.linkonce.armextab.*) /* ARM 异常表扩展 */
|
|
||||||
. = ALIGN(4); /* 4 字节对齐 */
|
|
||||||
} >FLASH /* 此段放入 FLASH 内存区域 */
|
|
||||||
|
|
||||||
/* ARM 索引段 */
|
|
||||||
.ARM : /* "READONLY" 关键字仅在 GCC11 及更高版本支持,使用 GCC10 或更早版本时请移除 */
|
|
||||||
{
|
|
||||||
. = ALIGN(4); /* 4 字节对齐 */
|
|
||||||
__exidx_start = .; /* 异常索引开始 */
|
|
||||||
*(.ARM.exidx*) /* ARM 异常索引 */
|
|
||||||
__exidx_end = .; /* 异常索引结束 */
|
|
||||||
. = ALIGN(4); /* 4 字节对齐 */
|
|
||||||
} >FLASH /* 此段放入 FLASH 内存区域 */
|
|
||||||
|
|
||||||
/* 预初始化数组段 */
|
|
||||||
.preinit_array : /* "READONLY" 关键字仅在 GCC11 及更高版本支持,使用 GCC10 或更早版本时请移除 */
|
|
||||||
{
|
|
||||||
. = ALIGN(4); /* 4 字节对齐 */
|
|
||||||
PROVIDE_HIDDEN (__preinit_array_start = .); /* 提供预初始化数组开始的隐藏符号 */
|
|
||||||
KEEP (*(.preinit_array*)) /* 保留预初始化数组 */
|
|
||||||
PROVIDE_HIDDEN (__preinit_array_end = .); /* 提供预初始化数组结束的隐藏符号 */
|
|
||||||
. = ALIGN(4); /* 4 字节对齐 */
|
|
||||||
} >FLASH /* 此段放入 FLASH 内存区域 */
|
|
||||||
|
|
||||||
/* 初始化数组段 */
|
|
||||||
.init_array : /* "READONLY" 关键字仅在 GCC11 及更高版本支持,使用 GCC10 或更早版本时请移除 */
|
|
||||||
{
|
|
||||||
. = ALIGN(4); /* 4 字节对齐 */
|
|
||||||
PROVIDE_HIDDEN (__init_array_start = .); /* 提供初始化数组开始的隐藏符号 */
|
|
||||||
KEEP (*(SORT(.init_array.*))) /* 保留排序后的初始化数组 */
|
|
||||||
KEEP (*(.init_array*)) /* 保留初始化数组 */
|
|
||||||
PROVIDE_HIDDEN (__init_array_end = .); /* 提供初始化数组结束的隐藏符号 */
|
|
||||||
. = ALIGN(4); /* 4 字节对齐 */
|
|
||||||
} >FLASH /* 此段放入 FLASH 内存区域 */
|
|
||||||
|
|
||||||
/* 结束数组段 */
|
|
||||||
.fini_array : /* "READONLY" 关键字仅在 GCC11 及更高版本支持,使用 GCC10 或更早版本时请移除 */
|
|
||||||
{
|
|
||||||
. = ALIGN(4); /* 4 字节对齐 */
|
|
||||||
PROVIDE_HIDDEN (__fini_array_start = .); /* 提供结束数组开始的隐藏符号 */
|
|
||||||
KEEP (*(SORT(.fini_array.*))) /* 保留排序后的结束数组 */
|
|
||||||
KEEP (*(.fini_array*)) /* 保留结束数组 */
|
|
||||||
PROVIDE_HIDDEN (__fini_array_end = .); /* 提供结束数组结束的隐藏符号 */
|
|
||||||
. = ALIGN(4); /* 4 字节对齐 */
|
|
||||||
} >FLASH /* 此段放入 FLASH 内存区域 */
|
|
||||||
|
|
||||||
/* 用于启动时初始化数据 */
|
|
||||||
_sidata = LOADADDR(.data); /* .data 段的加载地址(在 FLASH 中的地址) */
|
|
||||||
|
|
||||||
/* 初始化数据段放入 RAM,加载地址在代码之后 */
|
|
||||||
.data : /* 初始化数据段 */
|
|
||||||
{
|
|
||||||
. = ALIGN(4); /* 4 字节对齐 */
|
|
||||||
_sdata = .; /* 在数据开始处创建全局符号 */
|
|
||||||
*(.data) /* .data 段 */
|
|
||||||
*(.data*) /* .data* 段 */
|
|
||||||
*(.RamFunc) /* 要放入 RAM 执行的函数 */
|
|
||||||
*(.RamFunc*) /* 要放入 RAM 执行的函数 */
|
|
||||||
|
|
||||||
. = ALIGN(4); /* 4 字节对齐 */
|
|
||||||
_edata = .; /* 在数据结束处定义全局符号 */
|
|
||||||
} >RAM AT> FLASH /* 此段放入 RAM 内存区域,但加载地址在 FLASH 中 */
|
|
||||||
|
|
||||||
_siccmram = LOADADDR(.ccmram); /* .ccmram 段的加载地址(在 FLASH 中的地址) */
|
|
||||||
|
|
||||||
/* CCM-RAM 段
|
|
||||||
*
|
|
||||||
* 重要说明!
|
|
||||||
* 如果初始化变量将放在此段中,
|
|
||||||
* 需要修改启动代码以复制初始值。
|
|
||||||
*/
|
|
||||||
.ccmram : /* CCM-RAM 段 */
|
|
||||||
{
|
|
||||||
. = ALIGN(4); /* 4 字节对齐 */
|
|
||||||
_sccmram = .; /* 在 CCM-RAM 开始处创建全局符号 */
|
|
||||||
*(.ccmram) /* .ccmram 段 */
|
|
||||||
*(.ccmram*) /* .ccmram* 段 */
|
|
||||||
|
|
||||||
. = ALIGN(4); /* 4 字节对齐 */
|
|
||||||
_eccmram = .; /* 在 CCM-RAM 结束处创建全局符号 */
|
|
||||||
} >CCMRAM AT> FLASH /* 此段放入 CCMRAM 内存区域,但加载地址在 FLASH 中 */
|
|
||||||
|
|
||||||
|
|
||||||
/* 未初始化数据段 */
|
|
||||||
. = ALIGN(4); /* 4 字节对齐 */
|
|
||||||
.bss : /* BSS 段(未初始化数据) */
|
|
||||||
{
|
|
||||||
/* 启动代码使用此符号初始化 .bss 段 */
|
|
||||||
_sbss = .; /* 在 BSS 开始处定义全局符号 */
|
|
||||||
__bss_start__ = _sbss; /* 与 _sbss 相同,兼容不同命名 */
|
|
||||||
*(.bss) /* .bss 段 */
|
|
||||||
*(.bss*) /* .bss* 段 */
|
|
||||||
*(COMMON) /* 公共符号 */
|
|
||||||
|
|
||||||
. = ALIGN(4); /* 4 字节对齐 */
|
|
||||||
_ebss = .; /* 在 BSS 结束处定义全局符号 */
|
|
||||||
__bss_end__ = _ebss; /* 与 _ebss 相同,兼容不同命名 */
|
|
||||||
} >RAM /* 此段放入 RAM 内存区域 */
|
|
||||||
|
|
||||||
/* 用户堆和栈段,用于检查是否有足够的 RAM 剩余 */
|
|
||||||
._user_heap_stack : /* 用户堆和栈段 */
|
|
||||||
{
|
|
||||||
. = ALIGN(8); /* 8 字节对齐 */
|
|
||||||
PROVIDE ( end = . ); /* 提供 end 符号 */
|
|
||||||
PROVIDE ( _end = . ); /* 提供 _end 符号,与 end 相同 */
|
|
||||||
. = . + _Min_Heap_Size; /* 分配最小堆大小 */
|
|
||||||
. = . + _Min_Stack_Size; /* 分配最小栈大小 */
|
|
||||||
. = ALIGN(8); /* 8 字节对齐 */
|
|
||||||
} >RAM /* 此段放入 RAM 内存区域 */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* 从标准库中移除信息 */
|
|
||||||
/DISCARD/ : /* 丢弃段 */
|
|
||||||
{
|
|
||||||
libc.a ( * ) /* 丢弃标准 C 库的所有信息 */
|
|
||||||
libm.a ( * ) /* 丢弃标准数学库的所有信息 */
|
|
||||||
libgcc.a ( * ) /* 丢弃 GCC 库的所有信息 */
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,521 +0,0 @@
|
|||||||
/**
|
|
||||||
******************************************************************************
|
|
||||||
* @file startup_stm32f407xx.s
|
|
||||||
* @author MCD Application Team
|
|
||||||
* @brief STM32F407xx Devices vector table for GCC based toolchains.
|
|
||||||
* This module performs:
|
|
||||||
* - Set the initial SP
|
|
||||||
* - Set the initial PC == Reset_Handler,
|
|
||||||
* - Set the vector table entries with the exceptions ISR address
|
|
||||||
* - Branches to main in the C library (which eventually
|
|
||||||
* calls main()).
|
|
||||||
* After Reset the Cortex-M4 processor is in Thread mode,
|
|
||||||
* priority is Privileged, and the Stack is set to Main.
|
|
||||||
******************************************************************************
|
|
||||||
* @attention
|
|
||||||
*
|
|
||||||
* <h2><center>© COPYRIGHT 2017 STMicroelectronics</center></h2>
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without modification,
|
|
||||||
* are permitted provided that the following conditions are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright notice,
|
|
||||||
* this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
* this list of conditions and the following disclaimer in the documentation
|
|
||||||
* and/or other materials provided with the distribution.
|
|
||||||
* 3. Neither the name of STMicroelectronics nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
||||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
||||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
||||||
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
||||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*
|
|
||||||
******************************************************************************
|
|
||||||
*/
|
|
||||||
|
|
||||||
.syntax unified
|
|
||||||
.cpu cortex-m4
|
|
||||||
.fpu softvfp
|
|
||||||
.thumb
|
|
||||||
|
|
||||||
.global g_pfnVectors
|
|
||||||
.global Default_Handler
|
|
||||||
|
|
||||||
/* start address for the initialization values of the .data section.
|
|
||||||
defined in linker script */
|
|
||||||
.word _sidata
|
|
||||||
/* start address for the .data section. defined in linker script */
|
|
||||||
.word _sdata
|
|
||||||
/* end address for the .data section. defined in linker script */
|
|
||||||
.word _edata
|
|
||||||
/* start address for the .bss section. defined in linker script */
|
|
||||||
.word _sbss
|
|
||||||
/* end address for the .bss section. defined in linker script */
|
|
||||||
.word _ebss
|
|
||||||
/* stack used for SystemInit_ExtMemCtl; always internal RAM used */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief This is the code that gets called when the processor first
|
|
||||||
* starts execution following a reset event. Only the absolutely
|
|
||||||
* necessary set is performed, after which the application
|
|
||||||
* supplied main() routine is called.
|
|
||||||
* @param None
|
|
||||||
* @retval : None
|
|
||||||
*/
|
|
||||||
|
|
||||||
.section .text.Reset_Handler
|
|
||||||
.weak Reset_Handler
|
|
||||||
.type Reset_Handler, %function
|
|
||||||
Reset_Handler:
|
|
||||||
ldr sp, =_estack /* set stack pointer */
|
|
||||||
|
|
||||||
/* Copy the data segment initializers from flash to SRAM */
|
|
||||||
movs r1, #0
|
|
||||||
b LoopCopyDataInit
|
|
||||||
|
|
||||||
CopyDataInit:
|
|
||||||
ldr r3, =_sidata
|
|
||||||
ldr r3, [r3, r1]
|
|
||||||
str r3, [r0, r1]
|
|
||||||
adds r1, r1, #4
|
|
||||||
|
|
||||||
LoopCopyDataInit:
|
|
||||||
ldr r0, =_sdata
|
|
||||||
ldr r3, =_edata
|
|
||||||
adds r2, r0, r1
|
|
||||||
cmp r2, r3
|
|
||||||
bcc CopyDataInit
|
|
||||||
ldr r2, =_sbss
|
|
||||||
b LoopFillZerobss
|
|
||||||
/* Zero fill the bss segment. */
|
|
||||||
FillZerobss:
|
|
||||||
movs r3, #0
|
|
||||||
str r3, [r2], #4
|
|
||||||
|
|
||||||
LoopFillZerobss:
|
|
||||||
ldr r3, = _ebss
|
|
||||||
cmp r2, r3
|
|
||||||
bcc FillZerobss
|
|
||||||
|
|
||||||
/* Call the clock system intitialization function.*/
|
|
||||||
bl SystemInit
|
|
||||||
/* Call static constructors */
|
|
||||||
bl __libc_init_array
|
|
||||||
/* Call the application's entry point.*/
|
|
||||||
bl main
|
|
||||||
bx lr
|
|
||||||
.size Reset_Handler, .-Reset_Handler
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief This is the code that gets called when the processor receives an
|
|
||||||
* unexpected interrupt. This simply enters an infinite loop, preserving
|
|
||||||
* the system state for examination by a debugger.
|
|
||||||
* @param None
|
|
||||||
* @retval None
|
|
||||||
*/
|
|
||||||
.section .text.Default_Handler,"ax",%progbits
|
|
||||||
Default_Handler:
|
|
||||||
Infinite_Loop:
|
|
||||||
b Infinite_Loop
|
|
||||||
.size Default_Handler, .-Default_Handler
|
|
||||||
/******************************************************************************
|
|
||||||
*
|
|
||||||
* The minimal vector table for a Cortex M3. Note that the proper constructs
|
|
||||||
* must be placed on this to ensure that it ends up at physical address
|
|
||||||
* 0x0000.0000.
|
|
||||||
*
|
|
||||||
*******************************************************************************/
|
|
||||||
.section .isr_vector,"a",%progbits
|
|
||||||
.type g_pfnVectors, %object
|
|
||||||
.size g_pfnVectors, .-g_pfnVectors
|
|
||||||
|
|
||||||
|
|
||||||
g_pfnVectors:
|
|
||||||
.word _estack
|
|
||||||
.word Reset_Handler
|
|
||||||
.word NMI_Handler
|
|
||||||
.word HardFault_Handler
|
|
||||||
.word MemManage_Handler
|
|
||||||
.word BusFault_Handler
|
|
||||||
.word UsageFault_Handler
|
|
||||||
.word 0
|
|
||||||
.word 0
|
|
||||||
.word 0
|
|
||||||
.word 0
|
|
||||||
.word SVC_Handler
|
|
||||||
.word DebugMon_Handler
|
|
||||||
.word 0
|
|
||||||
.word PendSV_Handler
|
|
||||||
.word SysTick_Handler
|
|
||||||
|
|
||||||
/* External Interrupts */
|
|
||||||
.word WWDG_IRQHandler /* Window WatchDog */
|
|
||||||
.word PVD_IRQHandler /* PVD through EXTI Line detection */
|
|
||||||
.word TAMP_STAMP_IRQHandler /* Tamper and TimeStamps through the EXTI line */
|
|
||||||
.word RTC_WKUP_IRQHandler /* RTC Wakeup through the EXTI line */
|
|
||||||
.word FLASH_IRQHandler /* FLASH */
|
|
||||||
.word RCC_IRQHandler /* RCC */
|
|
||||||
.word EXTI0_IRQHandler /* EXTI Line0 */
|
|
||||||
.word EXTI1_IRQHandler /* EXTI Line1 */
|
|
||||||
.word EXTI2_IRQHandler /* EXTI Line2 */
|
|
||||||
.word EXTI3_IRQHandler /* EXTI Line3 */
|
|
||||||
.word EXTI4_IRQHandler /* EXTI Line4 */
|
|
||||||
.word DMA1_Stream0_IRQHandler /* DMA1 Stream 0 */
|
|
||||||
.word DMA1_Stream1_IRQHandler /* DMA1 Stream 1 */
|
|
||||||
.word DMA1_Stream2_IRQHandler /* DMA1 Stream 2 */
|
|
||||||
.word DMA1_Stream3_IRQHandler /* DMA1 Stream 3 */
|
|
||||||
.word DMA1_Stream4_IRQHandler /* DMA1 Stream 4 */
|
|
||||||
.word DMA1_Stream5_IRQHandler /* DMA1 Stream 5 */
|
|
||||||
.word DMA1_Stream6_IRQHandler /* DMA1 Stream 6 */
|
|
||||||
.word ADC_IRQHandler /* ADC1, ADC2 and ADC3s */
|
|
||||||
.word CAN1_TX_IRQHandler /* CAN1 TX */
|
|
||||||
.word CAN1_RX0_IRQHandler /* CAN1 RX0 */
|
|
||||||
.word CAN1_RX1_IRQHandler /* CAN1 RX1 */
|
|
||||||
.word CAN1_SCE_IRQHandler /* CAN1 SCE */
|
|
||||||
.word EXTI9_5_IRQHandler /* External Line[9:5]s */
|
|
||||||
.word TIM1_BRK_TIM9_IRQHandler /* TIM1 Break and TIM9 */
|
|
||||||
.word TIM1_UP_TIM10_IRQHandler /* TIM1 Update and TIM10 */
|
|
||||||
.word TIM1_TRG_COM_TIM11_IRQHandler /* TIM1 Trigger and Commutation and TIM11 */
|
|
||||||
.word TIM1_CC_IRQHandler /* TIM1 Capture Compare */
|
|
||||||
.word TIM2_IRQHandler /* TIM2 */
|
|
||||||
.word TIM3_IRQHandler /* TIM3 */
|
|
||||||
.word TIM4_IRQHandler /* TIM4 */
|
|
||||||
.word I2C1_EV_IRQHandler /* I2C1 Event */
|
|
||||||
.word I2C1_ER_IRQHandler /* I2C1 Error */
|
|
||||||
.word I2C2_EV_IRQHandler /* I2C2 Event */
|
|
||||||
.word I2C2_ER_IRQHandler /* I2C2 Error */
|
|
||||||
.word SPI1_IRQHandler /* SPI1 */
|
|
||||||
.word SPI2_IRQHandler /* SPI2 */
|
|
||||||
.word USART1_IRQHandler /* USART1 */
|
|
||||||
.word USART2_IRQHandler /* USART2 */
|
|
||||||
.word USART3_IRQHandler /* USART3 */
|
|
||||||
.word EXTI15_10_IRQHandler /* External Line[15:10]s */
|
|
||||||
.word RTC_Alarm_IRQHandler /* RTC Alarm (A and B) through EXTI Line */
|
|
||||||
.word OTG_FS_WKUP_IRQHandler /* USB OTG FS Wakeup through EXTI line */
|
|
||||||
.word TIM8_BRK_TIM12_IRQHandler /* TIM8 Break and TIM12 */
|
|
||||||
.word TIM8_UP_TIM13_IRQHandler /* TIM8 Update and TIM13 */
|
|
||||||
.word TIM8_TRG_COM_TIM14_IRQHandler /* TIM8 Trigger and Commutation and TIM14 */
|
|
||||||
.word TIM8_CC_IRQHandler /* TIM8 Capture Compare */
|
|
||||||
.word DMA1_Stream7_IRQHandler /* DMA1 Stream7 */
|
|
||||||
.word FSMC_IRQHandler /* FSMC */
|
|
||||||
.word SDIO_IRQHandler /* SDIO */
|
|
||||||
.word TIM5_IRQHandler /* TIM5 */
|
|
||||||
.word SPI3_IRQHandler /* SPI3 */
|
|
||||||
.word UART4_IRQHandler /* UART4 */
|
|
||||||
.word UART5_IRQHandler /* UART5 */
|
|
||||||
.word TIM6_DAC_IRQHandler /* TIM6 and DAC1&2 underrun errors */
|
|
||||||
.word TIM7_IRQHandler /* TIM7 */
|
|
||||||
.word DMA2_Stream0_IRQHandler /* DMA2 Stream 0 */
|
|
||||||
.word DMA2_Stream1_IRQHandler /* DMA2 Stream 1 */
|
|
||||||
.word DMA2_Stream2_IRQHandler /* DMA2 Stream 2 */
|
|
||||||
.word DMA2_Stream3_IRQHandler /* DMA2 Stream 3 */
|
|
||||||
.word DMA2_Stream4_IRQHandler /* DMA2 Stream 4 */
|
|
||||||
.word ETH_IRQHandler /* Ethernet */
|
|
||||||
.word ETH_WKUP_IRQHandler /* Ethernet Wakeup through EXTI line */
|
|
||||||
.word CAN2_TX_IRQHandler /* CAN2 TX */
|
|
||||||
.word CAN2_RX0_IRQHandler /* CAN2 RX0 */
|
|
||||||
.word CAN2_RX1_IRQHandler /* CAN2 RX1 */
|
|
||||||
.word CAN2_SCE_IRQHandler /* CAN2 SCE */
|
|
||||||
.word OTG_FS_IRQHandler /* USB OTG FS */
|
|
||||||
.word DMA2_Stream5_IRQHandler /* DMA2 Stream 5 */
|
|
||||||
.word DMA2_Stream6_IRQHandler /* DMA2 Stream 6 */
|
|
||||||
.word DMA2_Stream7_IRQHandler /* DMA2 Stream 7 */
|
|
||||||
.word USART6_IRQHandler /* USART6 */
|
|
||||||
.word I2C3_EV_IRQHandler /* I2C3 event */
|
|
||||||
.word I2C3_ER_IRQHandler /* I2C3 error */
|
|
||||||
.word OTG_HS_EP1_OUT_IRQHandler /* USB OTG HS End Point 1 Out */
|
|
||||||
.word OTG_HS_EP1_IN_IRQHandler /* USB OTG HS End Point 1 In */
|
|
||||||
.word OTG_HS_WKUP_IRQHandler /* USB OTG HS Wakeup through EXTI */
|
|
||||||
.word OTG_HS_IRQHandler /* USB OTG HS */
|
|
||||||
.word DCMI_IRQHandler /* DCMI */
|
|
||||||
.word 0 /* CRYP crypto */
|
|
||||||
.word HASH_RNG_IRQHandler /* Hash and Rng */
|
|
||||||
.word FPU_IRQHandler /* FPU */
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
*
|
|
||||||
* Provide weak aliases for each Exception handler to the Default_Handler.
|
|
||||||
* As they are weak aliases, any function with the same name will override
|
|
||||||
* this definition.
|
|
||||||
*
|
|
||||||
*******************************************************************************/
|
|
||||||
.weak NMI_Handler
|
|
||||||
.thumb_set NMI_Handler,Default_Handler
|
|
||||||
|
|
||||||
.weak HardFault_Handler
|
|
||||||
.thumb_set HardFault_Handler,Default_Handler
|
|
||||||
|
|
||||||
.weak MemManage_Handler
|
|
||||||
.thumb_set MemManage_Handler,Default_Handler
|
|
||||||
|
|
||||||
.weak BusFault_Handler
|
|
||||||
.thumb_set BusFault_Handler,Default_Handler
|
|
||||||
|
|
||||||
.weak UsageFault_Handler
|
|
||||||
.thumb_set UsageFault_Handler,Default_Handler
|
|
||||||
|
|
||||||
.weak SVC_Handler
|
|
||||||
.thumb_set SVC_Handler,Default_Handler
|
|
||||||
|
|
||||||
.weak DebugMon_Handler
|
|
||||||
.thumb_set DebugMon_Handler,Default_Handler
|
|
||||||
|
|
||||||
.weak PendSV_Handler
|
|
||||||
.thumb_set PendSV_Handler,Default_Handler
|
|
||||||
|
|
||||||
.weak SysTick_Handler
|
|
||||||
.thumb_set SysTick_Handler,Default_Handler
|
|
||||||
|
|
||||||
.weak WWDG_IRQHandler
|
|
||||||
.thumb_set WWDG_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak PVD_IRQHandler
|
|
||||||
.thumb_set PVD_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak TAMP_STAMP_IRQHandler
|
|
||||||
.thumb_set TAMP_STAMP_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak RTC_WKUP_IRQHandler
|
|
||||||
.thumb_set RTC_WKUP_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak FLASH_IRQHandler
|
|
||||||
.thumb_set FLASH_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak RCC_IRQHandler
|
|
||||||
.thumb_set RCC_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak EXTI0_IRQHandler
|
|
||||||
.thumb_set EXTI0_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak EXTI1_IRQHandler
|
|
||||||
.thumb_set EXTI1_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak EXTI2_IRQHandler
|
|
||||||
.thumb_set EXTI2_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak EXTI3_IRQHandler
|
|
||||||
.thumb_set EXTI3_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak EXTI4_IRQHandler
|
|
||||||
.thumb_set EXTI4_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak DMA1_Stream0_IRQHandler
|
|
||||||
.thumb_set DMA1_Stream0_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak DMA1_Stream1_IRQHandler
|
|
||||||
.thumb_set DMA1_Stream1_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak DMA1_Stream2_IRQHandler
|
|
||||||
.thumb_set DMA1_Stream2_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak DMA1_Stream3_IRQHandler
|
|
||||||
.thumb_set DMA1_Stream3_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak DMA1_Stream4_IRQHandler
|
|
||||||
.thumb_set DMA1_Stream4_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak DMA1_Stream5_IRQHandler
|
|
||||||
.thumb_set DMA1_Stream5_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak DMA1_Stream6_IRQHandler
|
|
||||||
.thumb_set DMA1_Stream6_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak ADC_IRQHandler
|
|
||||||
.thumb_set ADC_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak CAN1_TX_IRQHandler
|
|
||||||
.thumb_set CAN1_TX_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak CAN1_RX0_IRQHandler
|
|
||||||
.thumb_set CAN1_RX0_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak CAN1_RX1_IRQHandler
|
|
||||||
.thumb_set CAN1_RX1_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak CAN1_SCE_IRQHandler
|
|
||||||
.thumb_set CAN1_SCE_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak EXTI9_5_IRQHandler
|
|
||||||
.thumb_set EXTI9_5_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak TIM1_BRK_TIM9_IRQHandler
|
|
||||||
.thumb_set TIM1_BRK_TIM9_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak TIM1_UP_TIM10_IRQHandler
|
|
||||||
.thumb_set TIM1_UP_TIM10_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak TIM1_TRG_COM_TIM11_IRQHandler
|
|
||||||
.thumb_set TIM1_TRG_COM_TIM11_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak TIM1_CC_IRQHandler
|
|
||||||
.thumb_set TIM1_CC_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak TIM2_IRQHandler
|
|
||||||
.thumb_set TIM2_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak TIM3_IRQHandler
|
|
||||||
.thumb_set TIM3_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak TIM4_IRQHandler
|
|
||||||
.thumb_set TIM4_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak I2C1_EV_IRQHandler
|
|
||||||
.thumb_set I2C1_EV_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak I2C1_ER_IRQHandler
|
|
||||||
.thumb_set I2C1_ER_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak I2C2_EV_IRQHandler
|
|
||||||
.thumb_set I2C2_EV_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak I2C2_ER_IRQHandler
|
|
||||||
.thumb_set I2C2_ER_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak SPI1_IRQHandler
|
|
||||||
.thumb_set SPI1_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak SPI2_IRQHandler
|
|
||||||
.thumb_set SPI2_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak USART1_IRQHandler
|
|
||||||
.thumb_set USART1_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak USART2_IRQHandler
|
|
||||||
.thumb_set USART2_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak USART3_IRQHandler
|
|
||||||
.thumb_set USART3_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak EXTI15_10_IRQHandler
|
|
||||||
.thumb_set EXTI15_10_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak RTC_Alarm_IRQHandler
|
|
||||||
.thumb_set RTC_Alarm_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak OTG_FS_WKUP_IRQHandler
|
|
||||||
.thumb_set OTG_FS_WKUP_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak TIM8_BRK_TIM12_IRQHandler
|
|
||||||
.thumb_set TIM8_BRK_TIM12_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak TIM8_UP_TIM13_IRQHandler
|
|
||||||
.thumb_set TIM8_UP_TIM13_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak TIM8_TRG_COM_TIM14_IRQHandler
|
|
||||||
.thumb_set TIM8_TRG_COM_TIM14_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak TIM8_CC_IRQHandler
|
|
||||||
.thumb_set TIM8_CC_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak DMA1_Stream7_IRQHandler
|
|
||||||
.thumb_set DMA1_Stream7_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak FSMC_IRQHandler
|
|
||||||
.thumb_set FSMC_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak SDIO_IRQHandler
|
|
||||||
.thumb_set SDIO_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak TIM5_IRQHandler
|
|
||||||
.thumb_set TIM5_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak SPI3_IRQHandler
|
|
||||||
.thumb_set SPI3_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak UART4_IRQHandler
|
|
||||||
.thumb_set UART4_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak UART5_IRQHandler
|
|
||||||
.thumb_set UART5_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak TIM6_DAC_IRQHandler
|
|
||||||
.thumb_set TIM6_DAC_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak TIM7_IRQHandler
|
|
||||||
.thumb_set TIM7_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak DMA2_Stream0_IRQHandler
|
|
||||||
.thumb_set DMA2_Stream0_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak DMA2_Stream1_IRQHandler
|
|
||||||
.thumb_set DMA2_Stream1_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak DMA2_Stream2_IRQHandler
|
|
||||||
.thumb_set DMA2_Stream2_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak DMA2_Stream3_IRQHandler
|
|
||||||
.thumb_set DMA2_Stream3_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak DMA2_Stream4_IRQHandler
|
|
||||||
.thumb_set DMA2_Stream4_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak ETH_IRQHandler
|
|
||||||
.thumb_set ETH_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak ETH_WKUP_IRQHandler
|
|
||||||
.thumb_set ETH_WKUP_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak CAN2_TX_IRQHandler
|
|
||||||
.thumb_set CAN2_TX_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak CAN2_RX0_IRQHandler
|
|
||||||
.thumb_set CAN2_RX0_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak CAN2_RX1_IRQHandler
|
|
||||||
.thumb_set CAN2_RX1_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak CAN2_SCE_IRQHandler
|
|
||||||
.thumb_set CAN2_SCE_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak OTG_FS_IRQHandler
|
|
||||||
.thumb_set OTG_FS_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak DMA2_Stream5_IRQHandler
|
|
||||||
.thumb_set DMA2_Stream5_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak DMA2_Stream6_IRQHandler
|
|
||||||
.thumb_set DMA2_Stream6_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak DMA2_Stream7_IRQHandler
|
|
||||||
.thumb_set DMA2_Stream7_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak USART6_IRQHandler
|
|
||||||
.thumb_set USART6_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak I2C3_EV_IRQHandler
|
|
||||||
.thumb_set I2C3_EV_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak I2C3_ER_IRQHandler
|
|
||||||
.thumb_set I2C3_ER_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak OTG_HS_EP1_OUT_IRQHandler
|
|
||||||
.thumb_set OTG_HS_EP1_OUT_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak OTG_HS_EP1_IN_IRQHandler
|
|
||||||
.thumb_set OTG_HS_EP1_IN_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak OTG_HS_WKUP_IRQHandler
|
|
||||||
.thumb_set OTG_HS_WKUP_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak OTG_HS_IRQHandler
|
|
||||||
.thumb_set OTG_HS_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak DCMI_IRQHandler
|
|
||||||
.thumb_set DCMI_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak HASH_RNG_IRQHandler
|
|
||||||
.thumb_set HASH_RNG_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
.weak FPU_IRQHandler
|
|
||||||
.thumb_set FPU_IRQHandler,Default_Handler
|
|
||||||
|
|
||||||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|
|
||||||
Reference in New Issue
Block a user