准备驱动移植适配Rust
This commit is contained in:
103
.trae/documents/将驱动部分实现为Rust的解耦化方案.md
Normal file
103
.trae/documents/将驱动部分实现为Rust的解耦化方案.md
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
# 将驱动部分实现为Rust的解耦化方案
|
||||||
|
|
||||||
|
## 项目分析
|
||||||
|
|
||||||
|
当前项目使用C语言实现了一个基于STM32F407VET6的嵌入式系统,包含以下结构:
|
||||||
|
- **APP/**: 应用层代码,包含main.c
|
||||||
|
- **BSP/**: 板级支持包,包含各种驱动实现
|
||||||
|
- **Core/**: 核心系统代码,包含HAL配置
|
||||||
|
- **Drivers/**: 底层驱动,包含CMSIS等
|
||||||
|
|
||||||
|
驱动实现特点:
|
||||||
|
- 模块化的BSP系统,通过bsp_module.h定义了模块类型和操作
|
||||||
|
- 统一的驱动初始化接口bsp_init()
|
||||||
|
- 使用HAL层作为底层硬件抽象
|
||||||
|
|
||||||
|
## 实现目标
|
||||||
|
|
||||||
|
将驱动部分实现为Rust,保持与现有C代码的兼容性,实现:
|
||||||
|
- 底层C代码 → Rust驱动层 → 上层C代码的架构
|
||||||
|
- 解耦化使用,使驱动可独立编译和测试
|
||||||
|
- 利用Rust的内存安全特性提高系统稳定性
|
||||||
|
|
||||||
|
## 实现步骤
|
||||||
|
|
||||||
|
### 1. 创建Rust项目结构
|
||||||
|
|
||||||
|
1. **创建Rust库项目**
|
||||||
|
- 在项目根目录创建`rust-drivers`目录
|
||||||
|
- 初始化Rust库:`cargo init --lib rust-drivers`
|
||||||
|
|
||||||
|
2. **配置Cargo.toml**
|
||||||
|
- 添加必要的依赖
|
||||||
|
- 配置为静态库输出
|
||||||
|
- 设置目标架构为ARM Cortex-M4
|
||||||
|
|
||||||
|
### 2. 实现Rust驱动核心
|
||||||
|
|
||||||
|
1. **定义C兼容接口**
|
||||||
|
- 使用`#[no_mangle]`和`extern "C"`定义C可调用的函数
|
||||||
|
- 保持与现有BSP接口一致
|
||||||
|
|
||||||
|
2. **实现驱动模块**
|
||||||
|
- LED驱动
|
||||||
|
- 按键驱动
|
||||||
|
- W25QXX Flash驱动
|
||||||
|
- 以太网驱动
|
||||||
|
- 其他必要的驱动
|
||||||
|
|
||||||
|
3. **封装HAL层**
|
||||||
|
- 创建Rust绑定到现有的C HAL接口
|
||||||
|
- 提供类型安全的Rust API
|
||||||
|
|
||||||
|
### 3. 构建系统集成
|
||||||
|
|
||||||
|
1. **修改CMake配置**
|
||||||
|
- 添加Rust编译步骤
|
||||||
|
- 链接Rust生成的静态库
|
||||||
|
|
||||||
|
2. **创建构建脚本**
|
||||||
|
- 自动处理Rust依赖和编译
|
||||||
|
- 确保与现有C构建流程兼容
|
||||||
|
|
||||||
|
### 4. 测试与验证
|
||||||
|
|
||||||
|
1. **单元测试**
|
||||||
|
- 为Rust驱动编写单元测试
|
||||||
|
- 验证基本功能
|
||||||
|
|
||||||
|
2. **集成测试**
|
||||||
|
- 确保与现有C代码的兼容性
|
||||||
|
- 验证完整系统功能
|
||||||
|
|
||||||
|
### 5. 优化与改进
|
||||||
|
|
||||||
|
1. **性能优化**
|
||||||
|
- 减少FFI调用开销
|
||||||
|
- 优化Rust代码性能
|
||||||
|
|
||||||
|
2. **安全性改进**
|
||||||
|
- 利用Rust的所有权系统确保内存安全
|
||||||
|
- 防止常见的嵌入式系统错误
|
||||||
|
|
||||||
|
## 技术要点
|
||||||
|
|
||||||
|
- **FFI使用**:正确处理Rust与C之间的数据转换
|
||||||
|
- **内存管理**:确保Rust和C代码之间的内存安全
|
||||||
|
- **中断处理**:正确处理嵌入式系统中的中断
|
||||||
|
- **构建系统**:确保Rust和C代码能够无缝集成
|
||||||
|
|
||||||
|
## 预期成果
|
||||||
|
|
||||||
|
- 保持现有C代码的完整性和兼容性
|
||||||
|
- 提供类型安全、内存安全的Rust驱动实现
|
||||||
|
- 实现驱动的解耦化,便于独立开发和测试
|
||||||
|
- 提高系统的整体稳定性和可靠性
|
||||||
|
|
||||||
|
## 风险评估
|
||||||
|
|
||||||
|
- **构建复杂性**:需要同时管理C和Rust的构建流程
|
||||||
|
- **性能开销**:FFI调用可能带来一定的性能开销
|
||||||
|
- **学习曲线**:需要熟悉Rust和嵌入式开发的结合
|
||||||
|
|
||||||
|
通过合理的设计和实现,可以将这些风险降到最低,同时充分利用Rust的优势来提高系统质量。
|
||||||
49
.trae/documents/添加LAN8720以太网驱动实现.md
Normal file
49
.trae/documents/添加LAN8720以太网驱动实现.md
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# 添加LAN8720以太网驱动实现计划
|
||||||
|
|
||||||
|
## 1. 项目分析
|
||||||
|
- 项目使用模块化BSP结构和HAL抽象层
|
||||||
|
- 已有的BSP配置中包含以太网功能标志(BSP_BOARD_FEATURE_ETH)
|
||||||
|
- STM32F4xx_HAL_Driver中已包含以太网驱动源码
|
||||||
|
- 需要添加LAN8720 PHY芯片的支持
|
||||||
|
|
||||||
|
## 2. 实现步骤
|
||||||
|
|
||||||
|
### 2.1 HAL层扩展
|
||||||
|
- 在`HAL/Inc`目录添加`hal_eth.h`头文件,定义以太网接口
|
||||||
|
- 在`HAL/Src`目录添加`hal_eth.c`实现文件
|
||||||
|
- 在`HAL/Inc/arch/stm32f4`目录添加`hal_stm32f4_eth.h`
|
||||||
|
- 在`HAL/Src/arch/stm32f4`目录添加`hal_stm32f4_eth.c`实现
|
||||||
|
|
||||||
|
### 2.2 BSP层扩展
|
||||||
|
- 在`bsp_board.h`中添加以太网配置结构
|
||||||
|
- 在`bsp_board.h`的初始化函数结构中添加以太网初始化函数指针
|
||||||
|
- 在`stm32f407vet6_board.c`中添加以太网硬件配置
|
||||||
|
|
||||||
|
### 2.3 LAN8720驱动实现
|
||||||
|
- 在`BSP/Inc`目录添加`bsp_eth.h`头文件
|
||||||
|
- 在`BSP/Src`目录添加`bsp_eth.c`实现文件
|
||||||
|
- 实现LAN8720 PHY芯片的初始化和配置
|
||||||
|
- 实现以太网接口的基本操作函数
|
||||||
|
|
||||||
|
### 2.4 系统配置修改
|
||||||
|
- 修改`stm32f4xx_hal_conf.h`,启用以太网模块
|
||||||
|
- 修改系统时钟配置,确保以太网时钟正确设置
|
||||||
|
- 在`bsp_init.c`中添加以太网初始化调用
|
||||||
|
|
||||||
|
### 2.5 主程序集成
|
||||||
|
- 在`main.c`中添加以太网初始化代码
|
||||||
|
- 实现基本的以太网功能测试(如MAC地址获取、链路状态检测)
|
||||||
|
- 添加以太网相关的日志输出
|
||||||
|
|
||||||
|
## 3. 技术要点
|
||||||
|
- LAN8720 PHY芯片使用RMII接口
|
||||||
|
- 需要正确配置以太网相关的GPIO引脚
|
||||||
|
- 实现PHY芯片的复位和初始化流程
|
||||||
|
- 配置以太网MAC控制器和PHY芯片的通信
|
||||||
|
- 集成到现有的BSP和HAL架构中
|
||||||
|
|
||||||
|
## 4. 预期成果
|
||||||
|
- 成功初始化LAN8720以太网模块
|
||||||
|
- 能够检测以太网链路状态
|
||||||
|
- 能够获取和设置MAC地址
|
||||||
|
- 为后续的TCP/IP协议栈集成做好准备
|
||||||
2
.vscode/launch.json
vendored
2
.vscode/launch.json
vendored
@ -18,7 +18,7 @@
|
|||||||
"svdFile": "${workspaceFolder}/cmake/stm32f4/STM32F407.svd",
|
"svdFile": "${workspaceFolder}/cmake/stm32f4/STM32F407.svd",
|
||||||
"armToolchainPath": "D:/ARM_GCC/bin",
|
"armToolchainPath": "D:/ARM_GCC/bin",
|
||||||
"gdbPath": "D:/ARM_GCC/bin/arm-none-eabi-gdb.exe",
|
"gdbPath": "D:/ARM_GCC/bin/arm-none-eabi-gdb.exe",
|
||||||
"serverpath": "D:/SEGGER/JLink_V898/JLinkGDBServerCL.exe",
|
"serverpath": "D:/SEGGER/JLink/JLinkGDBServerCL.exe",
|
||||||
"serverArgs": [
|
"serverArgs": [
|
||||||
"-device", "STM32F407VE",
|
"-device", "STM32F407VE",
|
||||||
"-if", "SWD",
|
"-if", "SWD",
|
||||||
|
|||||||
@ -29,6 +29,7 @@
|
|||||||
#include "bsp_config.h"
|
#include "bsp_config.h"
|
||||||
#include "bsp_w25qxx.h"
|
#include "bsp_w25qxx.h"
|
||||||
#include "bsp_key.h"
|
#include "bsp_key.h"
|
||||||
|
#include "bsp_eth.h"
|
||||||
/* USER CODE END Includes */
|
/* USER CODE END Includes */
|
||||||
|
|
||||||
/* Private typedef -----------------------------------------------------------*/
|
/* Private typedef -----------------------------------------------------------*/
|
||||||
@ -102,8 +103,36 @@ int main(void)
|
|||||||
delay_init();
|
delay_init();
|
||||||
logging_init();
|
logging_init();
|
||||||
|
|
||||||
/* Get LED configuration from board config */
|
/* Initialize Ethernet (LAN8720) */
|
||||||
|
log_debug("Starting Ethernet initialization...\r\n");
|
||||||
const bsp_board_config_t* board_config = bsp_get_board_config();
|
const bsp_board_config_t* board_config = bsp_get_board_config();
|
||||||
|
bsp_eth_config_t eth_config = board_config->eth;
|
||||||
|
if (bsp_eth_init(ð_config) == HAL_RET_OK) {
|
||||||
|
log_info("Ethernet initialized successfully\r\n");
|
||||||
|
|
||||||
|
/* Get Ethernet status */
|
||||||
|
bsp_eth_status_t eth_status;
|
||||||
|
if (bsp_eth_get_status(ð_status) == HAL_RET_OK) {
|
||||||
|
log_info("Ethernet PHY ID: 0x%04X 0x%04X\r\n", eth_status.phy_id1, eth_status.phy_id2);
|
||||||
|
log_info("Ethernet link status: %s\r\n", eth_status.link_up ? "UP" : "DOWN");
|
||||||
|
if (eth_status.link_up) {
|
||||||
|
log_info("Ethernet speed: %lu Mbps\r\n", eth_status.speed);
|
||||||
|
log_info("Ethernet duplex: %s\r\n", eth_status.duplex ? "Full" : "Half");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Get MAC address */
|
||||||
|
hal_eth_mac_addr_t mac_addr;
|
||||||
|
if (bsp_eth_get_mac_addr(&mac_addr) == HAL_RET_OK) {
|
||||||
|
log_info("Ethernet MAC address: %02X:%02X:%02X:%02X:%02X:%02X\r\n",
|
||||||
|
mac_addr.byte[0], mac_addr.byte[1], mac_addr.byte[2],
|
||||||
|
mac_addr.byte[3], mac_addr.byte[4], mac_addr.byte[5]);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
log_error("Ethernet initialization failed\r\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Get LED configuration from board config */
|
||||||
led_config_t led_config = {
|
led_config_t led_config = {
|
||||||
.gpio_port = board_config->leds.leds[0].port,
|
.gpio_port = board_config->leds.leds[0].port,
|
||||||
.gpio_pin = board_config->leds.leds[0].pin
|
.gpio_pin = board_config->leds.leds[0].pin
|
||||||
@ -214,6 +243,28 @@ int main(void)
|
|||||||
log_debug("LED toggled\r\n");
|
log_debug("LED toggled\r\n");
|
||||||
led_toggle_timer = delay_get_tick(); // Reset timer
|
led_toggle_timer = delay_get_tick(); // Reset timer
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Check Ethernet link status periodically */
|
||||||
|
static uint32_t eth_check_timer = 0;
|
||||||
|
#define ETH_CHECK_INTERVAL 5000 /* 5000ms interval for Ethernet status check */
|
||||||
|
if ((delay_get_tick() - eth_check_timer) >= ETH_CHECK_INTERVAL) {
|
||||||
|
uint8_t link_up;
|
||||||
|
if (bsp_eth_check_link(&link_up) == HAL_RET_OK) {
|
||||||
|
static uint8_t last_link_status = 0;
|
||||||
|
if (link_up != last_link_status) {
|
||||||
|
log_info("Ethernet link status changed: %s\r\n", link_up ? "UP" : "DOWN");
|
||||||
|
if (link_up) {
|
||||||
|
bsp_eth_status_t eth_status;
|
||||||
|
if (bsp_eth_get_status(ð_status) == HAL_RET_OK) {
|
||||||
|
log_info("Ethernet speed: %lu Mbps\r\n", eth_status.speed);
|
||||||
|
log_info("Ethernet duplex: %s\r\n", eth_status.duplex ? "Full" : "Half");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
last_link_status = link_up;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
eth_check_timer = delay_get_tick(); // Reset timer
|
||||||
|
}
|
||||||
/* USER CODE END WHILE */
|
/* USER CODE END WHILE */
|
||||||
|
|
||||||
/* USER CODE BEGIN 3 */
|
/* USER CODE BEGIN 3 */
|
||||||
@ -296,6 +347,6 @@ void assert_failed(uint8_t *file, uint32_t line)
|
|||||||
/* USER CODE BEGIN 6 */
|
/* USER CODE BEGIN 6 */
|
||||||
/* User can add his own implementation to report the file name and line number,
|
/* User can add his own implementation to report the file name and line number,
|
||||||
ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
|
ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
|
||||||
/* USER CODE END 6 */
|
/* USER CODE END 6 */jn
|
||||||
}
|
}
|
||||||
#endif /* USE_FULL_ASSERT */
|
#endif /* USE_FULL_ASSERT */
|
||||||
|
|||||||
@ -10,6 +10,7 @@ target_sources(bsp PRIVATE
|
|||||||
Src/bsp_board_manager.c
|
Src/bsp_board_manager.c
|
||||||
Src/bsp_w25qxx.c
|
Src/bsp_w25qxx.c
|
||||||
Src/bsp_key.c
|
Src/bsp_key.c
|
||||||
|
Src/bsp_eth.c
|
||||||
)
|
)
|
||||||
|
|
||||||
# Add BSP include directories
|
# Add BSP include directories
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
/**
|
/**
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
* @file : bsp_board.h
|
* @file : bsp_board.h
|
||||||
* @brief : Board support package board abstraction header file
|
* @brief : 板级支持包板级抽象头文件
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
/* USER CODE END Header */
|
/* USER CODE END Header */
|
||||||
@ -18,9 +18,11 @@
|
|||||||
#include "hal_i2c.h"
|
#include "hal_i2c.h"
|
||||||
#include "hal_can.h"
|
#include "hal_can.h"
|
||||||
#include "hal_adc.h"
|
#include "hal_adc.h"
|
||||||
|
#include "hal_eth.h"
|
||||||
|
#include "bsp_eth.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief BSP configuration version
|
* @brief BSP 配置版本
|
||||||
*/
|
*/
|
||||||
#define BSP_CONFIG_VERSION_MAJOR 1
|
#define BSP_CONFIG_VERSION_MAJOR 1
|
||||||
#define BSP_CONFIG_VERSION_MINOR 0
|
#define BSP_CONFIG_VERSION_MINOR 0
|
||||||
@ -28,49 +30,49 @@
|
|||||||
#define BSP_CONFIG_VERSION (BSP_CONFIG_VERSION_MAJOR << 16 | BSP_CONFIG_VERSION_MINOR << 8 | BSP_CONFIG_VERSION_PATCH)
|
#define BSP_CONFIG_VERSION (BSP_CONFIG_VERSION_MAJOR << 16 | BSP_CONFIG_VERSION_MINOR << 8 | BSP_CONFIG_VERSION_PATCH)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Board LED configuration structure
|
* @brief 板级 LED 配置结构体
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint8_t enable; /*!< LED enable flag */
|
uint8_t enable; /*!< LED 使能标志 */
|
||||||
hal_gpio_port_t port; /*!< LED GPIO port */
|
hal_gpio_port_t port; /*!< LED GPIO 端口 */
|
||||||
hal_gpio_pin_t pin; /*!< LED GPIO pin */
|
hal_gpio_pin_t pin; /*!< LED GPIO 引脚 */
|
||||||
hal_gpio_mode_t mode; /*!< LED GPIO mode */
|
hal_gpio_mode_t mode; /*!< LED GPIO 模式 */
|
||||||
hal_gpio_speed_t speed; /*!< LED GPIO speed */
|
hal_gpio_speed_t speed; /*!< LED GPIO 速度 */
|
||||||
hal_gpio_pull_t pull; /*!< LED GPIO pull configuration */
|
hal_gpio_pull_t pull; /*!< LED GPIO 上拉配置 */
|
||||||
} bsp_led_config_t;
|
} bsp_led_config_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Board LEDs configuration structure
|
* @brief 板级 LEDs 配置结构体
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint8_t enable; /*!< LEDs enable flag */
|
uint8_t enable; /*!< LEDs 使能标志 */
|
||||||
uint8_t count; /*!< Number of LEDs */
|
uint8_t count; /*!< LED 数量 */
|
||||||
const bsp_led_config_t* leds; /*!< Pointer to LEDs configuration array */
|
const bsp_led_config_t* leds; /*!< 指向 LEDs 配置数组的指针 */
|
||||||
} bsp_leds_config_t;
|
} bsp_leds_config_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Board button configuration structure
|
* @brief 板级按键配置结构体
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
hal_gpio_port_t port; /*!< Button GPIO port */
|
hal_gpio_port_t port; /*!< 按键 GPIO 端口 */
|
||||||
hal_gpio_pin_t pin; /*!< Button GPIO pin */
|
hal_gpio_pin_t pin; /*!< 按键 GPIO 引脚 */
|
||||||
hal_gpio_mode_t mode; /*!< Button GPIO mode */
|
hal_gpio_mode_t mode; /*!< 按键 GPIO 模式 */
|
||||||
hal_gpio_speed_t speed; /*!< Button GPIO speed */
|
hal_gpio_speed_t speed; /*!< 按键 GPIO 速度 */
|
||||||
hal_gpio_pull_t pull; /*!< Button GPIO pull configuration */
|
hal_gpio_pull_t pull; /*!< 按键 GPIO 上拉配置 */
|
||||||
uint8_t active_high; /*!< Button active high flag */
|
uint8_t active_high; /*!< 按键高电平有效标志 */
|
||||||
} bsp_button_config_t;
|
} bsp_button_config_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Board buttons configuration structure
|
* @brief 板级按键组配置结构体
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint8_t enable; /*!< Buttons enable flag */
|
uint8_t enable; /*!< 按键使能标志 */
|
||||||
uint8_t count; /*!< Number of buttons */
|
uint8_t count; /*!< 按键数量 */
|
||||||
const bsp_button_config_t* buttons; /*!< Pointer to buttons configuration array */
|
const bsp_button_config_t* buttons; /*!< 指向按键配置数组的指针 */
|
||||||
} bsp_buttons_config_t;
|
} bsp_buttons_config_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief UART instance identifier definitions
|
* @brief UART 实例标识符定义
|
||||||
*/
|
*/
|
||||||
typedef enum {
|
typedef enum {
|
||||||
BSP_UART_INSTANCE_1 = 0,
|
BSP_UART_INSTANCE_1 = 0,
|
||||||
@ -83,251 +85,258 @@ typedef enum {
|
|||||||
} bsp_uart_instance_t;
|
} bsp_uart_instance_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Board UART configuration structure
|
* @brief 板级 UART 配置结构体
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint8_t enable; /*!< UART enable flag */
|
uint8_t enable; /*!< UART 使能标志 */
|
||||||
bsp_uart_instance_t instance; /*!< UART instance */
|
bsp_uart_instance_t instance; /*!< UART 实例 */
|
||||||
uint32_t baudrate; /*!< UART baudrate */
|
uint32_t baudrate; /*!< UART 波特率 */
|
||||||
hal_uart_parity_t parity; /*!< UART parity */
|
hal_uart_parity_t parity; /*!< UART 校验位 */
|
||||||
hal_uart_stopbits_t stopbits; /*!< UART stop bits */
|
hal_uart_stopbits_t stopbits; /*!< UART 停止位 */
|
||||||
hal_uart_databits_t databits; /*!< UART data bits */
|
hal_uart_databits_t databits; /*!< UART 数据位 */
|
||||||
hal_gpio_port_t tx_port; /*!< UART TX port */
|
hal_gpio_port_t tx_port; /*!< UART TX 端口 */
|
||||||
hal_gpio_pin_t tx_pin; /*!< UART TX pin */
|
hal_gpio_pin_t tx_pin; /*!< UART TX 引脚 */
|
||||||
hal_gpio_port_t rx_port; /*!< UART RX port */
|
hal_gpio_port_t rx_port; /*!< UART RX 端口 */
|
||||||
hal_gpio_pin_t rx_pin; /*!< UART RX pin */
|
hal_gpio_pin_t rx_pin; /*!< UART RX 引脚 */
|
||||||
} bsp_uart_config_t;
|
} bsp_uart_config_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Board SPI configuration structure
|
* @brief 板级 SPI 配置结构体
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint8_t enable; /*!< SPI enable flag */
|
uint8_t enable; /*!< SPI 使能标志 */
|
||||||
hal_spi_instance_t instance; /*!< SPI instance */
|
hal_spi_instance_t instance; /*!< SPI 实例 */
|
||||||
hal_spi_mode_t mode; /*!< SPI mode */
|
hal_spi_mode_t mode; /*!< SPI 模式 */
|
||||||
uint32_t baudrate; /*!< SPI baudrate */
|
uint32_t baudrate; /*!< SPI 波特率 */
|
||||||
hal_spi_polarity_t polarity; /*!< SPI clock polarity */
|
hal_spi_polarity_t polarity; /*!< SPI 时钟极性 */
|
||||||
hal_spi_phase_t phase; /*!< SPI clock phase */
|
hal_spi_phase_t phase; /*!< SPI 时钟相位 */
|
||||||
hal_spi_databits_t databits; /*!< SPI data bits */
|
hal_spi_databits_t databits; /*!< SPI 数据位 */
|
||||||
hal_gpio_port_t sck_port; /*!< SPI SCK port */
|
hal_gpio_port_t sck_port; /*!< SPI SCK 端口 */
|
||||||
hal_gpio_pin_t sck_pin; /*!< SPI SCK pin */
|
hal_gpio_pin_t sck_pin; /*!< SPI SCK 引脚 */
|
||||||
hal_gpio_port_t miso_port; /*!< SPI MISO port */
|
hal_gpio_port_t miso_port; /*!< SPI MISO 端口 */
|
||||||
hal_gpio_pin_t miso_pin; /*!< SPI MISO pin */
|
hal_gpio_pin_t miso_pin; /*!< SPI MISO 引脚 */
|
||||||
hal_gpio_port_t mosi_port; /*!< SPI MOSI port */
|
hal_gpio_port_t mosi_port; /*!< SPI MOSI 端口 */
|
||||||
hal_gpio_pin_t mosi_pin; /*!< SPI MOSI pin */
|
hal_gpio_pin_t mosi_pin; /*!< SPI MOSI 引脚 */
|
||||||
} bsp_spi_config_t;
|
} bsp_spi_config_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Board I2C configuration structure
|
* @brief 板级 I2C 配置结构体
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint8_t enable; /*!< I2C enable flag */
|
uint8_t enable; /*!< I2C 使能标志 */
|
||||||
hal_i2c_instance_t instance; /*!< I2C instance */
|
hal_i2c_instance_t instance; /*!< I2C 实例 */
|
||||||
hal_i2c_speed_t speed; /*!< I2C speed */
|
hal_i2c_speed_t speed; /*!< I2C 速度 */
|
||||||
hal_i2c_address_mode_t address_mode; /*!< I2C address mode */
|
hal_i2c_address_mode_t address_mode; /*!< I2C 地址模式 */
|
||||||
hal_i2c_dutycycle_t dutycycle; /*!< I2C duty cycle */
|
hal_i2c_dutycycle_t dutycycle; /*!< I2C 占空比 */
|
||||||
uint16_t own_address1; /*!< I2C own address 1 */
|
uint16_t own_address1; /*!< I2C 自身地址 1 */
|
||||||
hal_gpio_port_t scl_port; /*!< I2C SCL port */
|
hal_gpio_port_t scl_port; /*!< I2C SCL 端口 */
|
||||||
hal_gpio_pin_t scl_pin; /*!< I2C SCL pin */
|
hal_gpio_pin_t scl_pin; /*!< I2C SCL 引脚 */
|
||||||
hal_gpio_port_t sda_port; /*!< I2C SDA port */
|
hal_gpio_port_t sda_port; /*!< I2C SDA 端口 */
|
||||||
hal_gpio_pin_t sda_pin; /*!< I2C SDA pin */
|
hal_gpio_pin_t sda_pin; /*!< I2C SDA 引脚 */
|
||||||
} bsp_i2c_config_t;
|
} bsp_i2c_config_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Board CAN configuration structure
|
* @brief 板级 CAN 配置结构体
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint8_t enable; /*!< CAN enable flag */
|
uint8_t enable; /*!< CAN 使能标志 */
|
||||||
hal_can_instance_t instance; /*!< CAN instance */
|
hal_can_instance_t instance; /*!< CAN 实例 */
|
||||||
hal_can_mode_t mode; /*!< CAN mode */
|
hal_can_mode_t mode; /*!< CAN 模式 */
|
||||||
uint32_t prescaler; /*!< CAN prescaler */
|
uint32_t prescaler; /*!< CAN 预分频器 */
|
||||||
uint8_t sync_jump_width; /*!< CAN sync jump width */
|
uint8_t sync_jump_width; /*!< CAN 同步跳转宽度 */
|
||||||
uint8_t time_segment1; /*!< CAN time segment 1 */
|
uint8_t time_segment1; /*!< CAN 时间段 1 */
|
||||||
uint8_t time_segment2; /*!< CAN time segment 2 */
|
uint8_t time_segment2; /*!< CAN 时间段 2 */
|
||||||
hal_gpio_port_t rx_port; /*!< CAN RX port */
|
hal_gpio_port_t rx_port; /*!< CAN RX 端口 */
|
||||||
hal_gpio_pin_t rx_pin; /*!< CAN RX pin */
|
hal_gpio_pin_t rx_pin; /*!< CAN RX 引脚 */
|
||||||
hal_gpio_port_t tx_port; /*!< CAN TX port */
|
hal_gpio_port_t tx_port; /*!< CAN TX 端口 */
|
||||||
hal_gpio_pin_t tx_pin; /*!< CAN TX pin */
|
hal_gpio_pin_t tx_pin; /*!< CAN TX 引脚 */
|
||||||
} bsp_can_config_t;
|
} bsp_can_config_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Board ADC channel configuration structure
|
* @brief 板级 ADC 通道配置结构体
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint8_t enable; /*!< ADC channel enable flag */
|
uint8_t enable; /*!< ADC 通道使能标志 */
|
||||||
hal_adc_channel_t channel; /*!< ADC channel */
|
hal_adc_channel_t channel; /*!< ADC 通道 */
|
||||||
hal_adc_sampletime_t sampletime; /*!< ADC sample time */
|
hal_adc_sampletime_t sampletime; /*!< ADC 采样时间 */
|
||||||
uint8_t rank; /*!< ADC channel rank */
|
uint8_t rank; /*!< ADC 通道优先级 */
|
||||||
} bsp_adc_channel_config_t;
|
} bsp_adc_channel_config_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Board ADC configuration structure
|
* @brief 板级 ADC 配置结构体
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint8_t enable; /*!< ADC enable flag */
|
uint8_t enable; /*!< ADC 使能标志 */
|
||||||
hal_adc_instance_t instance; /*!< ADC instance */
|
hal_adc_instance_t instance; /*!< ADC 实例 */
|
||||||
hal_adc_resolution_t resolution; /*!< ADC resolution */
|
hal_adc_resolution_t resolution; /*!< ADC 分辨率 */
|
||||||
uint8_t scan_conversion_mode; /*!< ADC scan conversion mode */
|
uint8_t scan_conversion_mode; /*!< ADC 扫描转换模式 */
|
||||||
uint8_t continuous_conversion_mode; /*!< ADC continuous conversion mode */
|
uint8_t continuous_conversion_mode; /*!< ADC 连续转换模式 */
|
||||||
uint8_t channel_count; /*!< Number of ADC channels */
|
uint8_t channel_count; /*!< ADC 通道数量 */
|
||||||
const bsp_adc_channel_config_t* channels; /*!< Pointer to ADC channels configuration array */
|
const bsp_adc_channel_config_t* channels; /*!< 指向 ADC 通道配置数组的指针 */
|
||||||
} bsp_adc_config_t;
|
} bsp_adc_config_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Board W25QXX configuration structure
|
* @brief 板级 W25QXX 配置结构体
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint8_t enable; /*!< W25QXX enable flag */
|
uint8_t enable; /*!< W25QXX 使能标志 */
|
||||||
hal_gpio_port_t cs_port; /*!< W25QXX CS port */
|
hal_gpio_port_t cs_port; /*!< W25QXX CS 端口 */
|
||||||
hal_gpio_pin_t cs_pin; /*!< W25QXX CS pin */
|
hal_gpio_pin_t cs_pin; /*!< W25QXX CS 引脚 */
|
||||||
uint8_t spi_instance; /*!< SPI instance used by W25QXX */
|
uint8_t spi_instance; /*!< W25QXX 使用的 SPI 实例 */
|
||||||
} bsp_w25qxx_config_t;
|
} bsp_w25qxx_config_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Board peripheral initialization function type
|
* @brief 板级外设初始化函数类型
|
||||||
*/
|
*/
|
||||||
typedef hal_ret_t (*bsp_periph_init_func_t)(const void* config);
|
typedef hal_ret_t (*bsp_periph_init_func_t)(const void* config);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Board ID structure
|
* @brief 板级 ID 结构体
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint16_t vendor_id; /*!< Board vendor ID */
|
uint16_t vendor_id; /*!< 板级厂商 ID */
|
||||||
uint16_t product_id; /*!< Board product ID */
|
uint16_t product_id; /*!< 板级产品 ID */
|
||||||
uint32_t serial_number; /*!< Board serial number */
|
uint32_t serial_number; /*!< 板级序列号 */
|
||||||
} bsp_board_id_t;
|
} bsp_board_id_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Board feature flags
|
* @brief 板级特性标志
|
||||||
*/
|
*/
|
||||||
typedef enum {
|
typedef enum {
|
||||||
BSP_BOARD_FEATURE_LED = (1 << 0), /*!< Board has LED support */
|
BSP_BOARD_FEATURE_LED = (1 << 0), /*!< 板级支持 LED */
|
||||||
BSP_BOARD_FEATURE_BUTTON = (1 << 1), /*!< Board has button support */
|
BSP_BOARD_FEATURE_BUTTON = (1 << 1), /*!< 板级支持按键 */
|
||||||
BSP_BOARD_FEATURE_UART = (1 << 2), /*!< Board has UART support */
|
BSP_BOARD_FEATURE_UART = (1 << 2), /*!< 板级支持 UART */
|
||||||
BSP_BOARD_FEATURE_SPI = (1 << 3), /*!< Board has SPI support */
|
BSP_BOARD_FEATURE_SPI = (1 << 3), /*!< 板级支持 SPI */
|
||||||
BSP_BOARD_FEATURE_I2C = (1 << 4), /*!< Board has I2C support */
|
BSP_BOARD_FEATURE_I2C = (1 << 4), /*!< 板级支持 I2C */
|
||||||
BSP_BOARD_FEATURE_CAN = (1 << 5), /*!< Board has CAN support */
|
BSP_BOARD_FEATURE_CAN = (1 << 5), /*!< 板级支持 CAN */
|
||||||
BSP_BOARD_FEATURE_ADC = (1 << 6), /*!< Board has ADC support */
|
BSP_BOARD_FEATURE_ADC = (1 << 6), /*!< 板级支持 ADC */
|
||||||
BSP_BOARD_FEATURE_DAC = (1 << 7), /*!< Board has DAC support */
|
BSP_BOARD_FEATURE_DAC = (1 << 7), /*!< 板级支持 DAC */
|
||||||
BSP_BOARD_FEATURE_TIMER = (1 << 8), /*!< Board has TIMER support */
|
BSP_BOARD_FEATURE_TIMER = (1 << 8), /*!< 板级支持 TIMER */
|
||||||
BSP_BOARD_FEATURE_RTC = (1 << 9), /*!< Board has RTC support */
|
BSP_BOARD_FEATURE_RTC = (1 << 9), /*!< 板级支持 RTC */
|
||||||
BSP_BOARD_FEATURE_W25QXX = (1 << 10), /*!< Board has W25QXX support */
|
BSP_BOARD_FEATURE_W25QXX = (1 << 10), /*!< 板级支持 W25QXX */
|
||||||
BSP_BOARD_FEATURE_DMA = (1 << 11), /*!< Board has DMA support */
|
BSP_BOARD_FEATURE_DMA = (1 << 11), /*!< 板级支持 DMA */
|
||||||
BSP_BOARD_FEATURE_ETH = (1 << 12), /*!< Board has ETH support */
|
BSP_BOARD_FEATURE_ETH = (1 << 12), /*!< 板级支持 ETH */
|
||||||
BSP_BOARD_FEATURE_USB = (1 << 13), /*!< Board has USB support */
|
BSP_BOARD_FEATURE_USB = (1 << 13), /*!< 板级支持 USB */
|
||||||
BSP_BOARD_FEATURE_SDIO = (1 << 14), /*!< Board has SDIO support */
|
BSP_BOARD_FEATURE_SDIO = (1 << 14), /*!< 板级支持 SDIO */
|
||||||
BSP_BOARD_FEATURE_FSMC = (1 << 15), /*!< Board has FSMC support */
|
BSP_BOARD_FEATURE_FSMC = (1 << 15), /*!< 板级支持 FSMC */
|
||||||
} bsp_board_feature_t;
|
} bsp_board_feature_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Board hardware information structure
|
* @brief 板级硬件信息结构体
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint32_t clock_speed; /*!< Board clock speed */
|
uint32_t clock_speed; /*!< 板级时钟速度 */
|
||||||
uint32_t flash_size; /*!< Flash size in bytes */
|
uint32_t flash_size; /*!< Flash 大小(字节) */
|
||||||
uint32_t ram_size; /*!< RAM size in bytes */
|
uint32_t ram_size; /*!< RAM 大小(字节) */
|
||||||
uint32_t eeprom_size; /*!< EEPROM size in bytes */
|
uint32_t eeprom_size; /*!< EEPROM 大小(字节) */
|
||||||
uint32_t sram_size; /*!< SRAM size in bytes */
|
uint32_t sram_size; /*!< SRAM 大小(字节) */
|
||||||
uint8_t cpu_core; /*!< CPU core type */
|
uint8_t cpu_core; /*!< CPU 核心类型 */
|
||||||
uint8_t cpu_bits; /*!< CPU bits (32 or 64) */
|
uint8_t cpu_bits; /*!< CPU 位数(32 或 64) */
|
||||||
} bsp_board_hw_info_t;
|
} bsp_board_hw_info_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Board peripheral configuration structure
|
* @brief 板级外设配置结构体
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
/* UART configurations */
|
/* UART 配置 */
|
||||||
uint8_t uart_count; /*!< Number of UARTs */
|
uint8_t uart_count; /*!< UART 数量 */
|
||||||
const bsp_uart_config_t* uarts; /*!< Pointer to UARTs configuration array */
|
const bsp_uart_config_t* uarts; /*!< 指向 UART 配置数组的指针 */
|
||||||
|
|
||||||
/* SPI configurations */
|
/* SPI 配置 */
|
||||||
uint8_t spi_count; /*!< Number of SPIs */
|
uint8_t spi_count; /*!< SPI 数量 */
|
||||||
const bsp_spi_config_t* spis; /*!< Pointer to SPIs configuration array */
|
const bsp_spi_config_t* spis; /*!< 指向 SPI 配置数组的指针 */
|
||||||
|
|
||||||
/* I2C configurations */
|
/* I2C 配置 */
|
||||||
uint8_t i2c_count; /*!< Number of I2Cs */
|
uint8_t i2c_count; /*!< I2C 数量 */
|
||||||
const bsp_i2c_config_t* i2cs; /*!< Pointer to I2Cs configuration array */
|
const bsp_i2c_config_t* i2cs; /*!< 指向 I2C 配置数组的指针 */
|
||||||
|
|
||||||
/* CAN configurations */
|
/* CAN 配置 */
|
||||||
uint8_t can_count; /*!< Number of CANs */
|
uint8_t can_count; /*!< CAN 数量 */
|
||||||
const bsp_can_config_t* cans; /*!< Pointer to CANs configuration array */
|
const bsp_can_config_t* cans; /*!< 指向 CAN 配置数组的指针 */
|
||||||
|
|
||||||
/* ADC configurations */
|
/* ADC 配置 */
|
||||||
uint8_t adc_count; /*!< Number of ADCs */
|
uint8_t adc_count; /*!< ADC 数量 */
|
||||||
const bsp_adc_config_t* adcs; /*!< Pointer to ADCs configuration array */
|
const bsp_adc_config_t* adcs; /*!< 指向 ADC 配置数组的指针 */
|
||||||
} bsp_board_periph_config_t;
|
} bsp_board_periph_config_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Board initialization function pointers structure
|
* @brief 板级以太网配置结构体
|
||||||
|
*/
|
||||||
|
// bsp_eth_config_t 在 bsp_eth.h 中定义
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 板级初始化函数指针结构体
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
bsp_periph_init_func_t led_init; /*!< LED initialization function */
|
bsp_periph_init_func_t led_init; /*!< LED 初始化函数 */
|
||||||
bsp_periph_init_func_t button_init; /*!< Button initialization function */
|
bsp_periph_init_func_t button_init; /*!< 按键初始化函数 */
|
||||||
bsp_periph_init_func_t uart_init; /*!< UART initialization function */
|
bsp_periph_init_func_t uart_init; /*!< UART 初始化函数 */
|
||||||
bsp_periph_init_func_t spi_init; /*!< SPI initialization function */
|
bsp_periph_init_func_t spi_init; /*!< SPI 初始化函数 */
|
||||||
bsp_periph_init_func_t i2c_init; /*!< I2C initialization function */
|
bsp_periph_init_func_t i2c_init; /*!< I2C 初始化函数 */
|
||||||
bsp_periph_init_func_t can_init; /*!< CAN initialization function */
|
bsp_periph_init_func_t can_init; /*!< CAN 初始化函数 */
|
||||||
bsp_periph_init_func_t adc_init; /*!< ADC initialization function */
|
bsp_periph_init_func_t adc_init; /*!< ADC 初始化函数 */
|
||||||
bsp_periph_init_func_t w25qxx_init; /*!< W25QXX initialization function */
|
bsp_periph_init_func_t w25qxx_init; /*!< W25QXX 初始化函数 */
|
||||||
|
bsp_periph_init_func_t eth_init; /*!< 以太网初始化函数 */
|
||||||
} bsp_board_init_funcs_t;
|
} bsp_board_init_funcs_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Board configuration structure
|
* @brief 板级配置结构体
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint32_t version; /*!< Configuration version */
|
uint32_t version; /*!< 配置版本 */
|
||||||
const char* name; /*!< Board name */
|
const char* name; /*!< 板级名称 */
|
||||||
const char* description; /*!< Board description */
|
const char* description; /*!< 板级描述 */
|
||||||
bsp_board_id_t id; /*!< Board ID information */
|
bsp_board_id_t id; /*!< 板级 ID 信息 */
|
||||||
|
|
||||||
/* Board features */
|
/* 板级特性 */
|
||||||
uint32_t features; /*!< Board feature flags */
|
uint32_t features; /*!< 板级特性标志 */
|
||||||
|
|
||||||
/* Hardware information */
|
/* 硬件信息 */
|
||||||
bsp_board_hw_info_t hw_info; /*!< Hardware information */
|
bsp_board_hw_info_t hw_info; /*!< 硬件信息 */
|
||||||
|
|
||||||
/* Peripheral configurations */
|
/* 外设配置 */
|
||||||
bsp_leds_config_t leds; /*!< LEDs configuration */
|
bsp_leds_config_t leds; /*!< LEDs 配置 */
|
||||||
bsp_buttons_config_t buttons; /*!< Buttons configuration */
|
bsp_buttons_config_t buttons; /*!< 按键配置 */
|
||||||
bsp_w25qxx_config_t w25qxx; /*!< W25QXX configuration */
|
bsp_w25qxx_config_t w25qxx; /*!< W25QXX 配置 */
|
||||||
|
bsp_eth_config_t eth; /*!< 以太网配置 */
|
||||||
|
|
||||||
/* Peripheral arrays */
|
/* 外设数组 */
|
||||||
bsp_board_periph_config_t periphs; /*!< Peripheral configurations */
|
bsp_board_periph_config_t periphs; /*!< 外设配置 */
|
||||||
|
|
||||||
/* Initialization functions */
|
/* 初始化函数 */
|
||||||
bsp_board_init_funcs_t init_funcs; /*!< Initialization function pointers */
|
bsp_board_init_funcs_t init_funcs; /*!< 初始化函数指针 */
|
||||||
|
|
||||||
/* Additional board-specific configuration */
|
/* 板级特定配置 */
|
||||||
void* custom_config; /*!< Custom board configuration pointer */
|
void* custom_config; /*!< 自定义板级配置指针 */
|
||||||
size_t custom_config_size; /*!< Custom board configuration size */
|
size_t custom_config_size; /*!< 自定义板级配置大小 */
|
||||||
|
|
||||||
/* Board revision information */
|
/* 板级版本信息 */
|
||||||
uint8_t major_rev; /*!< Major revision */
|
uint8_t major_rev; /*!< 主版本 */
|
||||||
uint8_t minor_rev; /*!< Minor revision */
|
uint8_t minor_rev; /*!< 次版本 */
|
||||||
uint8_t patch_rev; /*!< Patch revision */
|
uint8_t patch_rev; /*!< 补丁版本 */
|
||||||
const char* revision_desc; /*!< Revision description */
|
const char* revision_desc; /*!< 版本描述 */
|
||||||
} bsp_board_config_t;
|
} bsp_board_config_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief STM32F407VET6 board configuration extern declaration
|
* @brief STM32F407VET6 板级配置外部声明
|
||||||
*/
|
*/
|
||||||
extern const bsp_board_config_t stm32f407vet6_board_config;
|
extern const bsp_board_config_t stm32f407vet6_board_config;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Board hardware initialization
|
* @brief 板级硬件初始化
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_board_init(void);
|
hal_ret_t bsp_board_init(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get board name
|
* @brief 获取板级名称
|
||||||
* @retval Board name string
|
* @retval 板级名称字符串
|
||||||
*/
|
*/
|
||||||
const char* bsp_board_get_name(void);
|
const char* bsp_board_get_name(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get board configuration
|
* @brief 获取板级配置
|
||||||
* @retval Pointer to board configuration structure
|
* @retval 指向板级配置结构体的指针
|
||||||
*/
|
*/
|
||||||
const bsp_board_config_t* bsp_board_get_config(void);
|
const bsp_board_config_t* bsp_board_get_config(void);
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
/**
|
/**
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
* @file : bsp_board_manager.h
|
* @file : bsp_board_manager.h
|
||||||
* @brief : Board support package manager header file
|
* @brief : 板级支持包管理器头文件
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
/* USER CODE END Header */
|
/* USER CODE END Header */
|
||||||
@ -15,48 +15,48 @@
|
|||||||
#include "bsp_board.h"
|
#include "bsp_board.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get number of supported boards
|
* @brief 获取支持的板卡数量
|
||||||
* @retval Number of supported boards
|
* @retval 支持的板卡数量
|
||||||
*/
|
*/
|
||||||
uint8_t bsp_board_get_count(void);
|
uint8_t bsp_board_get_count(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get board configuration by index
|
* @brief 通过索引获取板卡配置
|
||||||
* @param index: Board configuration index
|
* @param index: 板卡配置索引
|
||||||
* @retval Pointer to board configuration structure, NULL if invalid index
|
* @retval 指向板卡配置结构体的指针,无效索引返回 NULL
|
||||||
*/
|
*/
|
||||||
const bsp_board_config_t* bsp_board_get_by_index(uint8_t index);
|
const bsp_board_config_t* bsp_board_get_by_index(uint8_t index);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get board configuration by name
|
* @brief 通过名称获取板卡配置
|
||||||
* @param name: Board name string
|
* @param name: 板卡名称字符串
|
||||||
* @retval Pointer to board configuration structure, NULL if not found
|
* @retval 指向板卡配置结构体的指针,未找到返回 NULL
|
||||||
*/
|
*/
|
||||||
const bsp_board_config_t* bsp_board_get_by_name(const char* name);
|
const bsp_board_config_t* bsp_board_get_by_name(const char* name);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Set current board configuration by index
|
* @brief 通过索引设置当前板卡配置
|
||||||
* @param index: Board configuration index
|
* @param index: 板卡配置索引
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_board_set_by_index(uint8_t index);
|
hal_ret_t bsp_board_set_by_index(uint8_t index);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Set current board configuration by name
|
* @brief 通过名称设置当前板卡配置
|
||||||
* @param name: Board name string
|
* @param name: 板卡名称字符串
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_board_set_by_name(const char* name);
|
hal_ret_t bsp_board_set_by_name(const char* name);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get current board configuration
|
* @brief 获取当前板卡配置
|
||||||
* @retval Pointer to current board configuration structure
|
* @retval 指向当前板卡配置结构体的指针
|
||||||
*/
|
*/
|
||||||
const bsp_board_config_t* bsp_board_get_config(void);
|
const bsp_board_config_t* bsp_board_get_config(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get current board index
|
* @brief 获取当前板卡索引
|
||||||
* @retval Current board index
|
* @retval 当前板卡索引
|
||||||
*/
|
*/
|
||||||
uint8_t bsp_board_get_current_index(void);
|
uint8_t bsp_board_get_current_index(void);
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
/**
|
/**
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
* @file : bsp_config.h
|
* @file : bsp_config.h
|
||||||
* @brief : Board support package configuration file header
|
* @brief : 板级支持包配置文件头文件
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
/* USER CODE END Header */
|
/* USER CODE END Header */
|
||||||
@ -16,7 +16,7 @@
|
|||||||
#include "hal.h"
|
#include "hal.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief BSP configuration file format definitions
|
* @brief BSP 配置文件格式定义
|
||||||
*/
|
*/
|
||||||
#define BSP_CONFIG_FILE_VERSION "1.0.0"
|
#define BSP_CONFIG_FILE_VERSION "1.0.0"
|
||||||
#define BSP_CONFIG_MAX_LINE_LENGTH 256
|
#define BSP_CONFIG_MAX_LINE_LENGTH 256
|
||||||
@ -25,7 +25,7 @@
|
|||||||
#define BSP_CONFIG_MAX_VALUE_LENGTH 128
|
#define BSP_CONFIG_MAX_VALUE_LENGTH 128
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief BSP configuration section type
|
* @brief BSP 配置节类型
|
||||||
*/
|
*/
|
||||||
typedef enum {
|
typedef enum {
|
||||||
BSP_CONFIG_SECTION_NONE = 0,
|
BSP_CONFIG_SECTION_NONE = 0,
|
||||||
@ -36,7 +36,7 @@ typedef enum {
|
|||||||
} bsp_config_section_t;
|
} bsp_config_section_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief BSP configuration entry
|
* @brief BSP 配置条目
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
const char* section;
|
const char* section;
|
||||||
@ -45,7 +45,7 @@ typedef struct {
|
|||||||
} bsp_config_entry_t;
|
} bsp_config_entry_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief BSP configuration parser context
|
* @brief BSP 配置解析器上下文
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
FILE* file;
|
FILE* file;
|
||||||
@ -56,7 +56,7 @@ typedef struct {
|
|||||||
} bsp_config_parser_t;
|
} bsp_config_parser_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief BSP configuration file operations
|
* @brief BSP 配置文件操作
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
hal_ret_t (*open)(const char* filename, bsp_config_parser_t* parser);
|
hal_ret_t (*open)(const char* filename, bsp_config_parser_t* parser);
|
||||||
@ -69,115 +69,115 @@ typedef struct {
|
|||||||
} bsp_config_ops_t;
|
} bsp_config_ops_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Initialize BSP configuration system
|
* @brief 初始化 BSP 配置系统
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_config_init(void);
|
hal_ret_t bsp_config_init(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Deinitialize BSP configuration system
|
* @brief 反初始化 BSP 配置系统
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_config_deinit(void);
|
hal_ret_t bsp_config_deinit(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Load BSP configuration from file
|
* @brief 从文件加载 BSP 配置
|
||||||
* @param filename: Configuration file name
|
* @param filename: 配置文件名称
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_config_load(const char* filename);
|
hal_ret_t bsp_config_load(const char* filename);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Save BSP configuration to file
|
* @brief 保存 BSP 配置到文件
|
||||||
* @param filename: Configuration file name
|
* @param filename: 配置文件名称
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_config_save(const char* filename);
|
hal_ret_t bsp_config_save(const char* filename);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get configuration value
|
* @brief 获取配置值
|
||||||
* @param section: Configuration section name
|
* @param section: 配置节名称
|
||||||
* @param key: Configuration key name
|
* @param key: 配置键名称
|
||||||
* @param value: Pointer to store value
|
* @param value: 存储值的指针
|
||||||
* @param max_length: Maximum length of value buffer
|
* @param max_length: 值缓冲区的最大长度
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_config_get_value(const char* section, const char* key, char* value, size_t max_length);
|
hal_ret_t bsp_config_get_value(const char* section, const char* key, char* value, size_t max_length);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Set configuration value
|
* @brief 设置配置值
|
||||||
* @param section: Configuration section name
|
* @param section: 配置节名称
|
||||||
* @param key: Configuration key name
|
* @param key: 配置键名称
|
||||||
* @param value: Configuration value
|
* @param value: 配置值
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_config_set_value(const char* section, const char* key, const char* value);
|
hal_ret_t bsp_config_set_value(const char* section, const char* key, const char* value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get configuration value as integer
|
* @brief 获取配置值作为整数
|
||||||
* @param section: Configuration section name
|
* @param section: 配置节名称
|
||||||
* @param key: Configuration key name
|
* @param key: 配置键名称
|
||||||
* @param value: Pointer to store integer value
|
* @param value: 存储整数值的指针
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_config_get_int(const char* section, const char* key, int* value);
|
hal_ret_t bsp_config_get_int(const char* section, const char* key, int* value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Set configuration value as integer
|
* @brief 设置配置值作为整数
|
||||||
* @param section: Configuration section name
|
* @param section: 配置节名称
|
||||||
* @param key: Configuration key name
|
* @param key: 配置键名称
|
||||||
* @param value: Integer value
|
* @param value: 整数值
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_config_set_int(const char* section, const char* key, int value);
|
hal_ret_t bsp_config_set_int(const char* section, const char* key, int value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get configuration value as unsigned integer
|
* @brief 获取配置值作为无符号整数
|
||||||
* @param section: Configuration section name
|
* @param section: 配置节名称
|
||||||
* @param key: Configuration key name
|
* @param key: 配置键名称
|
||||||
* @param value: Pointer to store unsigned integer value
|
* @param value: 存储无符号整数值的指针
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_config_get_uint(const char* section, const char* key, uint32_t* value);
|
hal_ret_t bsp_config_get_uint(const char* section, const char* key, uint32_t* value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Set configuration value as unsigned integer
|
* @brief 设置配置值作为无符号整数
|
||||||
* @param section: Configuration section name
|
* @param section: 配置节名称
|
||||||
* @param key: Configuration key name
|
* @param key: 配置键名称
|
||||||
* @param value: Unsigned integer value
|
* @param value: 无符号整数值
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_config_set_uint(const char* section, const char* key, uint32_t value);
|
hal_ret_t bsp_config_set_uint(const char* section, const char* key, uint32_t value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get configuration value as boolean
|
* @brief 获取配置值作为布尔值
|
||||||
* @param section: Configuration section name
|
* @param section: 配置节名称
|
||||||
* @param key: Configuration key name
|
* @param key: 配置键名称
|
||||||
* @param value: Pointer to store boolean value
|
* @param value: 存储布尔值的指针
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_config_get_bool(const char* section, const char* key, uint8_t* value);
|
hal_ret_t bsp_config_get_bool(const char* section, const char* key, uint8_t* value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Set configuration value as boolean
|
* @brief 设置配置值作为布尔值
|
||||||
* @param section: Configuration section name
|
* @param section: 配置节名称
|
||||||
* @param key: Configuration key name
|
* @param key: 配置键名称
|
||||||
* @param value: Boolean value
|
* @param value: 布尔值
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_config_set_bool(const char* section, const char* key, uint8_t value);
|
hal_ret_t bsp_config_set_bool(const char* section, const char* key, uint8_t value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Parse BSP modules from configuration
|
* @brief 从配置解析 BSP 模块
|
||||||
* @param config: Pointer to BSP board configuration structure to fill
|
* @param config: 指向要填充的 BSP 板卡配置结构体的指针
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_config_parse_modules(bsp_board_config_t* config);
|
hal_ret_t bsp_config_parse_modules(bsp_board_config_t* config);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Initialize BSP from configuration file
|
* @brief 从配置文件初始化 BSP
|
||||||
* @param filename: Configuration file name
|
* @param filename: 配置文件名称
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_init_from_config(const char* filename);
|
hal_ret_t bsp_init_from_config(const char* filename);
|
||||||
|
|
||||||
|
|||||||
169
BSP/Inc/bsp_eth.h
Normal file
169
BSP/Inc/bsp_eth.h
Normal file
@ -0,0 +1,169 @@
|
|||||||
|
/* USER CODE BEGIN Header */
|
||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file : bsp_eth.h
|
||||||
|
* @brief : 板级支持包以太网(LAN8720)驱动头文件
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
/* USER CODE END Header */
|
||||||
|
|
||||||
|
#ifndef BSP_ETH_H
|
||||||
|
#define BSP_ETH_H
|
||||||
|
|
||||||
|
#include "hal.h"
|
||||||
|
#include "hal_eth.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief LAN8720 PHY 地址定义
|
||||||
|
*/
|
||||||
|
#define LAN8720_PHY_ADDR 0x00
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief LAN8720 PHY 寄存器定义
|
||||||
|
*/
|
||||||
|
#define LAN8720_REG_BSR 0x01 /*!< 基本状态寄存器 */
|
||||||
|
#define LAN8720_REG_BCR 0x00 /*!< 基本控制寄存器 */
|
||||||
|
#define LAN8720_REG_PID1 0x02 /*!< PHY 标识符 1 */
|
||||||
|
#define LAN8720_REG_PID2 0x03 /*!< PHY 标识符 2 */
|
||||||
|
#define LAN8720_REG_ANAR 0x04 /*!< 自动协商通告寄存器 */
|
||||||
|
#define LAN8720_REG_ANLPAR 0x05 /*!< 自动协商链路伙伴能力寄存器 */
|
||||||
|
#define LAN8720_REG_ANER 0x06 /*!< 自动协商扩展寄存器 */
|
||||||
|
#define LAN8720_REG_DR 0x0E /*!< 设备修订寄存器 */
|
||||||
|
#define LAN8720_REG_CR 0x10 /*!< 控制寄存器 */
|
||||||
|
#define LAN8720_REG_SR 0x11 /*!< 状态寄存器 */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief LAN8720 BSR 寄存器位定义
|
||||||
|
*/
|
||||||
|
#define LAN8720_BSR_LINK_STATUS (1 << 2) /*!< 链路状态位 */
|
||||||
|
#define LAN8720_BSR_AUTO_NEG_COMPLETE (1 << 5) /*!< 自动协商完成 */
|
||||||
|
#define LAN8720_BSR_100BASE_T4 (1 << 11) /*!< 支持 100BASE-T4 */
|
||||||
|
#define LAN8720_BSR_100BASE_TX_FD (1 << 12) /*!< 支持 100BASE-TX 全双工 */
|
||||||
|
#define LAN8720_BSR_100BASE_TX_HD (1 << 13) /*!< 支持 100BASE-TX 半双工 */
|
||||||
|
#define LAN8720_BSR_10BASE_T_FD (1 << 14) /*!< 支持 10BASE-T 全双工 */
|
||||||
|
#define LAN8720_BSR_10BASE_T_HD (1 << 15) /*!< 支持 10BASE-T 半双工 */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief LAN8720 BCR 寄存器位定义
|
||||||
|
*/
|
||||||
|
#define LAN8720_BCR_RESET (1 << 15) /*!< 软件复位 */
|
||||||
|
#define LAN8720_BCR_AUTO_NEG_EN (1 << 12) /*!< 自动协商使能 */
|
||||||
|
#define LAN8720_BCR_SPEED_SELECT (1 << 13) /*!< 速度选择 (1=100Mbps, 0=10Mbps) */
|
||||||
|
#define LAN8720_BCR_DUPLEX_MODE (1 << 8) /*!< 双工模式 (1=全双工, 0=半双工) */
|
||||||
|
#define LAN8720_BCR_RESTART_AN (1 << 9) /*!< 重启自动协商 */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief LAN8720 PHY 标识符
|
||||||
|
*/
|
||||||
|
#define LAN8720_PID1_VALUE 0x0007
|
||||||
|
#define LAN8720_PID2_VALUE 0xC0F0
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 以太网配置结构体
|
||||||
|
*/
|
||||||
|
typedef struct {
|
||||||
|
uint8_t enable; /*!< 以太网使能标志 */
|
||||||
|
hal_eth_instance_t instance; /*!< 以太网实例 */
|
||||||
|
hal_eth_mode_t mode; /*!< 以太网模式 */
|
||||||
|
hal_eth_speed_t speed; /*!< 以太网速度 */
|
||||||
|
hal_eth_phy_addr_t phy_addr; /*!< PHY 地址 */
|
||||||
|
hal_eth_mac_addr_t mac_addr; /*!< MAC 地址 */
|
||||||
|
uint8_t auto_negotiation; /*!< 自动协商使能标志 */
|
||||||
|
uint8_t interrupt_enable; /*!< 中断使能标志 */
|
||||||
|
} bsp_eth_config_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 以太网状态结构体
|
||||||
|
*/
|
||||||
|
typedef struct {
|
||||||
|
uint8_t link_up; /*!< 链路状态 */
|
||||||
|
uint8_t duplex; /*!< 双工模式 (0: 半双工, 1: 全双工) */
|
||||||
|
uint32_t speed; /*!< 速度 (Mbps) */
|
||||||
|
uint32_t rx_packets; /*!< 接收数据包计数 */
|
||||||
|
uint32_t tx_packets; /*!< 发送数据包计数 */
|
||||||
|
uint32_t rx_errors; /*!< 接收错误计数 */
|
||||||
|
uint32_t tx_errors; /*!< 发送错误计数 */
|
||||||
|
uint16_t phy_id1; /*!< PHY 标识符 1 */
|
||||||
|
uint16_t phy_id2; /*!< PHY 标识符 2 */
|
||||||
|
} bsp_eth_status_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 初始化以太网(LAN8720)模块
|
||||||
|
* @param config: 指向以太网配置结构体的指针
|
||||||
|
* @retval HAL 状态码
|
||||||
|
*/
|
||||||
|
hal_ret_t bsp_eth_init(const bsp_eth_config_t* config);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 反初始化以太网(LAN8720)模块
|
||||||
|
* @retval HAL 状态码
|
||||||
|
*/
|
||||||
|
hal_ret_t bsp_eth_deinit(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 获取以太网(LAN8720)状态
|
||||||
|
* @param status: 指向以太网状态结构体的指针
|
||||||
|
* @retval HAL 状态码
|
||||||
|
*/
|
||||||
|
hal_ret_t bsp_eth_get_status(bsp_eth_status_t* status);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 设置以太网 MAC 地址
|
||||||
|
* @param mac_addr: 指向 MAC 地址结构体的指针
|
||||||
|
* @retval HAL 状态码
|
||||||
|
*/
|
||||||
|
hal_ret_t bsp_eth_set_mac_addr(const hal_eth_mac_addr_t* mac_addr);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 获取以太网 MAC 地址
|
||||||
|
* @param mac_addr: 指向 MAC 地址结构体的指针
|
||||||
|
* @retval HAL 状态码
|
||||||
|
*/
|
||||||
|
hal_ret_t bsp_eth_get_mac_addr(hal_eth_mac_addr_t* mac_addr);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 检查以太网链路状态
|
||||||
|
* @param link_up: 存储链路状态的指针
|
||||||
|
* @retval HAL 状态码
|
||||||
|
*/
|
||||||
|
hal_ret_t bsp_eth_check_link(uint8_t* link_up);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 复位以太网 PHY(LAN8720)
|
||||||
|
* @retval HAL 状态码
|
||||||
|
*/
|
||||||
|
hal_ret_t bsp_eth_reset_phy(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 读取 LAN8720 PHY 寄存器
|
||||||
|
* @param reg_addr: 寄存器地址
|
||||||
|
* @param value: 存储寄存器值的指针
|
||||||
|
* @retval HAL 状态码
|
||||||
|
*/
|
||||||
|
hal_ret_t bsp_eth_read_phy_reg(uint16_t reg_addr, uint16_t* value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 写入 LAN8720 PHY 寄存器
|
||||||
|
* @param reg_addr: 寄存器地址
|
||||||
|
* @param value: 寄存器值
|
||||||
|
* @retval HAL 状态码
|
||||||
|
*/
|
||||||
|
hal_ret_t bsp_eth_write_phy_reg(uint16_t reg_addr, uint16_t value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 检测 LAN8720 PHY 存在
|
||||||
|
* @param detected: 存储检测结果的指针
|
||||||
|
* @retval HAL 状态码
|
||||||
|
*/
|
||||||
|
hal_ret_t bsp_eth_detect_phy(uint8_t* detected);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 配置 LAN8720 PHY
|
||||||
|
* @param mode: 以太网模式
|
||||||
|
* @param speed: 以太网速度
|
||||||
|
* @param auto_neg: 自动协商使能
|
||||||
|
* @retval HAL 状态码
|
||||||
|
*/
|
||||||
|
hal_ret_t bsp_eth_configure_phy(hal_eth_mode_t mode, hal_eth_speed_t speed, uint8_t auto_neg);
|
||||||
|
|
||||||
|
#endif /* BSP_ETH_H */
|
||||||
@ -2,7 +2,7 @@
|
|||||||
/**
|
/**
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
* @file : bsp_init.h
|
* @file : bsp_init.h
|
||||||
* @brief : Board support package initialization header file
|
* @brief : 板级支持包初始化头文件
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
/* USER CODE END Header */
|
/* USER CODE END Header */
|
||||||
@ -13,26 +13,26 @@
|
|||||||
#include "bsp_board.h"
|
#include "bsp_board.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Initialize board support package
|
* @brief 初始化板级支持包
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_init(void);
|
hal_ret_t bsp_init(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Initialize board GPIO
|
* @brief 初始化板级 GPIO
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_gpio_init(void);
|
hal_ret_t bsp_gpio_init(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get board name
|
* @brief 获取板级名称
|
||||||
* @retval Board name string
|
* @retval 板级名称字符串
|
||||||
*/
|
*/
|
||||||
const char* bsp_get_board_name(void);
|
const char* bsp_get_board_name(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get current board configuration
|
* @brief 获取当前板级配置
|
||||||
* @retval Pointer to board configuration structure
|
* @retval 指向板级配置结构体的指针
|
||||||
*/
|
*/
|
||||||
const bsp_board_config_t* bsp_get_board_config(void);
|
const bsp_board_config_t* bsp_get_board_config(void);
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
/**
|
/**
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
* @file : bsp_key.h
|
* @file : bsp_key.h
|
||||||
* @brief : Board support package key driver header file
|
* @brief : 板级支持包按键驱动头文件
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
/* USER CODE END Header */
|
/* USER CODE END Header */
|
||||||
@ -13,7 +13,7 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Key ID definitions
|
* @brief 按键 ID 定义
|
||||||
*/
|
*/
|
||||||
typedef enum {
|
typedef enum {
|
||||||
BSP_KEY_ID_KEY0 = 0,
|
BSP_KEY_ID_KEY0 = 0,
|
||||||
@ -23,7 +23,7 @@ typedef enum {
|
|||||||
} bsp_key_id_t;
|
} bsp_key_id_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Key state definitions
|
* @brief 按键状态定义
|
||||||
*/
|
*/
|
||||||
typedef enum {
|
typedef enum {
|
||||||
BSP_KEY_STATE_RELEASED = 0,
|
BSP_KEY_STATE_RELEASED = 0,
|
||||||
@ -31,80 +31,80 @@ typedef enum {
|
|||||||
} bsp_key_state_t;
|
} bsp_key_state_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Key event definitions
|
* @brief 按键事件定义
|
||||||
*/
|
*/
|
||||||
typedef enum {
|
typedef enum {
|
||||||
BSP_KEY_EVENT_NONE = 0,
|
BSP_KEY_EVENT_NONE = 0,
|
||||||
BSP_KEY_EVENT_PRESSED, /* Key pressed event */
|
BSP_KEY_EVENT_PRESSED, /* 按键按下事件 */
|
||||||
BSP_KEY_EVENT_RELEASED, /* Key released event */
|
BSP_KEY_EVENT_RELEASED, /* 按键释放事件 */
|
||||||
BSP_KEY_EVENT_LONG_PRESSED, /* Key long pressed event */
|
BSP_KEY_EVENT_LONG_PRESSED, /* 按键长按事件 */
|
||||||
BSP_KEY_EVENT_REPEAT, /* Key repeat event */
|
BSP_KEY_EVENT_REPEAT, /* 按键重复事件 */
|
||||||
BSP_KEY_EVENT_SHORT_PRESSED /* Key short pressed event */
|
BSP_KEY_EVENT_SHORT_PRESSED /* 按键短按事件 */
|
||||||
} bsp_key_event_t;
|
} bsp_key_event_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Initialize all keys
|
* @brief 初始化所有按键
|
||||||
*/
|
*/
|
||||||
void bsp_key_init(void);
|
void bsp_key_init(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Update key state (call this function periodically, e.g. every 10ms)
|
* @brief 更新按键状态(定期调用此函数,例如每 10ms)
|
||||||
*/
|
*/
|
||||||
void bsp_key_update(void);
|
void bsp_key_update(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Read debounced key state
|
* @brief 读取去抖后的按键状态
|
||||||
* @param key_id: Key ID
|
* @param key_id: 按键 ID
|
||||||
* @retval Key state
|
* @retval 按键状态
|
||||||
*/
|
*/
|
||||||
bsp_key_state_t bsp_key_read(bsp_key_id_t key_id);
|
bsp_key_state_t bsp_key_read(bsp_key_id_t key_id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Check if key is pressed
|
* @brief 检查按键是否按下
|
||||||
* @param key_id: Key ID
|
* @param key_id: 按键 ID
|
||||||
* @retval 1 if pressed, 0 otherwise
|
* @retval 按下返回 1,否则返回 0
|
||||||
*/
|
*/
|
||||||
uint8_t bsp_key_is_pressed(bsp_key_id_t key_id);
|
uint8_t bsp_key_is_pressed(bsp_key_id_t key_id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Check if key is released
|
* @brief 检查按键是否释放
|
||||||
* @param key_id: Key ID
|
* @param key_id: 按键 ID
|
||||||
* @retval 1 if released, 0 otherwise
|
* @retval 释放返回 1,否则返回 0
|
||||||
*/
|
*/
|
||||||
uint8_t bsp_key_is_released(bsp_key_id_t key_id);
|
uint8_t bsp_key_is_released(bsp_key_id_t key_id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Check for key press event (edge detection)
|
* @brief 检查按键按下事件(边沿检测)
|
||||||
* @param key_id: Key ID
|
* @param key_id: 按键 ID
|
||||||
* @retval 1 if key was pressed, 0 otherwise
|
* @retval 按键按下返回 1,否则返回 0
|
||||||
*/
|
*/
|
||||||
uint8_t bsp_key_get_press_event(bsp_key_id_t key_id);
|
uint8_t bsp_key_get_press_event(bsp_key_id_t key_id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Check for key release event (edge detection)
|
* @brief 检查按键释放事件(边沿检测)
|
||||||
* @param key_id: Key ID
|
* @param key_id: 按键 ID
|
||||||
* @retval 1 if key was released, 0 otherwise
|
* @retval 按键释放返回 1,否则返回 0
|
||||||
*/
|
*/
|
||||||
uint8_t bsp_key_get_release_event(bsp_key_id_t key_id);
|
uint8_t bsp_key_get_release_event(bsp_key_id_t key_id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Check for key long pressed event
|
* @brief 检查按键长按事件
|
||||||
* @param key_id: Key ID
|
* @param key_id: 按键 ID
|
||||||
* @retval 1 if key was long pressed, 0 otherwise
|
* @retval 按键长按返回 1,否则返回 0
|
||||||
*/
|
*/
|
||||||
uint8_t bsp_key_get_long_press_event(bsp_key_id_t key_id);
|
uint8_t bsp_key_get_long_press_event(bsp_key_id_t key_id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Check for key repeat event
|
* @brief 检查按键重复事件
|
||||||
* @param key_id: Key ID
|
* @param key_id: 按键 ID
|
||||||
* @retval 1 if key repeat event occurred, 0 otherwise
|
* @retval 按键重复事件发生返回 1,否则返回 0
|
||||||
*/
|
*/
|
||||||
uint8_t bsp_key_get_repeat_event(bsp_key_id_t key_id);
|
uint8_t bsp_key_get_repeat_event(bsp_key_id_t key_id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Check for key short pressed event
|
* @brief 检查按键短按事件
|
||||||
* @param key_id: Key ID
|
* @param key_id: 按键 ID
|
||||||
* @retval 1 if key was short pressed, 0 otherwise
|
* @retval 按键短按返回 1,否则返回 0
|
||||||
*/
|
*/
|
||||||
uint8_t bsp_key_get_short_press_event(bsp_key_id_t key_id);
|
uint8_t bsp_key_get_short_press_event(bsp_key_id_t key_id);
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
/**
|
/**
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
* @file : bsp_module.h
|
* @file : bsp_module.h
|
||||||
* @brief : Board support package module management header file
|
* @brief : 板级支持包模块管理头文件
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
/* USER CODE END Header */
|
/* USER CODE END Header */
|
||||||
@ -13,7 +13,7 @@
|
|||||||
#include "hal.h"
|
#include "hal.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief BSP module type definitions
|
* @brief BSP 模块类型定义
|
||||||
*/
|
*/
|
||||||
typedef enum {
|
typedef enum {
|
||||||
BSP_MODULE_TYPE_LED = 0,
|
BSP_MODULE_TYPE_LED = 0,
|
||||||
@ -31,7 +31,7 @@ typedef enum {
|
|||||||
} bsp_module_type_t;
|
} bsp_module_type_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief BSP module state definitions
|
* @brief BSP 模块状态定义
|
||||||
*/
|
*/
|
||||||
typedef enum {
|
typedef enum {
|
||||||
BSP_MODULE_STATE_UNINIT = 0,
|
BSP_MODULE_STATE_UNINIT = 0,
|
||||||
@ -42,7 +42,7 @@ typedef enum {
|
|||||||
} bsp_module_state_t;
|
} bsp_module_state_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief BSP module priority definitions
|
* @brief BSP 模块优先级定义
|
||||||
*/
|
*/
|
||||||
typedef enum {
|
typedef enum {
|
||||||
BSP_MODULE_PRIORITY_HIGHEST = 0,
|
BSP_MODULE_PRIORITY_HIGHEST = 0,
|
||||||
@ -53,36 +53,36 @@ typedef enum {
|
|||||||
} bsp_module_priority_t;
|
} bsp_module_priority_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief BSP module configuration structure
|
* @brief BSP 模块配置结构体
|
||||||
*/
|
*/
|
||||||
typedef struct bsp_module_config {
|
typedef struct bsp_module_config {
|
||||||
bsp_module_type_t type; /*!< Module type */
|
bsp_module_type_t type; /*!< 模块类型 */
|
||||||
const char* name; /*!< Module name */
|
const char* name; /*!< 模块名称 */
|
||||||
bsp_module_priority_t priority; /*!< Module priority */
|
bsp_module_priority_t priority; /*!< 模块优先级 */
|
||||||
uint32_t version; /*!< Module version */
|
uint32_t version; /*!< 模块版本 */
|
||||||
uint8_t instance; /*!< Module instance */
|
uint8_t instance; /*!< 模块实例 */
|
||||||
uint8_t enable; /*!< Module enable flag */
|
uint8_t enable; /*!< 模块使能标志 */
|
||||||
void* config_data; /*!< Module configuration data */
|
void* config_data; /*!< 模块配置数据 */
|
||||||
size_t config_size; /*!< Module configuration size */
|
size_t config_size; /*!< 模块配置大小 */
|
||||||
uint32_t dependencies; /*!< Module dependencies bitmask */
|
uint32_t dependencies; /*!< 模块依赖位掩码 */
|
||||||
} bsp_module_config_t;
|
} bsp_module_config_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief BSP module operations structure
|
* @brief BSP 模块操作结构体
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
hal_ret_t (*init)(void* config); /*!< Module initialization function */
|
hal_ret_t (*init)(void* config); /*!< 模块初始化函数 */
|
||||||
hal_ret_t (*deinit)(void); /*!< Module deinitialization function */
|
hal_ret_t (*deinit)(void); /*!< 模块反初始化函数 */
|
||||||
hal_ret_t (*configure)(void* config); /*!< Module configuration function */
|
hal_ret_t (*configure)(void* config); /*!< 模块配置函数 */
|
||||||
hal_ret_t (*start)(void); /*!< Module start function */
|
hal_ret_t (*start)(void); /*!< 模块启动函数 */
|
||||||
hal_ret_t (*stop)(void); /*!< Module stop function */
|
hal_ret_t (*stop)(void); /*!< 模块停止函数 */
|
||||||
hal_ret_t (*reset)(void); /*!< Module reset function */
|
hal_ret_t (*reset)(void); /*!< 模块复位函数 */
|
||||||
bsp_module_state_t (*get_state)(void); /*!< Module get state function */
|
bsp_module_state_t (*get_state)(void); /*!< 模块获取状态函数 */
|
||||||
hal_ret_t (*control)(uint32_t cmd, void* param); /*!< Module control function */
|
hal_ret_t (*control)(uint32_t cmd, void* param); /*!< 模块控制函数 */
|
||||||
} bsp_module_ops_t;
|
} bsp_module_ops_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief BSP module version structure
|
* @brief BSP 模块版本结构体
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint8_t major;
|
uint8_t major;
|
||||||
@ -91,42 +91,42 @@ typedef struct {
|
|||||||
} bsp_module_version_t;
|
} bsp_module_version_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Forward declaration of bsp_module_t
|
* @brief bsp_module_t 的前向声明
|
||||||
*/
|
*/
|
||||||
typedef struct bsp_module bsp_module_t;
|
typedef struct bsp_module bsp_module_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief BSP module event callback type
|
* @brief BSP 模块事件回调类型
|
||||||
*/
|
*/
|
||||||
typedef hal_ret_t (*bsp_module_event_callback_t)(const bsp_module_t* sender, uint32_t event, void* data);
|
typedef hal_ret_t (*bsp_module_event_callback_t)(const bsp_module_t* sender, uint32_t event, void* data);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief BSP module structure
|
* @brief BSP 模块结构体
|
||||||
*/
|
*/
|
||||||
typedef struct bsp_module {
|
typedef struct bsp_module {
|
||||||
bsp_module_config_t config; /*!< Module configuration */
|
bsp_module_config_t config; /*!< 模块配置 */
|
||||||
bsp_module_ops_t ops; /*!< Module operations */
|
bsp_module_ops_t ops; /*!< 模块操作 */
|
||||||
bsp_module_state_t state; /*!< Module state */
|
bsp_module_state_t state; /*!< 模块状态 */
|
||||||
bsp_module_version_t version; /*!< Module version */
|
bsp_module_version_t version; /*!< 模块版本 */
|
||||||
struct bsp_module* next; /*!< Pointer to next module in the list */
|
struct bsp_module* next; /*!< 链表中下一个模块的指针 */
|
||||||
struct bsp_module* prev; /*!< Pointer to previous module in the list */
|
struct bsp_module* prev; /*!< 链表中上一个模块的指针 */
|
||||||
void* private_data; /*!< Module private data */
|
void* private_data; /*!< 模块私有数据 */
|
||||||
bsp_module_event_callback_t event_callback; /*!< Event callback */
|
bsp_module_event_callback_t event_callback; /*!< 事件回调 */
|
||||||
} bsp_module_t;
|
} bsp_module_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief BSP module event definitions
|
* @brief BSP 模块事件定义
|
||||||
*/
|
*/
|
||||||
#define BSP_MODULE_EVENT_INIT (1 << 0) /*!< Module initialized */
|
#define BSP_MODULE_EVENT_INIT (1 << 0) /*!< 模块已初始化 */
|
||||||
#define BSP_MODULE_EVENT_DEINIT (1 << 1) /*!< Module deinitialized */
|
#define BSP_MODULE_EVENT_DEINIT (1 << 1) /*!< 模块已反初始化 */
|
||||||
#define BSP_MODULE_EVENT_START (1 << 2) /*!< Module started */
|
#define BSP_MODULE_EVENT_START (1 << 2) /*!< 模块已启动 */
|
||||||
#define BSP_MODULE_EVENT_STOP (1 << 3) /*!< Module stopped */
|
#define BSP_MODULE_EVENT_STOP (1 << 3) /*!< 模块已停止 */
|
||||||
#define BSP_MODULE_EVENT_ERROR (1 << 4) /*!< Module error */
|
#define BSP_MODULE_EVENT_ERROR (1 << 4) /*!< 模块错误 */
|
||||||
#define BSP_MODULE_EVENT_CONFIG (1 << 5) /*!< Module configured */
|
#define BSP_MODULE_EVENT_CONFIG (1 << 5) /*!< 模块已配置 */
|
||||||
#define BSP_MODULE_EVENT_CUSTOM (1 << 8) /*!< Custom module event base */
|
#define BSP_MODULE_EVENT_CUSTOM (1 << 8) /*!< 自定义模块事件基础 */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief BSP module auto-registration macros
|
* @brief BSP 模块自动注册宏
|
||||||
*/
|
*/
|
||||||
#define BSP_MODULE_REGISTER(module) \
|
#define BSP_MODULE_REGISTER(module) \
|
||||||
static const bsp_module_config_t __bsp_module_##module##_config = { \
|
static const bsp_module_config_t __bsp_module_##module##_config = { \
|
||||||
@ -173,228 +173,228 @@ typedef struct bsp_module {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief BSP module manager structure
|
* @brief BSP 模块管理器结构体
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
bsp_module_t* modules[BSP_MODULE_TYPE_MAX]; /*!< Modules by type */
|
bsp_module_t* modules[BSP_MODULE_TYPE_MAX]; /*!< 按类型存储的模块 */
|
||||||
bsp_module_t* module_list; /*!< Linked list of all modules */
|
bsp_module_t* module_list; /*!< 所有模块的链表 */
|
||||||
uint32_t module_count; /*!< Total number of modules */
|
uint32_t module_count; /*!< 模块总数 */
|
||||||
} bsp_module_manager_t;
|
} bsp_module_manager_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Initialize BSP module manager
|
* @brief 初始化 BSP 模块管理器
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_module_manager_init(void);
|
hal_ret_t bsp_module_manager_init(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Register a BSP module
|
* @brief 注册一个 BSP 模块
|
||||||
* @param module: Pointer to module structure
|
* @param module: 指向模块结构体的指针
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_module_register(bsp_module_t* module);
|
hal_ret_t bsp_module_register(bsp_module_t* module);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Unregister a BSP module
|
* @brief 注销一个 BSP 模块
|
||||||
* @param module: Pointer to module structure
|
* @param module: 指向模块结构体的指针
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_module_unregister(bsp_module_t* module);
|
hal_ret_t bsp_module_unregister(bsp_module_t* module);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Initialize all registered BSP modules
|
* @brief 初始化所有注册的 BSP 模块
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_module_init_all(void);
|
hal_ret_t bsp_module_init_all(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Deinitialize all registered BSP modules
|
* @brief 反初始化所有注册的 BSP 模块
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_module_deinit_all(void);
|
hal_ret_t bsp_module_deinit_all(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Start all registered BSP modules
|
* @brief 启动所有注册的 BSP 模块
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_module_start_all(void);
|
hal_ret_t bsp_module_start_all(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Stop all registered BSP modules
|
* @brief 停止所有注册的 BSP 模块
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_module_stop_all(void);
|
hal_ret_t bsp_module_stop_all(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Initialize a specific BSP module
|
* @brief 初始化指定的 BSP 模块
|
||||||
* @param type: Module type
|
* @param type: 模块类型
|
||||||
* @param instance: Module instance
|
* @param instance: 模块实例
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_module_init(bsp_module_type_t type, uint8_t instance);
|
hal_ret_t bsp_module_init(bsp_module_type_t type, uint8_t instance);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Deinitialize a specific BSP module
|
* @brief 反初始化指定的 BSP 模块
|
||||||
* @param type: Module type
|
* @param type: 模块类型
|
||||||
* @param instance: Module instance
|
* @param instance: 模块实例
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_module_deinit(bsp_module_type_t type, uint8_t instance);
|
hal_ret_t bsp_module_deinit(bsp_module_type_t type, uint8_t instance);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Configure a specific BSP module
|
* @brief 配置指定的 BSP 模块
|
||||||
* @param type: Module type
|
* @param type: 模块类型
|
||||||
* @param instance: Module instance
|
* @param instance: 模块实例
|
||||||
* @param config: Module configuration data
|
* @param config: 模块配置数据
|
||||||
* @param size: Module configuration size
|
* @param size: 模块配置大小
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_module_configure(bsp_module_type_t type, uint8_t instance, void* config, size_t size);
|
hal_ret_t bsp_module_configure(bsp_module_type_t type, uint8_t instance, void* config, size_t size);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Start a specific BSP module
|
* @brief 启动指定的 BSP 模块
|
||||||
* @param type: Module type
|
* @param type: 模块类型
|
||||||
* @param instance: Module instance
|
* @param instance: 模块实例
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_module_start(bsp_module_type_t type, uint8_t instance);
|
hal_ret_t bsp_module_start(bsp_module_type_t type, uint8_t instance);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Stop a specific BSP module
|
* @brief 停止指定的 BSP 模块
|
||||||
* @param type: Module type
|
* @param type: 模块类型
|
||||||
* @param instance: Module instance
|
* @param instance: 模块实例
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_module_stop(bsp_module_type_t type, uint8_t instance);
|
hal_ret_t bsp_module_stop(bsp_module_type_t type, uint8_t instance);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Reset a specific BSP module
|
* @brief 复位指定的 BSP 模块
|
||||||
* @param type: Module type
|
* @param type: 模块类型
|
||||||
* @param instance: Module instance
|
* @param instance: 模块实例
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_module_reset(bsp_module_type_t type, uint8_t instance);
|
hal_ret_t bsp_module_reset(bsp_module_type_t type, uint8_t instance);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get state of a specific BSP module
|
* @brief 获取指定 BSP 模块的状态
|
||||||
* @param type: Module type
|
* @param type: 模块类型
|
||||||
* @param instance: Module instance
|
* @param instance: 模块实例
|
||||||
* @param state: Pointer to store module state
|
* @param state: 存储模块状态的指针
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_module_get_state(bsp_module_type_t type, uint8_t instance, bsp_module_state_t* state);
|
hal_ret_t bsp_module_get_state(bsp_module_type_t type, uint8_t instance, bsp_module_state_t* state);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Control a specific BSP module
|
* @brief 控制指定的 BSP 模块
|
||||||
* @param type: Module type
|
* @param type: 模块类型
|
||||||
* @param instance: Module instance
|
* @param instance: 模块实例
|
||||||
* @param cmd: Control command
|
* @param cmd: 控制命令
|
||||||
* @param param: Control parameter
|
* @param param: 控制参数
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_module_control(bsp_module_type_t type, uint8_t instance, uint32_t cmd, void* param);
|
hal_ret_t bsp_module_control(bsp_module_type_t type, uint8_t instance, uint32_t cmd, void* param);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get a specific BSP module
|
* @brief 获取指定的 BSP 模块
|
||||||
* @param type: Module type
|
* @param type: 模块类型
|
||||||
* @param instance: Module instance
|
* @param instance: 模块实例
|
||||||
* @retval Pointer to module structure, or NULL if not found
|
* @retval 指向模块结构体的指针,未找到返回 NULL
|
||||||
*/
|
*/
|
||||||
bsp_module_t* bsp_module_get(bsp_module_type_t type, uint8_t instance);
|
bsp_module_t* bsp_module_get(bsp_module_type_t type, uint8_t instance);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get all modules of a specific type
|
* @brief 获取指定类型的所有模块
|
||||||
* @param type: Module type
|
* @param type: 模块类型
|
||||||
* @retval Pointer to module list, or NULL if no modules found
|
* @retval 指向模块列表的指针,未找到模块返回 NULL
|
||||||
*/
|
*/
|
||||||
bsp_module_t* bsp_module_get_by_type(bsp_module_type_t type);
|
bsp_module_t* bsp_module_get_by_type(bsp_module_type_t type);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get module by name
|
* @brief 通过名称获取模块
|
||||||
* @param name: Module name
|
* @param name: 模块名称
|
||||||
* @retval Pointer to module structure, or NULL if not found
|
* @retval 指向模块结构体的指针,未找到返回 NULL
|
||||||
*/
|
*/
|
||||||
bsp_module_t* bsp_module_get_by_name(const char* name);
|
bsp_module_t* bsp_module_get_by_name(const char* name);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get total number of registered modules
|
* @brief 获取注册模块的总数
|
||||||
* @retval Number of registered modules
|
* @retval 注册模块的数量
|
||||||
*/
|
*/
|
||||||
uint32_t bsp_module_get_count(void);
|
uint32_t bsp_module_get_count(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Check if all dependencies of a module are satisfied
|
* @brief 检查模块的所有依赖是否满足
|
||||||
* @param module: Pointer to module structure
|
* @param module: 指向模块结构体的指针
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_module_check_dependencies(const bsp_module_t* module);
|
hal_ret_t bsp_module_check_dependencies(const bsp_module_t* module);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get module manager instance
|
* @brief 获取模块管理器实例
|
||||||
* @retval Pointer to module manager structure
|
* @retval 指向模块管理器结构体的指针
|
||||||
*/
|
*/
|
||||||
bsp_module_manager_t* bsp_module_get_manager(void);
|
bsp_module_manager_t* bsp_module_get_manager(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Register a module event callback
|
* @brief 注册模块事件回调
|
||||||
* @param type: Module type
|
* @param type: 模块类型
|
||||||
* @param instance: Module instance
|
* @param instance: 模块实例
|
||||||
* @param callback: Event callback function
|
* @param callback: 事件回调函数
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_module_register_event_callback(bsp_module_type_t type, uint8_t instance, bsp_module_event_callback_t callback);
|
hal_ret_t bsp_module_register_event_callback(bsp_module_type_t type, uint8_t instance, bsp_module_event_callback_t callback);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Trigger a module event
|
* @brief 触发模块事件
|
||||||
* @param module: Pointer to module structure
|
* @param module: 指向模块结构体的指针
|
||||||
* @param event: Event to trigger
|
* @param event: 要触发的事件
|
||||||
* @param data: Event data
|
* @param data: 事件数据
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_module_trigger_event(const bsp_module_t* module, uint32_t event, void* data);
|
hal_ret_t bsp_module_trigger_event(const bsp_module_t* module, uint32_t event, void* data);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Find modules by priority range
|
* @brief 按优先级范围查找模块
|
||||||
* @param min_priority: Minimum priority
|
* @param min_priority: 最低优先级
|
||||||
* @param max_priority: Maximum priority
|
* @param max_priority: 最高优先级
|
||||||
* @param count: Pointer to store number of modules found
|
* @param count: 存储找到的模块数量的指针
|
||||||
* @retval Pointer to array of module pointers, or NULL if no modules found
|
* @retval 指向模块指针数组的指针,未找到模块返回 NULL
|
||||||
*/
|
*/
|
||||||
bsp_module_t** bsp_module_find_by_priority_range(bsp_module_priority_t min_priority, bsp_module_priority_t max_priority, uint32_t* count);
|
bsp_module_t** bsp_module_find_by_priority_range(bsp_module_priority_t min_priority, bsp_module_priority_t max_priority, uint32_t* count);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Set module enable/disable state
|
* @brief 设置模块使能/禁用状态
|
||||||
* @param type: Module type
|
* @param type: 模块类型
|
||||||
* @param instance: Module instance
|
* @param instance: 模块实例
|
||||||
* @param enable: Enable flag
|
* @param enable: 使能标志
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_module_set_enable(bsp_module_type_t type, uint8_t instance, uint8_t enable);
|
hal_ret_t bsp_module_set_enable(bsp_module_type_t type, uint8_t instance, uint8_t enable);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Check if module is enabled
|
* @brief 检查模块是否启用
|
||||||
* @param type: Module type
|
* @param type: 模块类型
|
||||||
* @param instance: Module instance
|
* @param instance: 模块实例
|
||||||
* @param enable: Pointer to store enable state
|
* @param enable: 存储使能状态的指针
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_module_is_enabled(bsp_module_type_t type, uint8_t instance, uint8_t* enable);
|
hal_ret_t bsp_module_is_enabled(bsp_module_type_t type, uint8_t instance, uint8_t* enable);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Set module priority
|
* @brief 设置模块优先级
|
||||||
* @param type: Module type
|
* @param type: 模块类型
|
||||||
* @param instance: Module instance
|
* @param instance: 模块实例
|
||||||
* @param priority: New priority
|
* @param priority: 新优先级
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_module_set_priority(bsp_module_type_t type, uint8_t instance, bsp_module_priority_t priority);
|
hal_ret_t bsp_module_set_priority(bsp_module_type_t type, uint8_t instance, bsp_module_priority_t priority);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get module priority
|
* @brief 获取模块优先级
|
||||||
* @param type: Module type
|
* @param type: 模块类型
|
||||||
* @param instance: Module instance
|
* @param instance: 模块实例
|
||||||
* @param priority: Pointer to store priority
|
* @param priority: 存储优先级的指针
|
||||||
* @retval HAL return code
|
* @retval HAL 返回码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_module_get_priority(bsp_module_type_t type, uint8_t instance, bsp_module_priority_t* priority);
|
hal_ret_t bsp_module_get_priority(bsp_module_type_t type, uint8_t instance, bsp_module_priority_t* priority);
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
/**
|
/**
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
* @file : bsp_w25qxx.h
|
* @file : bsp_w25qxx.h
|
||||||
* @brief : BSP layer for W25QXX flash memory
|
* @brief : W25QXX 闪存芯片的 BSP 层头文件
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
/* USER CODE END Header */
|
/* USER CODE END Header */
|
||||||
@ -15,71 +15,71 @@
|
|||||||
#include "hal_gpio.h"
|
#include "hal_gpio.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief W25QXX chip select pin configuration
|
* @brief W25QXX 芯片选择引脚配置
|
||||||
*/
|
*/
|
||||||
#define W25QXX_CS_PORT HAL_GPIO_PORT_B
|
#define W25QXX_CS_PORT HAL_GPIO_PORT_B
|
||||||
#define W25QXX_CS_PIN HAL_GPIO_PIN_0
|
#define W25QXX_CS_PIN HAL_GPIO_PIN_0
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief W25QXX SPI instance
|
* @brief W25QXX SPI 实例
|
||||||
*/
|
*/
|
||||||
#define W25QXX_SPI_INSTANCE HAL_SPI_INSTANCE_1
|
#define W25QXX_SPI_INSTANCE HAL_SPI_INSTANCE_1
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Initialize W25QXX flash memory
|
* @brief 初始化 W25QXX 闪存芯片
|
||||||
* @retval true if initialization is successful, false otherwise
|
* @retval 初始化成功返回 true,失败返回 false
|
||||||
*/
|
*/
|
||||||
bool bsp_w25qxx_init(void);
|
bool bsp_w25qxx_init(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get W25QXX device information
|
* @brief 获取 W25QXX 设备信息
|
||||||
* @param info Pointer to device information structure to fill
|
* @param info 指向设备信息结构体的指针
|
||||||
* @retval true if successful, false otherwise
|
* @retval 成功返回 true,失败返回 false
|
||||||
*/
|
*/
|
||||||
bool bsp_w25qxx_get_device_info(w25qxx_device_info_t *info);
|
bool bsp_w25qxx_get_device_info(w25qxx_device_info_t *info);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Read data from W25QXX flash memory
|
* @brief 从 W25QXX 闪存芯片读取数据
|
||||||
* @param address Starting address to read from
|
* @param address 起始读取地址
|
||||||
* @param data Pointer to data buffer to store read data
|
* @param data 存储读取数据的缓冲区指针
|
||||||
* @param size Size of data to read
|
* @param size 要读取的数据大小
|
||||||
* @retval true if read is successful, false otherwise
|
* @retval 读取成功返回 true,失败返回 false
|
||||||
*/
|
*/
|
||||||
bool bsp_w25qxx_read(uint32_t address, uint8_t *data, uint32_t size);
|
bool bsp_w25qxx_read(uint32_t address, uint8_t *data, uint32_t size);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Write data to W25QXX flash memory
|
* @brief 向 W25QXX 闪存芯片写入数据
|
||||||
* @param address Starting address to write to
|
* @param address 起始写入地址
|
||||||
* @param data Pointer to data buffer to write
|
* @param data 要写入的数据缓冲区指针
|
||||||
* @param size Size of data to write
|
* @param size 要写入的数据大小
|
||||||
* @retval true if write is successful, false otherwise
|
* @retval 写入成功返回 true,失败返回 false
|
||||||
*/
|
*/
|
||||||
bool bsp_w25qxx_write(uint32_t address, const uint8_t *data, uint32_t size);
|
bool bsp_w25qxx_write(uint32_t address, const uint8_t *data, uint32_t size);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Erase 4KB block
|
* @brief 擦除 4KB 块
|
||||||
* @param address Address within the block to erase
|
* @param address 块内的地址
|
||||||
* @retval true if erase is successful, false otherwise
|
* @retval 擦除成功返回 true,失败返回 false
|
||||||
*/
|
*/
|
||||||
bool bsp_w25qxx_erase_block_4kb(uint32_t address);
|
bool bsp_w25qxx_erase_block_4kb(uint32_t address);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Erase 32KB block
|
* @brief 擦除 32KB 块
|
||||||
* @param address Address within the block to erase
|
* @param address 块内的地址
|
||||||
* @retval true if erase is successful, false otherwise
|
* @retval 擦除成功返回 true,失败返回 false
|
||||||
*/
|
*/
|
||||||
bool bsp_w25qxx_erase_block_32kb(uint32_t address);
|
bool bsp_w25qxx_erase_block_32kb(uint32_t address);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Erase 64KB block
|
* @brief 擦除 64KB 块
|
||||||
* @param address Address within the block to erase
|
* @param address 块内的地址
|
||||||
* @retval true if erase is successful, false otherwise
|
* @retval 擦除成功返回 true,失败返回 false
|
||||||
*/
|
*/
|
||||||
bool bsp_w25qxx_erase_block_64kb(uint32_t address);
|
bool bsp_w25qxx_erase_block_64kb(uint32_t address);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Erase entire chip
|
* @brief 擦除整个芯片
|
||||||
* @retval true if erase is successful, false otherwise
|
* @retval 擦除成功返回 true,失败返回 false
|
||||||
*/
|
*/
|
||||||
bool bsp_w25qxx_erase_chip(void);
|
bool bsp_w25qxx_erase_chip(void);
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
/**
|
/**
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
* @file : bsp_board_manager.c
|
* @file : bsp_board_manager.c
|
||||||
* @brief : Board support package manager source file
|
* @brief : 板级支持包管理器源文件
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
/* USER CODE END Header */
|
/* USER CODE END Header */
|
||||||
@ -14,7 +14,7 @@
|
|||||||
extern const bsp_board_config_t stm32f407vet6_board_config;
|
extern const bsp_board_config_t stm32f407vet6_board_config;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief List of supported board configurations
|
* @brief 支持的板卡配置列表
|
||||||
*/
|
*/
|
||||||
static const bsp_board_config_t* supported_boards[] = {
|
static const bsp_board_config_t* supported_boards[] = {
|
||||||
&stm32f407vet6_board_config,
|
&stm32f407vet6_board_config,
|
||||||
@ -22,22 +22,22 @@ static const bsp_board_config_t* supported_boards[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Current board configuration index
|
* @brief 当前板卡配置索引
|
||||||
*/
|
*/
|
||||||
static uint8_t current_board_index = 0;
|
static uint8_t current_board_index = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get number of supported boards
|
* @brief 获取支持的板卡数量
|
||||||
* @retval Number of supported boards
|
* @retval 支持的板卡数量
|
||||||
*/
|
*/
|
||||||
uint8_t bsp_board_get_count(void) {
|
uint8_t bsp_board_get_count(void) {
|
||||||
return sizeof(supported_boards) / sizeof(supported_boards[0]);
|
return sizeof(supported_boards) / sizeof(supported_boards[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get board configuration by index
|
* @brief 通过索引获取板卡配置
|
||||||
* @param index: Board configuration index
|
* @param index: 板卡配置索引
|
||||||
* @retval Pointer to board configuration structure, NULL if invalid index
|
* @retval 指向板卡配置结构体的指针,无效索引返回 NULL
|
||||||
*/
|
*/
|
||||||
const bsp_board_config_t* bsp_board_get_by_index(uint8_t index) {
|
const bsp_board_config_t* bsp_board_get_by_index(uint8_t index) {
|
||||||
if (index < bsp_board_get_count()) {
|
if (index < bsp_board_get_count()) {
|
||||||
@ -47,9 +47,9 @@ const bsp_board_config_t* bsp_board_get_by_index(uint8_t index) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get board configuration by name
|
* @brief 通过名称获取板卡配置
|
||||||
* @param name: Board name string
|
* @param name: 板卡名称字符串
|
||||||
* @retval Pointer to board configuration structure, NULL if not found
|
* @retval 指向板卡配置结构体的指针,未找到返回 NULL
|
||||||
*/
|
*/
|
||||||
const bsp_board_config_t* bsp_board_get_by_name(const char* name) {
|
const bsp_board_config_t* bsp_board_get_by_name(const char* name) {
|
||||||
for (uint8_t i = 0; i < bsp_board_get_count(); i++) {
|
for (uint8_t i = 0; i < bsp_board_get_count(); i++) {
|
||||||
@ -62,9 +62,9 @@ const bsp_board_config_t* bsp_board_get_by_name(const char* name) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Set current board configuration by index
|
* @brief 通过索引设置当前板卡配置
|
||||||
* @param index: Board configuration index
|
* @param index: 板卡配置索引
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_board_set_by_index(uint8_t index) {
|
hal_ret_t bsp_board_set_by_index(uint8_t index) {
|
||||||
if (index < bsp_board_get_count()) {
|
if (index < bsp_board_get_count()) {
|
||||||
@ -75,9 +75,9 @@ hal_ret_t bsp_board_set_by_index(uint8_t index) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Set current board configuration by name
|
* @brief 通过名称设置当前板卡配置
|
||||||
* @param name: Board name string
|
* @param name: 板卡名称字符串
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_board_set_by_name(const char* name) {
|
hal_ret_t bsp_board_set_by_name(const char* name) {
|
||||||
if (name == NULL) {
|
if (name == NULL) {
|
||||||
@ -95,16 +95,16 @@ hal_ret_t bsp_board_set_by_name(const char* name) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get current board configuration
|
* @brief 获取当前板卡配置
|
||||||
* @retval Pointer to current board configuration structure
|
* @retval 指向当前板卡配置结构体的指针
|
||||||
*/
|
*/
|
||||||
const bsp_board_config_t* bsp_board_get_config(void) {
|
const bsp_board_config_t* bsp_board_get_config(void) {
|
||||||
return supported_boards[current_board_index];
|
return supported_boards[current_board_index];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get current board index
|
* @brief 获取当前板卡索引
|
||||||
* @retval Current board index
|
* @retval 当前板卡索引
|
||||||
*/
|
*/
|
||||||
uint8_t bsp_board_get_current_index(void) {
|
uint8_t bsp_board_get_current_index(void) {
|
||||||
return current_board_index;
|
return current_board_index;
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
/**
|
/**
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
* @file : bsp_config.c
|
* @file : bsp_config.c
|
||||||
* @brief : Board support package configuration file source
|
* @brief : 板级支持包配置文件源文件
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
/* USER CODE END Header */
|
/* USER CODE END Header */
|
||||||
@ -14,7 +14,7 @@
|
|||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Configuration storage entry
|
* @brief 配置存储条目
|
||||||
*/
|
*/
|
||||||
typedef struct bsp_config_storage_entry {
|
typedef struct bsp_config_storage_entry {
|
||||||
char section[BSP_CONFIG_MAX_SECTION_NAME_LENGTH];
|
char section[BSP_CONFIG_MAX_SECTION_NAME_LENGTH];
|
||||||
@ -24,7 +24,7 @@ typedef struct bsp_config_storage_entry {
|
|||||||
} bsp_config_storage_entry_t;
|
} bsp_config_storage_entry_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Configuration storage
|
* @brief 配置存储
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
bsp_config_storage_entry_t* entries;
|
bsp_config_storage_entry_t* entries;
|
||||||
@ -33,7 +33,7 @@ typedef struct {
|
|||||||
} bsp_config_storage_t;
|
} bsp_config_storage_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Configuration storage instance
|
* @brief 配置存储实例
|
||||||
*/
|
*/
|
||||||
static bsp_config_storage_t bsp_config_storage = {
|
static bsp_config_storage_t bsp_config_storage = {
|
||||||
.entries = NULL,
|
.entries = NULL,
|
||||||
@ -42,9 +42,9 @@ static bsp_config_storage_t bsp_config_storage = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Trim whitespace from a string
|
* @brief 去除字符串中的空白字符
|
||||||
* @param str: String to trim
|
* @param str: 要处理的字符串
|
||||||
* @return Trimmed string
|
* @return 处理后的字符串
|
||||||
*/
|
*/
|
||||||
static char* bsp_config_trim(char* str) {
|
static char* bsp_config_trim(char* str) {
|
||||||
char* end;
|
char* end;
|
||||||
@ -71,10 +71,10 @@ static char* bsp_config_trim(char* str) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Open configuration file
|
* @brief 打开配置文件
|
||||||
* @param filename: Configuration file name
|
* @param filename: 配置文件名称
|
||||||
* @param parser: Parser context
|
* @param parser: 解析器上下文
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
static hal_ret_t bsp_config_file_open(const char* filename, bsp_config_parser_t* parser) {
|
static hal_ret_t bsp_config_file_open(const char* filename, bsp_config_parser_t* parser) {
|
||||||
if (filename == NULL || parser == NULL) {
|
if (filename == NULL || parser == NULL) {
|
||||||
@ -95,9 +95,9 @@ static hal_ret_t bsp_config_file_open(const char* filename, bsp_config_parser_t*
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Close configuration file
|
* @brief 关闭配置文件
|
||||||
* @param parser: Parser context
|
* @param parser: 解析器上下文
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
static hal_ret_t bsp_config_file_close(bsp_config_parser_t* parser) {
|
static hal_ret_t bsp_config_file_close(bsp_config_parser_t* parser) {
|
||||||
if (parser == NULL || !parser->initialized) {
|
if (parser == NULL || !parser->initialized) {
|
||||||
@ -115,10 +115,10 @@ static hal_ret_t bsp_config_file_close(bsp_config_parser_t* parser) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Read a configuration entry from file
|
* @brief 从文件读取配置条目
|
||||||
* @param parser: Parser context
|
* @param parser: 解析器上下文
|
||||||
* @param entry: Configuration entry
|
* @param entry: 配置条目
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
static hal_ret_t bsp_config_file_read_entry(bsp_config_parser_t* parser, bsp_config_entry_t* entry) {
|
static hal_ret_t bsp_config_file_read_entry(bsp_config_parser_t* parser, bsp_config_entry_t* entry) {
|
||||||
if (parser == NULL || entry == NULL || !parser->initialized) {
|
if (parser == NULL || entry == NULL || !parser->initialized) {
|
||||||
@ -169,10 +169,10 @@ static hal_ret_t bsp_config_file_read_entry(bsp_config_parser_t* parser, bsp_con
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Parse integer value
|
* @brief 解析整数值
|
||||||
* @param value: String value to parse
|
* @param value: 要解析的字符串值
|
||||||
* @param result: Pointer to store result
|
* @param result: 存储结果的指针
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
static hal_ret_t bsp_config_parse_int(const char* value, int* result) {
|
static hal_ret_t bsp_config_parse_int(const char* value, int* result) {
|
||||||
if (value == NULL || result == NULL) {
|
if (value == NULL || result == NULL) {
|
||||||
@ -192,10 +192,10 @@ static hal_ret_t bsp_config_parse_int(const char* value, int* result) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Parse unsigned integer value
|
* @brief 解析无符号整数值
|
||||||
* @param value: String value to parse
|
* @param value: 要解析的字符串值
|
||||||
* @param result: Pointer to store result
|
* @param result: 存储结果的指针
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
static hal_ret_t bsp_config_parse_uint(const char* value, uint32_t* result) {
|
static hal_ret_t bsp_config_parse_uint(const char* value, uint32_t* result) {
|
||||||
if (value == NULL || result == NULL) {
|
if (value == NULL || result == NULL) {
|
||||||
@ -215,10 +215,10 @@ static hal_ret_t bsp_config_parse_uint(const char* value, uint32_t* result) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Parse boolean value
|
* @brief 解析布尔值
|
||||||
* @param value: String value to parse
|
* @param value: 要解析的字符串值
|
||||||
* @param result: Pointer to store result
|
* @param result: 存储结果的指针
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
static hal_ret_t bsp_config_parse_bool(const char* value, uint8_t* result) {
|
static hal_ret_t bsp_config_parse_bool(const char* value, uint8_t* result) {
|
||||||
if (value == NULL || result == NULL) {
|
if (value == NULL || result == NULL) {
|
||||||
@ -241,11 +241,11 @@ static hal_ret_t bsp_config_parse_bool(const char* value, uint8_t* result) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Parse string value
|
* @brief 解析字符串值
|
||||||
* @param value: String value to parse
|
* @param value: 要解析的字符串值
|
||||||
* @param result: Pointer to store result
|
* @param result: 存储结果的指针
|
||||||
* @param max_length: Maximum length of result buffer
|
* @param max_length: 结果缓冲区的最大长度
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
static hal_ret_t bsp_config_parse_string(const char* value, char* result, size_t max_length) {
|
static hal_ret_t bsp_config_parse_string(const char* value, char* result, size_t max_length) {
|
||||||
if (value == NULL || result == NULL) {
|
if (value == NULL || result == NULL) {
|
||||||
@ -259,11 +259,11 @@ static hal_ret_t bsp_config_parse_string(const char* value, char* result, size_t
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Add a configuration entry to storage
|
* @brief 添加配置条目到存储
|
||||||
* @param section: Section name
|
* @param section: 节名称
|
||||||
* @param key: Key name
|
* @param key: 键名称
|
||||||
* @param value: Value
|
* @param value: 值
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
static hal_ret_t bsp_config_storage_add(const char* section, const char* key, const char* value) {
|
static hal_ret_t bsp_config_storage_add(const char* section, const char* key, const char* value) {
|
||||||
// Check if entry already exists
|
// Check if entry already exists
|
||||||
@ -309,7 +309,7 @@ static hal_ret_t bsp_config_storage_add(const char* section, const char* key, co
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Clear configuration storage
|
* @brief 清空配置存储
|
||||||
*/
|
*/
|
||||||
static void bsp_config_storage_clear(void) {
|
static void bsp_config_storage_clear(void) {
|
||||||
bsp_config_storage_entry_t* entry = bsp_config_storage.entries;
|
bsp_config_storage_entry_t* entry = bsp_config_storage.entries;
|
||||||
@ -324,8 +324,8 @@ static void bsp_config_storage_clear(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Initialize BSP configuration system
|
* @brief 初始化 BSP 配置系统
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_config_init(void) {
|
hal_ret_t bsp_config_init(void) {
|
||||||
if (bsp_config_storage.initialized) {
|
if (bsp_config_storage.initialized) {
|
||||||
@ -339,8 +339,8 @@ hal_ret_t bsp_config_init(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Deinitialize BSP configuration system
|
* @brief 反初始化 BSP 配置系统
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_config_deinit(void) {
|
hal_ret_t bsp_config_deinit(void) {
|
||||||
if (!bsp_config_storage.initialized) {
|
if (!bsp_config_storage.initialized) {
|
||||||
@ -354,9 +354,9 @@ hal_ret_t bsp_config_deinit(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Load BSP configuration from file
|
* @brief 从文件加载 BSP 配置
|
||||||
* @param filename: Configuration file name
|
* @param filename: 配置文件名称
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_config_load(const char* filename) {
|
hal_ret_t bsp_config_load(const char* filename) {
|
||||||
if (!bsp_config_storage.initialized) {
|
if (!bsp_config_storage.initialized) {
|
||||||
@ -395,9 +395,9 @@ hal_ret_t bsp_config_load(const char* filename) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Save BSP configuration to file
|
* @brief 保存 BSP 配置到文件
|
||||||
* @param filename: Configuration file name
|
* @param filename: 配置文件名称
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_config_save(const char* filename) {
|
hal_ret_t bsp_config_save(const char* filename) {
|
||||||
if (!bsp_config_storage.initialized || bsp_config_storage.entry_count == 0) {
|
if (!bsp_config_storage.initialized || bsp_config_storage.entry_count == 0) {
|
||||||
@ -432,12 +432,12 @@ hal_ret_t bsp_config_save(const char* filename) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get configuration value
|
* @brief 获取配置值
|
||||||
* @param section: Configuration section name
|
* @param section: 配置节名称
|
||||||
* @param key: Configuration key name
|
* @param key: 配置键名称
|
||||||
* @param value: Pointer to store value
|
* @param value: 存储值的指针
|
||||||
* @param max_length: Maximum length of value buffer
|
* @param max_length: 值缓冲区的最大长度
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_config_get_value(const char* section, const char* key, char* value, size_t max_length) {
|
hal_ret_t bsp_config_get_value(const char* section, const char* key, char* value, size_t max_length) {
|
||||||
if (!bsp_config_storage.initialized || section == NULL || key == NULL || value == NULL) {
|
if (!bsp_config_storage.initialized || section == NULL || key == NULL || value == NULL) {
|
||||||
@ -458,11 +458,11 @@ hal_ret_t bsp_config_get_value(const char* section, const char* key, char* value
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Set configuration value
|
* @brief 设置配置值
|
||||||
* @param section: Configuration section name
|
* @param section: 配置节名称
|
||||||
* @param key: Configuration key name
|
* @param key: 配置键名称
|
||||||
* @param value: Configuration value
|
* @param value: 配置值
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_config_set_value(const char* section, const char* key, const char* value) {
|
hal_ret_t bsp_config_set_value(const char* section, const char* key, const char* value) {
|
||||||
if (!bsp_config_storage.initialized || section == NULL || key == NULL || value == NULL) {
|
if (!bsp_config_storage.initialized || section == NULL || key == NULL || value == NULL) {
|
||||||
@ -473,11 +473,11 @@ hal_ret_t bsp_config_set_value(const char* section, const char* key, const char*
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get configuration value as integer
|
* @brief 获取配置值作为整数
|
||||||
* @param section: Configuration section name
|
* @param section: 配置节名称
|
||||||
* @param key: Configuration key name
|
* @param key: 配置键名称
|
||||||
* @param value: Pointer to store integer value
|
* @param value: 存储整数值的指针
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_config_get_int(const char* section, const char* key, int* value) {
|
hal_ret_t bsp_config_get_int(const char* section, const char* key, int* value) {
|
||||||
char str_value[BSP_CONFIG_MAX_VALUE_LENGTH];
|
char str_value[BSP_CONFIG_MAX_VALUE_LENGTH];
|
||||||
@ -490,11 +490,11 @@ hal_ret_t bsp_config_get_int(const char* section, const char* key, int* value) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Set configuration value as integer
|
* @brief 设置配置值作为整数
|
||||||
* @param section: Configuration section name
|
* @param section: 配置节名称
|
||||||
* @param key: Configuration key name
|
* @param key: 配置键名称
|
||||||
* @param value: Integer value
|
* @param value: 整数值
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_config_set_int(const char* section, const char* key, int value) {
|
hal_ret_t bsp_config_set_int(const char* section, const char* key, int value) {
|
||||||
char str_value[BSP_CONFIG_MAX_VALUE_LENGTH];
|
char str_value[BSP_CONFIG_MAX_VALUE_LENGTH];
|
||||||
@ -503,11 +503,11 @@ hal_ret_t bsp_config_set_int(const char* section, const char* key, int value) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get configuration value as unsigned integer
|
* @brief 获取配置值作为无符号整数
|
||||||
* @param section: Configuration section name
|
* @param section: 配置节名称
|
||||||
* @param key: Configuration key name
|
* @param key: 配置键名称
|
||||||
* @param value: Pointer to store unsigned integer value
|
* @param value: 存储无符号整数值的指针
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_config_get_uint(const char* section, const char* key, uint32_t* value) {
|
hal_ret_t bsp_config_get_uint(const char* section, const char* key, uint32_t* value) {
|
||||||
char str_value[BSP_CONFIG_MAX_VALUE_LENGTH];
|
char str_value[BSP_CONFIG_MAX_VALUE_LENGTH];
|
||||||
@ -520,11 +520,11 @@ hal_ret_t bsp_config_get_uint(const char* section, const char* key, uint32_t* va
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Set configuration value as unsigned integer
|
* @brief 设置配置值作为无符号整数
|
||||||
* @param section: Configuration section name
|
* @param section: 配置节名称
|
||||||
* @param key: Configuration key name
|
* @param key: 配置键名称
|
||||||
* @param value: Unsigned integer value
|
* @param value: 无符号整数值
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_config_set_uint(const char* section, const char* key, uint32_t value) {
|
hal_ret_t bsp_config_set_uint(const char* section, const char* key, uint32_t value) {
|
||||||
char str_value[BSP_CONFIG_MAX_VALUE_LENGTH];
|
char str_value[BSP_CONFIG_MAX_VALUE_LENGTH];
|
||||||
@ -533,11 +533,11 @@ hal_ret_t bsp_config_set_uint(const char* section, const char* key, uint32_t val
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get configuration value as boolean
|
* @brief 获取配置值作为布尔值
|
||||||
* @param section: Configuration section name
|
* @param section: 配置节名称
|
||||||
* @param key: Configuration key name
|
* @param key: 配置键名称
|
||||||
* @param value: Pointer to store boolean value
|
* @param value: 存储布尔值的指针
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_config_get_bool(const char* section, const char* key, uint8_t* value) {
|
hal_ret_t bsp_config_get_bool(const char* section, const char* key, uint8_t* value) {
|
||||||
char str_value[BSP_CONFIG_MAX_VALUE_LENGTH];
|
char str_value[BSP_CONFIG_MAX_VALUE_LENGTH];
|
||||||
@ -550,20 +550,20 @@ hal_ret_t bsp_config_get_bool(const char* section, const char* key, uint8_t* val
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Set configuration value as boolean
|
* @brief 设置配置值作为布尔值
|
||||||
* @param section: Configuration section name
|
* @param section: 配置节名称
|
||||||
* @param key: Configuration key name
|
* @param key: 配置键名称
|
||||||
* @param value: Boolean value
|
* @param value: 布尔值
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_config_set_bool(const char* section, const char* key, uint8_t value) {
|
hal_ret_t bsp_config_set_bool(const char* section, const char* key, uint8_t value) {
|
||||||
return bsp_config_set_value(section, key, value ? "true" : "false");
|
return bsp_config_set_value(section, key, value ? "true" : "false");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Parse BSP modules from configuration
|
* @brief 从配置解析 BSP 模块
|
||||||
* @param config: Pointer to BSP board configuration structure to fill
|
* @param config: 指向要填充的 BSP 板卡配置结构体的指针
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_config_parse_modules(bsp_board_config_t* config) {
|
hal_ret_t bsp_config_parse_modules(bsp_board_config_t* config) {
|
||||||
if (config == NULL) {
|
if (config == NULL) {
|
||||||
@ -578,9 +578,9 @@ hal_ret_t bsp_config_parse_modules(bsp_board_config_t* config) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Initialize BSP from configuration file
|
* @brief 从配置文件初始化 BSP
|
||||||
* @param filename: Configuration file name
|
* @param filename: 配置文件名称
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_init_from_config(const char* filename) {
|
hal_ret_t bsp_init_from_config(const char* filename) {
|
||||||
// Load configuration file
|
// Load configuration file
|
||||||
|
|||||||
353
BSP/Src/bsp_eth.c
Normal file
353
BSP/Src/bsp_eth.c
Normal file
@ -0,0 +1,353 @@
|
|||||||
|
/* USER CODE BEGIN Header */
|
||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file : bsp_eth.c
|
||||||
|
* @brief : Board support package Ethernet (LAN8720) driver implementation
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
/* USER CODE END Header */
|
||||||
|
|
||||||
|
#include "bsp_eth.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Ethernet configuration
|
||||||
|
*/
|
||||||
|
static bsp_eth_config_t eth_config;
|
||||||
|
static uint8_t eth_initialized = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Initialize Ethernet (LAN8720) module
|
||||||
|
* @param config: Pointer to Ethernet configuration structure
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t bsp_eth_init(const bsp_eth_config_t* config)
|
||||||
|
{
|
||||||
|
if (!config) {
|
||||||
|
return HAL_RET_INVALID_PARAM;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (eth_initialized) {
|
||||||
|
return HAL_RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Store configuration */
|
||||||
|
eth_config = *config;
|
||||||
|
|
||||||
|
/* Convert to HAL configuration */
|
||||||
|
hal_eth_config_t hal_config;
|
||||||
|
hal_config.enable = config->enable;
|
||||||
|
hal_config.instance = config->instance;
|
||||||
|
hal_config.mode = config->mode;
|
||||||
|
hal_config.speed = config->speed;
|
||||||
|
hal_config.phy_addr = config->phy_addr;
|
||||||
|
hal_config.mac_addr = config->mac_addr;
|
||||||
|
hal_config.auto_negotiation = config->auto_negotiation;
|
||||||
|
hal_config.interrupt_enable = config->interrupt_enable;
|
||||||
|
|
||||||
|
/* Initialize HAL Ethernet */
|
||||||
|
if (hal_eth_init(&hal_config) != HAL_RET_OK) {
|
||||||
|
return HAL_RET_INIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Detect LAN8720 PHY */
|
||||||
|
uint8_t detected;
|
||||||
|
if (bsp_eth_detect_phy(&detected) != HAL_RET_OK) {
|
||||||
|
return HAL_RET_INIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!detected) {
|
||||||
|
return HAL_RET_INIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Configure PHY */
|
||||||
|
if (bsp_eth_configure_phy(config->mode, config->speed, config->auto_negotiation) != HAL_RET_OK) {
|
||||||
|
return HAL_RET_INIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
eth_initialized = 1;
|
||||||
|
return HAL_RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Deinitialize Ethernet (LAN8720) module
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t bsp_eth_deinit(void)
|
||||||
|
{
|
||||||
|
if (!eth_initialized) {
|
||||||
|
return HAL_RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hal_eth_deinit(eth_config.instance) != HAL_RET_OK) {
|
||||||
|
return HAL_RET_DEINIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
eth_initialized = 0;
|
||||||
|
return HAL_RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get Ethernet (LAN8720) status
|
||||||
|
* @param status: Pointer to Ethernet status structure
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t bsp_eth_get_status(bsp_eth_status_t* status)
|
||||||
|
{
|
||||||
|
if (!status) {
|
||||||
|
return HAL_RET_INVALID_PARAM;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!eth_initialized) {
|
||||||
|
return HAL_RET_INIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Get HAL Ethernet status */
|
||||||
|
hal_eth_status_t hal_status;
|
||||||
|
if (hal_eth_get_status(eth_config.instance, &hal_status) != HAL_RET_OK) {
|
||||||
|
return HAL_RET_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Copy status */
|
||||||
|
status->link_up = hal_status.link_up;
|
||||||
|
status->duplex = hal_status.duplex;
|
||||||
|
status->speed = hal_status.speed;
|
||||||
|
status->rx_packets = hal_status.rx_packets;
|
||||||
|
status->tx_packets = hal_status.tx_packets;
|
||||||
|
status->rx_errors = hal_status.rx_errors;
|
||||||
|
status->tx_errors = hal_status.tx_errors;
|
||||||
|
|
||||||
|
/* Get PHY identifiers */
|
||||||
|
if (bsp_eth_read_phy_reg(LAN8720_REG_PID1, &status->phy_id1) != HAL_RET_OK) {
|
||||||
|
status->phy_id1 = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bsp_eth_read_phy_reg(LAN8720_REG_PID2, &status->phy_id2) != HAL_RET_OK) {
|
||||||
|
status->phy_id2 = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return HAL_RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Set Ethernet MAC address
|
||||||
|
* @param mac_addr: Pointer to MAC address structure
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t bsp_eth_set_mac_addr(const hal_eth_mac_addr_t* mac_addr)
|
||||||
|
{
|
||||||
|
if (!mac_addr) {
|
||||||
|
return HAL_RET_INVALID_PARAM;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!eth_initialized) {
|
||||||
|
return HAL_RET_INIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hal_eth_set_mac_addr(eth_config.instance, mac_addr) != HAL_RET_OK) {
|
||||||
|
return HAL_RET_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
eth_config.mac_addr = *mac_addr;
|
||||||
|
return HAL_RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get Ethernet MAC address
|
||||||
|
* @param mac_addr: Pointer to MAC address structure
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t bsp_eth_get_mac_addr(hal_eth_mac_addr_t* mac_addr)
|
||||||
|
{
|
||||||
|
if (!mac_addr) {
|
||||||
|
return HAL_RET_INVALID_PARAM;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!eth_initialized) {
|
||||||
|
return HAL_RET_INIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hal_eth_get_mac_addr(eth_config.instance, mac_addr) != HAL_RET_OK) {
|
||||||
|
return HAL_RET_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
return HAL_RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Check Ethernet link status
|
||||||
|
* @param link_up: Pointer to store link up status
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t bsp_eth_check_link(uint8_t* link_up)
|
||||||
|
{
|
||||||
|
if (!link_up) {
|
||||||
|
return HAL_RET_INVALID_PARAM;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!eth_initialized) {
|
||||||
|
return HAL_RET_INIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hal_eth_check_link(eth_config.instance, link_up) != HAL_RET_OK) {
|
||||||
|
return HAL_RET_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
return HAL_RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Reset Ethernet PHY (LAN8720)
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t bsp_eth_reset_phy(void)
|
||||||
|
{
|
||||||
|
if (!eth_initialized) {
|
||||||
|
return HAL_RET_INIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hal_eth_reset_phy(eth_config.instance, eth_config.phy_addr) != HAL_RET_OK) {
|
||||||
|
return HAL_RET_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
return HAL_RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Read LAN8720 PHY register
|
||||||
|
* @param reg_addr: Register address
|
||||||
|
* @param value: Pointer to store register value
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t bsp_eth_read_phy_reg(uint16_t reg_addr, uint16_t* value)
|
||||||
|
{
|
||||||
|
if (!value) {
|
||||||
|
return HAL_RET_INVALID_PARAM;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!eth_initialized) {
|
||||||
|
return HAL_RET_INIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hal_eth_read_phy_reg(eth_config.instance, eth_config.phy_addr, reg_addr, value) != HAL_RET_OK) {
|
||||||
|
return HAL_RET_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
return HAL_RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Write LAN8720 PHY register
|
||||||
|
* @param reg_addr: Register address
|
||||||
|
* @param value: Register value
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t bsp_eth_write_phy_reg(uint16_t reg_addr, uint16_t value)
|
||||||
|
{
|
||||||
|
if (!eth_initialized) {
|
||||||
|
return HAL_RET_INIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hal_eth_write_phy_reg(eth_config.instance, eth_config.phy_addr, reg_addr, value) != HAL_RET_OK) {
|
||||||
|
return HAL_RET_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
return HAL_RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Detect LAN8720 PHY presence
|
||||||
|
* @param detected: Pointer to store detection result
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t bsp_eth_detect_phy(uint8_t* detected)
|
||||||
|
{
|
||||||
|
if (!detected) {
|
||||||
|
return HAL_RET_INVALID_PARAM;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!eth_initialized) {
|
||||||
|
return HAL_RET_INIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Read PHY identifiers */
|
||||||
|
uint16_t id1, id2;
|
||||||
|
if (bsp_eth_read_phy_reg(LAN8720_REG_PID1, &id1) != HAL_RET_OK) {
|
||||||
|
return HAL_RET_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bsp_eth_read_phy_reg(LAN8720_REG_PID2, &id2) != HAL_RET_OK) {
|
||||||
|
return HAL_RET_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Check if this is a LAN8720 PHY */
|
||||||
|
if (id1 == LAN8720_PID1_VALUE && (id2 & 0xFFF0) == LAN8720_PID2_VALUE) {
|
||||||
|
*detected = 1;
|
||||||
|
} else {
|
||||||
|
*detected = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return HAL_RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Configure LAN8720 PHY
|
||||||
|
* @param mode: Ethernet mode
|
||||||
|
* @param speed: Ethernet speed
|
||||||
|
* @param auto_neg: Auto-negotiation enable
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t bsp_eth_configure_phy(hal_eth_mode_t mode, hal_eth_speed_t speed, uint8_t auto_neg)
|
||||||
|
{
|
||||||
|
if (!eth_initialized) {
|
||||||
|
return HAL_RET_INIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Read current BCR register */
|
||||||
|
uint16_t bcr;
|
||||||
|
if (bsp_eth_read_phy_reg(LAN8720_REG_BCR, &bcr) != HAL_RET_OK) {
|
||||||
|
return HAL_RET_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Clear relevant bits */
|
||||||
|
bcr &= ~(LAN8720_BCR_AUTO_NEG_EN | LAN8720_BCR_SPEED_SELECT | LAN8720_BCR_DUPLEX_MODE);
|
||||||
|
|
||||||
|
if (auto_neg) {
|
||||||
|
/* Enable auto-negotiation */
|
||||||
|
bcr |= LAN8720_BCR_AUTO_NEG_EN;
|
||||||
|
bcr |= LAN8720_BCR_RESTART_AN;
|
||||||
|
} else {
|
||||||
|
/* Manual configuration */
|
||||||
|
if (speed == HAL_ETH_SPEED_100MBPS) {
|
||||||
|
bcr |= LAN8720_BCR_SPEED_SELECT;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mode == HAL_ETH_MODE_FULLDUPLEX) {
|
||||||
|
bcr |= LAN8720_BCR_DUPLEX_MODE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Write BCR register */
|
||||||
|
if (bsp_eth_write_phy_reg(LAN8720_REG_BCR, bcr) != HAL_RET_OK) {
|
||||||
|
return HAL_RET_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Wait for configuration to complete */
|
||||||
|
if (auto_neg) {
|
||||||
|
uint32_t timeout = 1000;
|
||||||
|
uint16_t bsr;
|
||||||
|
while (timeout--) {
|
||||||
|
if (bsp_eth_read_phy_reg(LAN8720_REG_BSR, &bsr) == HAL_RET_OK) {
|
||||||
|
if (bsr & LAN8720_BSR_AUTO_NEG_COMPLETE) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
HAL_Delay(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (timeout == 0) {
|
||||||
|
return HAL_RET_TIMEOUT;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return HAL_RET_OK;
|
||||||
|
}
|
||||||
@ -2,7 +2,7 @@
|
|||||||
/**
|
/**
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
* @file : bsp_init.c
|
* @file : bsp_init.c
|
||||||
* @brief : Board support package initialization source file
|
* @brief : 板级支持包初始化源文件
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
/* USER CODE END Header */
|
/* USER CODE END Header */
|
||||||
@ -15,8 +15,8 @@
|
|||||||
#include "hal_uart.h"
|
#include "hal_uart.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Initialize board support package
|
* @brief 初始化板级支持包
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_init(void) {
|
hal_ret_t bsp_init(void) {
|
||||||
/* Get board configuration */
|
/* Get board configuration */
|
||||||
@ -137,8 +137,8 @@ hal_ret_t bsp_init(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Initialize board GPIO using configuration
|
* @brief 使用配置初始化板卡 GPIO
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_gpio_init(void) {
|
hal_ret_t bsp_gpio_init(void) {
|
||||||
/* Get board configuration */
|
/* Get board configuration */
|
||||||
@ -254,16 +254,16 @@ hal_ret_t bsp_gpio_init(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get board name
|
* @brief 获取板卡名称
|
||||||
* @retval Board name string
|
* @retval 板卡名称字符串
|
||||||
*/
|
*/
|
||||||
const char* bsp_get_board_name(void) {
|
const char* bsp_get_board_name(void) {
|
||||||
return bsp_board_get_name();
|
return bsp_board_get_name();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get current board configuration
|
* @brief 获取当前板卡配置
|
||||||
* @retval Pointer to board configuration structure
|
* @retval 指向板卡配置结构体的指针
|
||||||
*/
|
*/
|
||||||
const bsp_board_config_t* bsp_get_board_config(void) {
|
const bsp_board_config_t* bsp_get_board_config(void) {
|
||||||
return bsp_board_get_config();
|
return bsp_board_get_config();
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
/**
|
/**
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
* @file : bsp_key.c
|
* @file : bsp_key.c
|
||||||
* @brief : Board support package key driver implementation
|
* @brief : 板级支持包按键驱动实现
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
/* USER CODE END Header */
|
/* USER CODE END Header */
|
||||||
@ -15,7 +15,7 @@
|
|||||||
#include "hal_delay.h"
|
#include "hal_delay.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Key debounce configuration
|
* @brief 按键防抖配置
|
||||||
*/
|
*/
|
||||||
#define KEY_DEBOUNCE_COUNT 5 /* Debounce count (each update is ~10ms, so 50ms debounce) */
|
#define KEY_DEBOUNCE_COUNT 5 /* Debounce count (each update is ~10ms, so 50ms debounce) */
|
||||||
#define KEY_LONG_PRESS_TIME 1000 /* Long press time in ms */
|
#define KEY_LONG_PRESS_TIME 1000 /* Long press time in ms */
|
||||||
@ -24,7 +24,7 @@
|
|||||||
#define KEY_UPDATE_INTERVAL 10 /* Update interval in ms */
|
#define KEY_UPDATE_INTERVAL 10 /* Update interval in ms */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Key configuration structure
|
* @brief 按键配置结构体
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
hal_gpio_port_t port;
|
hal_gpio_port_t port;
|
||||||
@ -33,7 +33,7 @@ typedef struct {
|
|||||||
} bsp_key_config_t;
|
} bsp_key_config_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Key state structure for debouncing and event detection
|
* @brief 按键状态结构体,用于防抖和事件检测
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
/* Debounce state */
|
/* Debounce state */
|
||||||
@ -63,12 +63,12 @@ typedef struct {
|
|||||||
} bsp_key_internal_state_t;
|
} bsp_key_internal_state_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Key state table for debouncing and event detection
|
* @brief 按键状态表,用于防抖和事件检测
|
||||||
*/
|
*/
|
||||||
static bsp_key_internal_state_t key_state_table[BSP_KEY_ID_MAX] = {0};
|
static bsp_key_internal_state_t key_state_table[BSP_KEY_ID_MAX] = {0};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get current board button configuration
|
* @brief 获取当前板卡按键配置
|
||||||
*/
|
*/
|
||||||
static const bsp_button_config_t* bsp_key_get_button_config(bsp_key_id_t key_id) {
|
static const bsp_button_config_t* bsp_key_get_button_config(bsp_key_id_t key_id) {
|
||||||
const bsp_board_config_t* board_config = bsp_board_get_config();
|
const bsp_board_config_t* board_config = bsp_board_get_config();
|
||||||
@ -79,9 +79,9 @@ static const bsp_button_config_t* bsp_key_get_button_config(bsp_key_id_t key_id)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Read raw key state (without debounce)
|
* @brief 读取原始按键状态(无防抖)
|
||||||
* @param key_id: Key ID
|
* @param key_id: 按键 ID
|
||||||
* @retval Raw key state
|
* @retval 原始按键状态
|
||||||
*/
|
*/
|
||||||
static bsp_key_state_t bsp_key_read_raw(bsp_key_id_t key_id) {
|
static bsp_key_state_t bsp_key_read_raw(bsp_key_id_t key_id) {
|
||||||
bsp_key_state_t state;
|
bsp_key_state_t state;
|
||||||
@ -107,8 +107,8 @@ static bsp_key_state_t bsp_key_read_raw(bsp_key_id_t key_id) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get current system time in milliseconds
|
* @brief 获取当前系统时间(毫秒)
|
||||||
* @retval Current time in ms
|
* @retval 当前时间(毫秒)
|
||||||
*/
|
*/
|
||||||
static uint32_t bsp_key_get_time_ms(void) {
|
static uint32_t bsp_key_get_time_ms(void) {
|
||||||
/* Use HAL tick function */
|
/* Use HAL tick function */
|
||||||
@ -116,7 +116,7 @@ static uint32_t bsp_key_get_time_ms(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Initialize all keys
|
* @brief 初始化所有按键
|
||||||
*/
|
*/
|
||||||
void bsp_key_init(void) {
|
void bsp_key_init(void) {
|
||||||
uint8_t i;
|
uint8_t i;
|
||||||
@ -162,7 +162,7 @@ void bsp_key_init(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Update key state (call this function periodically, e.g. every 10ms)
|
* @brief 更新按键状态(定期调用此函数,例如每 10ms)
|
||||||
*/
|
*/
|
||||||
void bsp_key_update(void) {
|
void bsp_key_update(void) {
|
||||||
uint8_t i;
|
uint8_t i;
|
||||||
@ -241,9 +241,9 @@ void bsp_key_update(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Read debounced key state
|
* @brief 读取防抖后的按键状态
|
||||||
* @param key_id: Key ID
|
* @param key_id: 按键 ID
|
||||||
* @retval Key state
|
* @retval 按键状态
|
||||||
*/
|
*/
|
||||||
bsp_key_state_t bsp_key_read(bsp_key_id_t key_id) {
|
bsp_key_state_t bsp_key_read(bsp_key_id_t key_id) {
|
||||||
if (key_id < BSP_KEY_ID_MAX) {
|
if (key_id < BSP_KEY_ID_MAX) {
|
||||||
@ -253,27 +253,27 @@ bsp_key_state_t bsp_key_read(bsp_key_id_t key_id) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Check if key is pressed
|
* @brief 检查按键是否按下
|
||||||
* @param key_id: Key ID
|
* @param key_id: 按键 ID
|
||||||
* @retval 1 if pressed, 0 otherwise
|
* @retval 按下返回 1,否则返回 0
|
||||||
*/
|
*/
|
||||||
uint8_t bsp_key_is_pressed(bsp_key_id_t key_id) {
|
uint8_t bsp_key_is_pressed(bsp_key_id_t key_id) {
|
||||||
return (bsp_key_read(key_id) == BSP_KEY_STATE_PRESSED) ? 1 : 0;
|
return (bsp_key_read(key_id) == BSP_KEY_STATE_PRESSED) ? 1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Check if key is released
|
* @brief 检查按键是否释放
|
||||||
* @param key_id: Key ID
|
* @param key_id: 按键 ID
|
||||||
* @retval 1 if released, 0 otherwise
|
* @retval 释放返回 1,否则返回 0
|
||||||
*/
|
*/
|
||||||
uint8_t bsp_key_is_released(bsp_key_id_t key_id) {
|
uint8_t bsp_key_is_released(bsp_key_id_t key_id) {
|
||||||
return (bsp_key_read(key_id) == BSP_KEY_STATE_RELEASED) ? 1 : 0;
|
return (bsp_key_read(key_id) == BSP_KEY_STATE_RELEASED) ? 1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Check for key press event (edge detection)
|
* @brief 检查按键按下事件(边沿检测)
|
||||||
* @param key_id: Key ID
|
* @param key_id: 按键 ID
|
||||||
* @retval 1 if key was pressed, 0 otherwise
|
* @retval 按下事件返回 1,否则返回 0
|
||||||
*/
|
*/
|
||||||
uint8_t bsp_key_get_press_event(bsp_key_id_t key_id) {
|
uint8_t bsp_key_get_press_event(bsp_key_id_t key_id) {
|
||||||
uint8_t event = 0;
|
uint8_t event = 0;
|
||||||
@ -287,9 +287,9 @@ uint8_t bsp_key_get_press_event(bsp_key_id_t key_id) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Check for key release event (edge detection)
|
* @brief 检查按键释放事件(边沿检测)
|
||||||
* @param key_id: Key ID
|
* @param key_id: 按键 ID
|
||||||
* @retval 1 if key was released, 0 otherwise
|
* @retval 释放事件返回 1,否则返回 0
|
||||||
*/
|
*/
|
||||||
uint8_t bsp_key_get_release_event(bsp_key_id_t key_id) {
|
uint8_t bsp_key_get_release_event(bsp_key_id_t key_id) {
|
||||||
uint8_t event = 0;
|
uint8_t event = 0;
|
||||||
@ -303,9 +303,9 @@ uint8_t bsp_key_get_release_event(bsp_key_id_t key_id) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Check for key long pressed event
|
* @brief 检查按键长按事件
|
||||||
* @param key_id: Key ID
|
* @param key_id: 按键 ID
|
||||||
* @retval 1 if key was long pressed, 0 otherwise
|
* @retval 长按事件返回 1,否则返回 0
|
||||||
*/
|
*/
|
||||||
uint8_t bsp_key_get_long_press_event(bsp_key_id_t key_id) {
|
uint8_t bsp_key_get_long_press_event(bsp_key_id_t key_id) {
|
||||||
uint8_t event = 0;
|
uint8_t event = 0;
|
||||||
@ -319,9 +319,9 @@ uint8_t bsp_key_get_long_press_event(bsp_key_id_t key_id) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Check for key repeat event
|
* @brief 检查按键重复事件
|
||||||
* @param key_id: Key ID
|
* @param key_id: 按键 ID
|
||||||
* @retval 1 if key repeat event occurred, 0 otherwise
|
* @retval 重复事件返回 1,否则返回 0
|
||||||
*/
|
*/
|
||||||
uint8_t bsp_key_get_repeat_event(bsp_key_id_t key_id) {
|
uint8_t bsp_key_get_repeat_event(bsp_key_id_t key_id) {
|
||||||
uint8_t event = 0;
|
uint8_t event = 0;
|
||||||
@ -335,9 +335,9 @@ uint8_t bsp_key_get_repeat_event(bsp_key_id_t key_id) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Check for key short pressed event
|
* @brief 检查按键短按事件
|
||||||
* @param key_id: Key ID
|
* @param key_id: 按键 ID
|
||||||
* @retval 1 if key was short pressed, 0 otherwise
|
* @retval 短按事件返回 1,否则返回 0
|
||||||
*/
|
*/
|
||||||
uint8_t bsp_key_get_short_press_event(bsp_key_id_t key_id) {
|
uint8_t bsp_key_get_short_press_event(bsp_key_id_t key_id) {
|
||||||
uint8_t event = 0;
|
uint8_t event = 0;
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
/**
|
/**
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
* @file : bsp_module.c
|
* @file : bsp_module.c
|
||||||
* @brief : Board support package module management source file
|
* @brief : 板级支持包模块管理源文件
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
/* USER CODE END Header */
|
/* USER CODE END Header */
|
||||||
@ -11,13 +11,13 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Module manager instance
|
* @brief 模块管理器实例
|
||||||
*/
|
*/
|
||||||
static bsp_module_manager_t bsp_module_manager;
|
static bsp_module_manager_t bsp_module_manager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Initialize BSP module manager
|
* @brief 初始化 BSP 模块管理器
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_module_manager_init(void) {
|
hal_ret_t bsp_module_manager_init(void) {
|
||||||
/* Clear module manager */
|
/* Clear module manager */
|
||||||
@ -35,9 +35,9 @@ hal_ret_t bsp_module_manager_init(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Register a BSP module
|
* @brief 注册一个 BSP 模块
|
||||||
* @param module: Pointer to module structure
|
* @param module: 指向模块结构体的指针
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_module_register(bsp_module_t* module) {
|
hal_ret_t bsp_module_register(bsp_module_t* module) {
|
||||||
if (module == NULL) {
|
if (module == NULL) {
|
||||||
@ -102,9 +102,9 @@ hal_ret_t bsp_module_register(bsp_module_t* module) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Unregister a BSP module
|
* @brief 注销一个 BSP 模块
|
||||||
* @param module: Pointer to module structure
|
* @param module: 指向模块结构体的指针
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_module_unregister(bsp_module_t* module) {
|
hal_ret_t bsp_module_unregister(bsp_module_t* module) {
|
||||||
if (module == NULL) {
|
if (module == NULL) {
|
||||||
@ -146,10 +146,10 @@ hal_ret_t bsp_module_unregister(bsp_module_t* module) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get a specific BSP module
|
* @brief 获取指定的 BSP 模块
|
||||||
* @param type: Module type
|
* @param type: 模块类型
|
||||||
* @param instance: Module instance
|
* @param instance: 模块实例
|
||||||
* @retval Pointer to module structure, or NULL if not found
|
* @retval 指向模块结构体的指针,未找到返回 NULL
|
||||||
*/
|
*/
|
||||||
bsp_module_t* bsp_module_get(bsp_module_type_t type, uint8_t instance) {
|
bsp_module_t* bsp_module_get(bsp_module_type_t type, uint8_t instance) {
|
||||||
if (type >= BSP_MODULE_TYPE_MAX) {
|
if (type >= BSP_MODULE_TYPE_MAX) {
|
||||||
@ -168,9 +168,9 @@ bsp_module_t* bsp_module_get(bsp_module_type_t type, uint8_t instance) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get all modules of a specific type
|
* @brief 获取指定类型的所有模块
|
||||||
* @param type: Module type
|
* @param type: 模块类型
|
||||||
* @retval Pointer to module list, or NULL if no modules found
|
* @retval 指向模块列表的指针,未找到模块返回 NULL
|
||||||
*/
|
*/
|
||||||
bsp_module_t* bsp_module_get_by_type(bsp_module_type_t type) {
|
bsp_module_t* bsp_module_get_by_type(bsp_module_type_t type) {
|
||||||
if (type >= BSP_MODULE_TYPE_MAX) {
|
if (type >= BSP_MODULE_TYPE_MAX) {
|
||||||
@ -181,9 +181,9 @@ bsp_module_t* bsp_module_get_by_type(bsp_module_type_t type) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get module by name
|
* @brief 通过名称获取模块
|
||||||
* @param name: Module name
|
* @param name: 模块名称
|
||||||
* @retval Pointer to module structure, or NULL if not found
|
* @retval 指向模块结构体的指针,未找到返回 NULL
|
||||||
*/
|
*/
|
||||||
bsp_module_t* bsp_module_get_by_name(const char* name) {
|
bsp_module_t* bsp_module_get_by_name(const char* name) {
|
||||||
if (name == NULL) {
|
if (name == NULL) {
|
||||||
@ -202,9 +202,9 @@ bsp_module_t* bsp_module_get_by_name(const char* name) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Check if all dependencies of a module are satisfied
|
* @brief 检查模块的所有依赖是否满足
|
||||||
* @param module: Pointer to module structure
|
* @param module: 指向模块结构体的指针
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
hal_ret_t bsp_module_check_dependencies(const bsp_module_t* module) {
|
hal_ret_t bsp_module_check_dependencies(const bsp_module_t* module) {
|
||||||
if (module == NULL) {
|
if (module == NULL) {
|
||||||
|
|||||||
@ -2,21 +2,23 @@
|
|||||||
/**
|
/**
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
* @file : stm32f407vet6_board.c
|
* @file : stm32f407vet6_board.c
|
||||||
* @brief : STM32F407VET6 board configuration implementation
|
* @brief : STM32F407VET6 板卡配置实现
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
/* USER CODE END Header */
|
/* USER CODE END Header */
|
||||||
|
|
||||||
#include "bsp_board.h"
|
#include "bsp_board.h"
|
||||||
#include "bsp_config.h"
|
#include "bsp_config.h"
|
||||||
|
#include "bsp_eth.h"
|
||||||
#include "hal_gpio.h"
|
#include "hal_gpio.h"
|
||||||
#include "hal_uart.h"
|
#include "hal_uart.h"
|
||||||
#include "hal_spi.h"
|
#include "hal_spi.h"
|
||||||
|
#include "hal_eth.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Default LED initialization function
|
* @brief 默认 LED 初始化函数
|
||||||
* @param config: LED configuration structure
|
* @param config: LED 配置结构体
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
static hal_ret_t default_led_init(const void* config) {
|
static hal_ret_t default_led_init(const void* config) {
|
||||||
const bsp_led_config_t* led_config = (const bsp_led_config_t*)config;
|
const bsp_led_config_t* led_config = (const bsp_led_config_t*)config;
|
||||||
@ -31,9 +33,9 @@ static hal_ret_t default_led_init(const void* config) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Default button initialization function
|
* @brief 默认按键初始化函数
|
||||||
* @param config: Button configuration structure
|
* @param config: 按键配置结构体
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
static hal_ret_t default_button_init(const void* config) {
|
static hal_ret_t default_button_init(const void* config) {
|
||||||
const bsp_buttons_config_t* buttons_config = (const bsp_buttons_config_t*)config;
|
const bsp_buttons_config_t* buttons_config = (const bsp_buttons_config_t*)config;
|
||||||
@ -59,9 +61,9 @@ static hal_ret_t default_button_init(const void* config) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Default UART initialization function
|
* @brief 默认 UART 初始化函数
|
||||||
* @param config: UART configuration structure
|
* @param config: UART 配置结构体
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
static hal_ret_t default_uart_init(const void* config) {
|
static hal_ret_t default_uart_init(const void* config) {
|
||||||
const bsp_uart_config_t* uart_config = (const bsp_uart_config_t*)config;
|
const bsp_uart_config_t* uart_config = (const bsp_uart_config_t*)config;
|
||||||
@ -76,9 +78,9 @@ static hal_ret_t default_uart_init(const void* config) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Default SPI initialization function
|
* @brief 默认 SPI 初始化函数
|
||||||
* @param config: SPI configuration structure
|
* @param config: SPI 配置结构体
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
static hal_ret_t default_spi_init(const void* config) {
|
static hal_ret_t default_spi_init(const void* config) {
|
||||||
const bsp_spi_config_t* spi_config = (const bsp_spi_config_t*)config;
|
const bsp_spi_config_t* spi_config = (const bsp_spi_config_t*)config;
|
||||||
@ -94,45 +96,48 @@ static hal_ret_t default_spi_init(const void* config) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Default I2C initialization function
|
* @brief 默认 I2C 初始化函数
|
||||||
* @param config: I2C configuration structure
|
* @param config: I2C 配置结构体
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
static hal_ret_t default_i2c_init(const void* config) {
|
static hal_ret_t default_i2c_init(const void* config) {
|
||||||
/* TODO: Implement default I2C initialization */
|
(void)config;
|
||||||
|
/* TODO: 实现默认 I2C 初始化 */
|
||||||
return HAL_RET_OK;
|
return HAL_RET_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Default CAN initialization function
|
* @brief 默认 CAN 初始化函数
|
||||||
* @param config: CAN configuration structure
|
* @param config: CAN 配置结构体
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
static hal_ret_t default_can_init(const void* config) {
|
static hal_ret_t default_can_init(const void* config) {
|
||||||
/* TODO: Implement default CAN initialization */
|
(void)config;
|
||||||
|
/* TODO: 实现默认 CAN 初始化 */
|
||||||
return HAL_RET_OK;
|
return HAL_RET_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Default ADC initialization function
|
* @brief 默认 ADC 初始化函数
|
||||||
* @param config: ADC configuration structure
|
* @param config: ADC 配置结构体
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
static hal_ret_t default_adc_init(const void* config) {
|
static hal_ret_t default_adc_init(const void* config) {
|
||||||
/* TODO: Implement default ADC initialization */
|
(void)config;
|
||||||
|
/* TODO: 实现默认 ADC 初始化 */
|
||||||
return HAL_RET_OK;
|
return HAL_RET_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Default W25QXX initialization function
|
* @brief 默认 W25QXX 初始化函数
|
||||||
* @param config: W25QXX configuration structure
|
* @param config: W25QXX 配置结构体
|
||||||
* @retval HAL status code
|
* @retval HAL 状态码
|
||||||
*/
|
*/
|
||||||
static hal_ret_t default_w25qxx_init(const void* config) {
|
static hal_ret_t default_w25qxx_init(const void* config) {
|
||||||
const bsp_w25qxx_config_t* w25qxx_config = (const bsp_w25qxx_config_t*)config;
|
const bsp_w25qxx_config_t* w25qxx_config = (const bsp_w25qxx_config_t*)config;
|
||||||
hal_ret_t status = HAL_RET_OK;
|
hal_ret_t status = HAL_RET_OK;
|
||||||
|
|
||||||
/* Initialize CS pin */
|
/* 初始化 CS 引脚 */
|
||||||
hal_gpio_config_t gpio_config = {
|
hal_gpio_config_t gpio_config = {
|
||||||
.port = w25qxx_config->cs_port,
|
.port = w25qxx_config->cs_port,
|
||||||
.pin = w25qxx_config->cs_pin,
|
.pin = w25qxx_config->cs_pin,
|
||||||
@ -145,21 +150,31 @@ static hal_ret_t default_w25qxx_init(const void* config) {
|
|||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Deselect chip initially */
|
/* 初始时取消选择芯片 */
|
||||||
status = hal_gpio_write_pin(w25qxx_config->cs_port, w25qxx_config->cs_pin, HAL_GPIO_PIN_SET);
|
status = hal_gpio_write_pin(w25qxx_config->cs_port, w25qxx_config->cs_pin, HAL_GPIO_PIN_SET);
|
||||||
if (status != HAL_RET_OK) {
|
if (status != HAL_RET_OK) {
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* SPI instance is now just an index, actual SPI initialization is handled separately */
|
/* SPI 实例现在只是一个索引,实际的 SPI 初始化在别处处理 */
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief STM32F407VET6 board button configurations
|
* @brief 默认以太网初始化函数
|
||||||
|
* @param config: 以太网配置结构体
|
||||||
|
* @retval HAL 状态码
|
||||||
|
*/
|
||||||
|
static hal_ret_t default_eth_init(const void* config) {
|
||||||
|
const bsp_eth_config_t* eth_config = (const bsp_eth_config_t*)config;
|
||||||
|
return bsp_eth_init(eth_config);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief STM32F407VET6 板卡按键配置
|
||||||
*/
|
*/
|
||||||
static const bsp_button_config_t stm32f407vet6_buttons[] = {
|
static const bsp_button_config_t stm32f407vet6_buttons[] = {
|
||||||
/* KEY0 - PE4, active low */
|
/* KEY0 - PE4, 低电平有效 */
|
||||||
{
|
{
|
||||||
.port = HAL_GPIO_PORT_E,
|
.port = HAL_GPIO_PORT_E,
|
||||||
.pin = HAL_GPIO_PIN_4,
|
.pin = HAL_GPIO_PIN_4,
|
||||||
@ -168,7 +183,7 @@ static const bsp_button_config_t stm32f407vet6_buttons[] = {
|
|||||||
.pull = HAL_GPIO_PULL_UP,
|
.pull = HAL_GPIO_PULL_UP,
|
||||||
.active_high = 0
|
.active_high = 0
|
||||||
},
|
},
|
||||||
/* KEY1 - PE3, active low */
|
/* KEY1 - PE3, 低电平有效 */
|
||||||
{
|
{
|
||||||
.port = HAL_GPIO_PORT_E,
|
.port = HAL_GPIO_PORT_E,
|
||||||
.pin = HAL_GPIO_PIN_3,
|
.pin = HAL_GPIO_PIN_3,
|
||||||
@ -177,7 +192,7 @@ static const bsp_button_config_t stm32f407vet6_buttons[] = {
|
|||||||
.pull = HAL_GPIO_PULL_UP,
|
.pull = HAL_GPIO_PULL_UP,
|
||||||
.active_high = 0
|
.active_high = 0
|
||||||
},
|
},
|
||||||
/* WKUP - PA0, active high */
|
/* WKUP - PA0, 高电平有效 */
|
||||||
{
|
{
|
||||||
.port = HAL_GPIO_PORT_A,
|
.port = HAL_GPIO_PORT_A,
|
||||||
.pin = HAL_GPIO_PIN_0,
|
.pin = HAL_GPIO_PIN_0,
|
||||||
@ -189,7 +204,7 @@ static const bsp_button_config_t stm32f407vet6_buttons[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief STM32F407VET6 buttons configuration
|
* @brief STM32F407VET6 按键配置
|
||||||
*/
|
*/
|
||||||
static const bsp_buttons_config_t stm32f407vet6_buttons_config = {
|
static const bsp_buttons_config_t stm32f407vet6_buttons_config = {
|
||||||
.enable = 1,
|
.enable = 1,
|
||||||
@ -198,7 +213,7 @@ static const bsp_buttons_config_t stm32f407vet6_buttons_config = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief STM32F407VET6 board UART configurations
|
* @brief STM32F407VET6 板卡 UART 配置
|
||||||
*/
|
*/
|
||||||
static const bsp_uart_config_t stm32f407vet6_uarts[] = {
|
static const bsp_uart_config_t stm32f407vet6_uarts[] = {
|
||||||
/* USART1 - PA9(TX), PA10(RX) */
|
/* USART1 - PA9(TX), PA10(RX) */
|
||||||
@ -217,7 +232,7 @@ static const bsp_uart_config_t stm32f407vet6_uarts[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief STM32F407VET6 board SPI configurations
|
* @brief STM32F407VET6 板卡 SPI 配置
|
||||||
*/
|
*/
|
||||||
static const bsp_spi_config_t stm32f407vet6_spis[] = {
|
static const bsp_spi_config_t stm32f407vet6_spis[] = {
|
||||||
/* SPI1 - PA5(SCK), PA6(MISO), PA7(MOSI) */
|
/* SPI1 - PA5(SCK), PA6(MISO), PA7(MOSI) */
|
||||||
@ -239,12 +254,12 @@ static const bsp_spi_config_t stm32f407vet6_spis[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief STM32F407VET6 board I2C configurations
|
* @brief STM32F407VET6 板卡 I2C 配置
|
||||||
*/
|
*/
|
||||||
static const bsp_i2c_config_t stm32f407vet6_i2cs[] = {
|
static const bsp_i2c_config_t stm32f407vet6_i2cs[] = {
|
||||||
/* I2C1 - PB6(SCL), PB7(SDA) */
|
/* I2C1 - PB6(SCL), PB7(SDA) */
|
||||||
{
|
{
|
||||||
.enable = 0, /* Disabled by default */
|
.enable = 0, /* 默认禁用 */
|
||||||
.instance = HAL_I2C_INSTANCE_1,
|
.instance = HAL_I2C_INSTANCE_1,
|
||||||
.speed = HAL_I2C_SPEED_STANDARD,
|
.speed = HAL_I2C_SPEED_STANDARD,
|
||||||
.address_mode = HAL_I2C_ADDRESS_7BIT,
|
.address_mode = HAL_I2C_ADDRESS_7BIT,
|
||||||
@ -258,12 +273,12 @@ static const bsp_i2c_config_t stm32f407vet6_i2cs[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief STM32F407VET6 board CAN configurations
|
* @brief STM32F407VET6 板卡 CAN 配置
|
||||||
*/
|
*/
|
||||||
static const bsp_can_config_t stm32f407vet6_cans[] = {
|
static const bsp_can_config_t stm32f407vet6_cans[] = {
|
||||||
/* CAN1 - PA11(RX), PA12(TX) */
|
/* CAN1 - PA11(RX), PA12(TX) */
|
||||||
{
|
{
|
||||||
.enable = 0, /* Disabled by default */
|
.enable = 0, /* 默认禁用 */
|
||||||
.instance = HAL_CAN_INSTANCE_1,
|
.instance = HAL_CAN_INSTANCE_1,
|
||||||
.mode = HAL_CAN_MODE_NORMAL,
|
.mode = HAL_CAN_MODE_NORMAL,
|
||||||
.prescaler = 6, /* 168MHz / 6 = 28MHz */
|
.prescaler = 6, /* 168MHz / 6 = 28MHz */
|
||||||
@ -278,12 +293,12 @@ static const bsp_can_config_t stm32f407vet6_cans[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief STM32F407VET6 board ADC channel configurations
|
* @brief STM32F407VET6 板卡 ADC 通道配置
|
||||||
*/
|
*/
|
||||||
static const bsp_adc_channel_config_t stm32f407vet6_adc_channels[] = {
|
static const bsp_adc_channel_config_t stm32f407vet6_adc_channels[] = {
|
||||||
/* ADC1 Channel 0 - PA0 */
|
/* ADC1 Channel 0 - PA0 */
|
||||||
{
|
{
|
||||||
.enable = 0, /* Disabled by default */
|
.enable = 0, /* 默认禁用 */
|
||||||
.channel = HAL_ADC_CHANNEL_0,
|
.channel = HAL_ADC_CHANNEL_0,
|
||||||
.sampletime = HAL_ADC_SAMPLETIME_56CYCLES,
|
.sampletime = HAL_ADC_SAMPLETIME_56CYCLES,
|
||||||
.rank = 1
|
.rank = 1
|
||||||
@ -291,12 +306,12 @@ static const bsp_adc_channel_config_t stm32f407vet6_adc_channels[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief STM32F407VET6 board ADC configurations
|
* @brief STM32F407VET6 板卡 ADC 配置
|
||||||
*/
|
*/
|
||||||
static const bsp_adc_config_t stm32f407vet6_adcs[] = {
|
static const bsp_adc_config_t stm32f407vet6_adcs[] = {
|
||||||
/* ADC1 */
|
/* ADC1 */
|
||||||
{
|
{
|
||||||
.enable = 0, /* Disabled by default */
|
.enable = 0, /* 默认禁用 */
|
||||||
.instance = HAL_ADC_INSTANCE_1,
|
.instance = HAL_ADC_INSTANCE_1,
|
||||||
.resolution = HAL_ADC_RESOLUTION_12B,
|
.resolution = HAL_ADC_RESOLUTION_12B,
|
||||||
.scan_conversion_mode = 0,
|
.scan_conversion_mode = 0,
|
||||||
@ -307,7 +322,7 @@ static const bsp_adc_config_t stm32f407vet6_adcs[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief STM32F407VET6 board LED configurations
|
* @brief STM32F407VET6 板卡 LED 配置
|
||||||
*/
|
*/
|
||||||
static const bsp_led_config_t stm32f407vet6_leds[] = {
|
static const bsp_led_config_t stm32f407vet6_leds[] = {
|
||||||
/* LED0 - PA6 */
|
/* LED0 - PA6 */
|
||||||
@ -331,19 +346,19 @@ static const bsp_led_config_t stm32f407vet6_leds[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief STM32F407VET6 board configuration
|
* @brief STM32F407VET6 板卡配置
|
||||||
*/
|
*/
|
||||||
const bsp_board_config_t stm32f407vet6_board_config = {
|
const bsp_board_config_t stm32f407vet6_board_config = {
|
||||||
.version = BSP_CONFIG_VERSION,
|
.version = BSP_CONFIG_VERSION,
|
||||||
.name = "STM32F407VET6",
|
.name = "STM32F407VET6",
|
||||||
.description = "STM32F407VET6 Development Board",
|
.description = "STM32F407VET6 开发板",
|
||||||
.id = {
|
.id = {
|
||||||
.vendor_id = 0x0483, /* STMicroelectronics */
|
.vendor_id = 0x0483, /* STMicroelectronics */
|
||||||
.product_id = 0x374B, /* STM32F4 Series */
|
.product_id = 0x374B, /* STM32F4 系列 */
|
||||||
.serial_number = 0x00000001 /* Default serial number */
|
.serial_number = 0x00000001 /* 默认序列号 */
|
||||||
},
|
},
|
||||||
|
|
||||||
/* Board features */
|
/* 板卡特性 */
|
||||||
.features = (
|
.features = (
|
||||||
BSP_BOARD_FEATURE_LED |
|
BSP_BOARD_FEATURE_LED |
|
||||||
BSP_BOARD_FEATURE_BUTTON |
|
BSP_BOARD_FEATURE_BUTTON |
|
||||||
@ -352,21 +367,22 @@ const bsp_board_config_t stm32f407vet6_board_config = {
|
|||||||
BSP_BOARD_FEATURE_I2C |
|
BSP_BOARD_FEATURE_I2C |
|
||||||
BSP_BOARD_FEATURE_CAN |
|
BSP_BOARD_FEATURE_CAN |
|
||||||
BSP_BOARD_FEATURE_ADC |
|
BSP_BOARD_FEATURE_ADC |
|
||||||
BSP_BOARD_FEATURE_W25QXX
|
BSP_BOARD_FEATURE_W25QXX |
|
||||||
|
BSP_BOARD_FEATURE_ETH
|
||||||
),
|
),
|
||||||
|
|
||||||
/* Hardware information */
|
/* 硬件信息 */
|
||||||
.hw_info = {
|
.hw_info = {
|
||||||
.clock_speed = 168000000, /* 168 MHz */
|
.clock_speed = 168000000, /* 168 MHz */
|
||||||
.flash_size = 512 * 1024, /* 512 KB */
|
.flash_size = 512 * 1024, /* 512 KB */
|
||||||
.ram_size = 192 * 1024, /* 192 KB */
|
.ram_size = 192 * 1024, /* 192 KB */
|
||||||
.eeprom_size = 0, /* No internal EEPROM */
|
.eeprom_size = 0, /* 无内部 EEPROM */
|
||||||
.sram_size = 64 * 1024, /* 64 KB SRAM */
|
.sram_size = 64 * 1024, /* 64 KB SRAM */
|
||||||
.cpu_core = 0x0F, /* Cortex-M4 */
|
.cpu_core = 0x0F, /* Cortex-M4 */
|
||||||
.cpu_bits = 32 /* 32-bit CPU */
|
.cpu_bits = 32 /* 32位 CPU */
|
||||||
},
|
},
|
||||||
|
|
||||||
/* Peripheral configurations */
|
/* 外设配置 */
|
||||||
.leds = {
|
.leds = {
|
||||||
.enable = 1,
|
.enable = 1,
|
||||||
.count = sizeof(stm32f407vet6_leds) / sizeof(bsp_led_config_t),
|
.count = sizeof(stm32f407vet6_leds) / sizeof(bsp_led_config_t),
|
||||||
@ -377,33 +393,45 @@ const bsp_board_config_t stm32f407vet6_board_config = {
|
|||||||
.enable = 1,
|
.enable = 1,
|
||||||
.cs_port = HAL_GPIO_PORT_B,
|
.cs_port = HAL_GPIO_PORT_B,
|
||||||
.cs_pin = HAL_GPIO_PIN_0,
|
.cs_pin = HAL_GPIO_PIN_0,
|
||||||
.spi_instance = 0 /* Use SPI instance 0 */
|
.spi_instance = 0 /* 使用 SPI 实例 0 */
|
||||||
|
},
|
||||||
|
.eth = {
|
||||||
|
.enable = 1,
|
||||||
|
.instance = HAL_ETH_INSTANCE_1,
|
||||||
|
.mode = HAL_ETH_MODE_FULLDUPLEX,
|
||||||
|
.speed = HAL_ETH_SPEED_100MBPS,
|
||||||
|
.phy_addr = LAN8720_PHY_ADDR,
|
||||||
|
.mac_addr = {
|
||||||
|
.byte = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55}
|
||||||
|
},
|
||||||
|
.auto_negotiation = 1,
|
||||||
|
.interrupt_enable = 1
|
||||||
},
|
},
|
||||||
|
|
||||||
/* Peripheral arrays */
|
/* 外设数组 */
|
||||||
.periphs = {
|
.periphs = {
|
||||||
/* UART configurations */
|
/* UART 配置 */
|
||||||
.uart_count = 1,
|
.uart_count = 1,
|
||||||
.uarts = stm32f407vet6_uarts,
|
.uarts = stm32f407vet6_uarts,
|
||||||
|
|
||||||
/* SPI configurations */
|
/* SPI 配置 */
|
||||||
.spi_count = 1,
|
.spi_count = 1,
|
||||||
.spis = stm32f407vet6_spis,
|
.spis = stm32f407vet6_spis,
|
||||||
|
|
||||||
/* I2C configurations */
|
/* I2C 配置 */
|
||||||
.i2c_count = 1,
|
.i2c_count = 1,
|
||||||
.i2cs = stm32f407vet6_i2cs,
|
.i2cs = stm32f407vet6_i2cs,
|
||||||
|
|
||||||
/* CAN configurations */
|
/* CAN 配置 */
|
||||||
.can_count = 1,
|
.can_count = 1,
|
||||||
.cans = stm32f407vet6_cans,
|
.cans = stm32f407vet6_cans,
|
||||||
|
|
||||||
/* ADC configurations */
|
/* ADC 配置 */
|
||||||
.adc_count = 1,
|
.adc_count = 1,
|
||||||
.adcs = stm32f407vet6_adcs
|
.adcs = stm32f407vet6_adcs
|
||||||
},
|
},
|
||||||
|
|
||||||
/* Initialization function pointers */
|
/* 初始化函数指针 */
|
||||||
.init_funcs = {
|
.init_funcs = {
|
||||||
.led_init = default_led_init,
|
.led_init = default_led_init,
|
||||||
.button_init = default_button_init,
|
.button_init = default_button_init,
|
||||||
@ -412,31 +440,32 @@ const bsp_board_config_t stm32f407vet6_board_config = {
|
|||||||
.i2c_init = default_i2c_init,
|
.i2c_init = default_i2c_init,
|
||||||
.can_init = default_can_init,
|
.can_init = default_can_init,
|
||||||
.adc_init = default_adc_init,
|
.adc_init = default_adc_init,
|
||||||
.w25qxx_init = default_w25qxx_init
|
.w25qxx_init = default_w25qxx_init,
|
||||||
|
.eth_init = default_eth_init
|
||||||
},
|
},
|
||||||
|
|
||||||
/* Additional board-specific configuration */
|
/* 额外的板卡特定配置 */
|
||||||
.custom_config = NULL,
|
.custom_config = NULL,
|
||||||
.custom_config_size = 0,
|
.custom_config_size = 0,
|
||||||
|
|
||||||
/* Board revision information */
|
/* 板卡版本信息 */
|
||||||
.major_rev = 1,
|
.major_rev = 1,
|
||||||
.minor_rev = 0,
|
.minor_rev = 0,
|
||||||
.patch_rev = 0,
|
.patch_rev = 0,
|
||||||
.revision_desc = "Original release"
|
.revision_desc = "初始版本"
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get board name
|
* @brief 获取板卡名称
|
||||||
* @retval Board name string
|
* @retval 板卡名称字符串
|
||||||
*/
|
*/
|
||||||
const char* bsp_board_get_name(void) {
|
const char* bsp_board_get_name(void) {
|
||||||
return stm32f407vet6_board_config.name;
|
return stm32f407vet6_board_config.name;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get board configuration
|
* @brief 获取板卡配置
|
||||||
* @retval Pointer to board configuration structure
|
* @retval 指向板卡配置结构体的指针
|
||||||
*/
|
*/
|
||||||
const bsp_board_config_t* bsp_board_get_config(void) {
|
const bsp_board_config_t* bsp_board_get_config(void) {
|
||||||
return &stm32f407vet6_board_config;
|
return &stm32f407vet6_board_config;
|
||||||
|
|||||||
@ -1,83 +0,0 @@
|
|||||||
# This is the CMakeCache file.
|
|
||||||
# For build in directory: c:/Users/ZHIZHANKEJI/Downloads/stm32f407vet6_cmake-main/stm32f407vet6_cmake-main/stm32f407vet6_cmake
|
|
||||||
# It was generated by CMake: C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Lib/site-packages/cmake/data/bin/cmake.exe
|
|
||||||
# You can edit this file to change values found and used by cmake.
|
|
||||||
# If you do not want to change any of the values, simply exit the editor.
|
|
||||||
# If you do want to change a value, simply edit, save, and exit the editor.
|
|
||||||
# The syntax for the file is as follows:
|
|
||||||
# KEY:TYPE=VALUE
|
|
||||||
# KEY is the name of a variable in the cache.
|
|
||||||
# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
|
|
||||||
# VALUE is the current value for the KEY.
|
|
||||||
|
|
||||||
########################
|
|
||||||
# EXTERNAL cache entries
|
|
||||||
########################
|
|
||||||
|
|
||||||
//Value Computed by CMake.
|
|
||||||
CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=C:/Users/ZHIZHANKEJI/Downloads/stm32f407vet6_cmake-main/stm32f407vet6_cmake-main/stm32f407vet6_cmake/CMakeFiles/pkgRedirects
|
|
||||||
|
|
||||||
//Program used to build from makefiles.
|
|
||||||
CMAKE_MAKE_PROGRAM:STRING=nmake
|
|
||||||
|
|
||||||
//Value Computed by CMake
|
|
||||||
CMAKE_PROJECT_DESCRIPTION:STATIC=
|
|
||||||
|
|
||||||
//Value Computed by CMake
|
|
||||||
CMAKE_PROJECT_HOMEPAGE_URL:STATIC=
|
|
||||||
|
|
||||||
//Value Computed by CMake
|
|
||||||
CMAKE_PROJECT_NAME:STATIC=stm32f407vet6_cmake
|
|
||||||
|
|
||||||
//Value Computed by CMake
|
|
||||||
stm32f407vet6_cmake_BINARY_DIR:STATIC=C:/Users/ZHIZHANKEJI/Downloads/stm32f407vet6_cmake-main/stm32f407vet6_cmake-main/stm32f407vet6_cmake
|
|
||||||
|
|
||||||
//Value Computed by CMake
|
|
||||||
stm32f407vet6_cmake_IS_TOP_LEVEL:STATIC=ON
|
|
||||||
|
|
||||||
//Value Computed by CMake
|
|
||||||
stm32f407vet6_cmake_SOURCE_DIR:STATIC=C:/Users/ZHIZHANKEJI/Downloads/stm32f407vet6_cmake-main/stm32f407vet6_cmake-main/stm32f407vet6_cmake
|
|
||||||
|
|
||||||
|
|
||||||
########################
|
|
||||||
# INTERNAL cache entries
|
|
||||||
########################
|
|
||||||
|
|
||||||
//This is the directory where this CMakeCache.txt was created
|
|
||||||
CMAKE_CACHEFILE_DIR:INTERNAL=c:/Users/ZHIZHANKEJI/Downloads/stm32f407vet6_cmake-main/stm32f407vet6_cmake-main/stm32f407vet6_cmake
|
|
||||||
//Major version of cmake used to create the current loaded cache
|
|
||||||
CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
|
|
||||||
//Minor version of cmake used to create the current loaded cache
|
|
||||||
CMAKE_CACHE_MINOR_VERSION:INTERNAL=31
|
|
||||||
//Patch version of cmake used to create the current loaded cache
|
|
||||||
CMAKE_CACHE_PATCH_VERSION:INTERNAL=2
|
|
||||||
//Path to CMake executable.
|
|
||||||
CMAKE_COMMAND:INTERNAL=C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Lib/site-packages/cmake/data/bin/cmake.exe
|
|
||||||
//Path to cpack program executable.
|
|
||||||
CMAKE_CPACK_COMMAND:INTERNAL=C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Lib/site-packages/cmake/data/bin/cpack.exe
|
|
||||||
//Path to ctest program executable.
|
|
||||||
CMAKE_CTEST_COMMAND:INTERNAL=C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Lib/site-packages/cmake/data/bin/ctest.exe
|
|
||||||
//Path to cache edit program executable.
|
|
||||||
CMAKE_EDIT_COMMAND:INTERNAL=C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Lib/site-packages/cmake/data/bin/cmake-gui.exe
|
|
||||||
//Name of external makefile project generator.
|
|
||||||
CMAKE_EXTRA_GENERATOR:INTERNAL=
|
|
||||||
//Name of generator.
|
|
||||||
CMAKE_GENERATOR:INTERNAL=NMake Makefiles
|
|
||||||
//Generator instance identifier.
|
|
||||||
CMAKE_GENERATOR_INSTANCE:INTERNAL=
|
|
||||||
//Name of generator platform.
|
|
||||||
CMAKE_GENERATOR_PLATFORM:INTERNAL=
|
|
||||||
//Name of generator toolset.
|
|
||||||
CMAKE_GENERATOR_TOOLSET:INTERNAL=
|
|
||||||
//Source directory with the top level CMakeLists.txt file for this
|
|
||||||
// project
|
|
||||||
CMAKE_HOME_DIRECTORY:INTERNAL=C:/Users/ZHIZHANKEJI/Downloads/stm32f407vet6_cmake-main/stm32f407vet6_cmake-main/stm32f407vet6_cmake
|
|
||||||
//ADVANCED property for variable: CMAKE_MAKE_PROGRAM
|
|
||||||
CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1
|
|
||||||
//number of local generators
|
|
||||||
CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1
|
|
||||||
//Platform information initialized
|
|
||||||
CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
|
|
||||||
//Path to CMake installation.
|
|
||||||
CMAKE_ROOT:INTERNAL=C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Lib/site-packages/cmake/data/share/cmake-3.31
|
|
||||||
|
|
||||||
@ -1,22 +0,0 @@
|
|||||||
set(CMAKE_ASM_COMPILER "C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/arm-none-eabi-gcc.exe")
|
|
||||||
set(CMAKE_ASM_COMPILER_ARG1 "")
|
|
||||||
set(CMAKE_AR "C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/arm-none-eabi-ar.exe")
|
|
||||||
set(CMAKE_ASM_COMPILER_AR "C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/arm-none-eabi-gcc-ar.exe")
|
|
||||||
set(CMAKE_RANLIB "C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/arm-none-eabi-ranlib.exe")
|
|
||||||
set(CMAKE_ASM_COMPILER_RANLIB "C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/arm-none-eabi-gcc-ranlib.exe")
|
|
||||||
set(CMAKE_LINKER "C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/arm-none-eabi-g++.exe")
|
|
||||||
set(CMAKE_MT "")
|
|
||||||
set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND")
|
|
||||||
set(CMAKE_ASM_COMPILER_LOADED 1)
|
|
||||||
set(CMAKE_ASM_COMPILER_ID "GNU")
|
|
||||||
set(CMAKE_ASM_COMPILER_VERSION "")
|
|
||||||
set(CMAKE_ASM_COMPILER_ENV_VAR "ASM")
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
set(CMAKE_ASM_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
|
|
||||||
set(CMAKE_ASM_LINKER_PREFERENCE 0)
|
|
||||||
set(CMAKE_ASM_LINKER_DEPFILE_SUPPORTED )
|
|
||||||
|
|
||||||
|
|
||||||
@ -1,74 +0,0 @@
|
|||||||
set(CMAKE_C_COMPILER "C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/arm-none-eabi-gcc.exe")
|
|
||||||
set(CMAKE_C_COMPILER_ARG1 "")
|
|
||||||
set(CMAKE_C_COMPILER_ID "GNU")
|
|
||||||
set(CMAKE_C_COMPILER_VERSION "13.3.1")
|
|
||||||
set(CMAKE_C_COMPILER_VERSION_INTERNAL "")
|
|
||||||
set(CMAKE_C_COMPILER_WRAPPER "")
|
|
||||||
set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "17")
|
|
||||||
set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON")
|
|
||||||
set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17;c_std_23")
|
|
||||||
set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes")
|
|
||||||
set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros")
|
|
||||||
set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert")
|
|
||||||
set(CMAKE_C17_COMPILE_FEATURES "c_std_17")
|
|
||||||
set(CMAKE_C23_COMPILE_FEATURES "c_std_23")
|
|
||||||
|
|
||||||
set(CMAKE_C_PLATFORM_ID "")
|
|
||||||
set(CMAKE_C_SIMULATE_ID "")
|
|
||||||
set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU")
|
|
||||||
set(CMAKE_C_SIMULATE_VERSION "")
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
set(CMAKE_AR "C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/arm-none-eabi-ar.exe")
|
|
||||||
set(CMAKE_C_COMPILER_AR "C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/arm-none-eabi-gcc-ar.exe")
|
|
||||||
set(CMAKE_RANLIB "C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/arm-none-eabi-ranlib.exe")
|
|
||||||
set(CMAKE_C_COMPILER_RANLIB "C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/arm-none-eabi-gcc-ranlib.exe")
|
|
||||||
set(CMAKE_LINKER "C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/arm-none-eabi-g++.exe")
|
|
||||||
set(CMAKE_MT "")
|
|
||||||
set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND")
|
|
||||||
set(CMAKE_COMPILER_IS_GNUCC 1)
|
|
||||||
set(CMAKE_C_COMPILER_LOADED 1)
|
|
||||||
set(CMAKE_C_COMPILER_WORKS TRUE)
|
|
||||||
set(CMAKE_C_ABI_COMPILED TRUE)
|
|
||||||
|
|
||||||
set(CMAKE_C_COMPILER_ENV_VAR "CC")
|
|
||||||
|
|
||||||
set(CMAKE_C_COMPILER_ID_RUN 1)
|
|
||||||
set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
|
|
||||||
set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
|
|
||||||
set(CMAKE_C_LINKER_PREFERENCE 10)
|
|
||||||
set(CMAKE_C_LINKER_DEPFILE_SUPPORTED TRUE)
|
|
||||||
|
|
||||||
# Save compiler ABI information.
|
|
||||||
set(CMAKE_C_SIZEOF_DATA_PTR "4")
|
|
||||||
set(CMAKE_C_COMPILER_ABI "ELF")
|
|
||||||
set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN")
|
|
||||||
set(CMAKE_C_LIBRARY_ARCHITECTURE "")
|
|
||||||
|
|
||||||
if(CMAKE_C_SIZEOF_DATA_PTR)
|
|
||||||
set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(CMAKE_C_COMPILER_ABI)
|
|
||||||
set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(CMAKE_C_LIBRARY_ARCHITECTURE)
|
|
||||||
set(CMAKE_LIBRARY_ARCHITECTURE "")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "")
|
|
||||||
if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)
|
|
||||||
set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/arm-none-eabi/13.3.1/include;C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/arm-none-eabi/13.3.1/include-fixed;C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/arm-none-eabi/include")
|
|
||||||
set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "")
|
|
||||||
set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "")
|
|
||||||
set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
|
|
||||||
@ -1,85 +0,0 @@
|
|||||||
set(CMAKE_CXX_COMPILER "C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/arm-none-eabi-g++.exe")
|
|
||||||
set(CMAKE_CXX_COMPILER_ARG1 "")
|
|
||||||
set(CMAKE_CXX_COMPILER_ID "GNU")
|
|
||||||
set(CMAKE_CXX_COMPILER_VERSION "13.3.1")
|
|
||||||
set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "")
|
|
||||||
set(CMAKE_CXX_COMPILER_WRAPPER "")
|
|
||||||
set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17")
|
|
||||||
set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON")
|
|
||||||
set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23")
|
|
||||||
set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters")
|
|
||||||
set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates")
|
|
||||||
set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")
|
|
||||||
set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17")
|
|
||||||
set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20")
|
|
||||||
set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23")
|
|
||||||
|
|
||||||
set(CMAKE_CXX_PLATFORM_ID "")
|
|
||||||
set(CMAKE_CXX_SIMULATE_ID "")
|
|
||||||
set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU")
|
|
||||||
set(CMAKE_CXX_SIMULATE_VERSION "")
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
set(CMAKE_AR "C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/arm-none-eabi-ar.exe")
|
|
||||||
set(CMAKE_CXX_COMPILER_AR "C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/arm-none-eabi-gcc-ar.exe")
|
|
||||||
set(CMAKE_RANLIB "C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/arm-none-eabi-ranlib.exe")
|
|
||||||
set(CMAKE_CXX_COMPILER_RANLIB "C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/arm-none-eabi-gcc-ranlib.exe")
|
|
||||||
set(CMAKE_LINKER "C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/arm-none-eabi-g++.exe")
|
|
||||||
set(CMAKE_MT "")
|
|
||||||
set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND")
|
|
||||||
set(CMAKE_COMPILER_IS_GNUCXX 1)
|
|
||||||
set(CMAKE_CXX_COMPILER_LOADED 1)
|
|
||||||
set(CMAKE_CXX_COMPILER_WORKS TRUE)
|
|
||||||
set(CMAKE_CXX_ABI_COMPILED TRUE)
|
|
||||||
|
|
||||||
set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
|
|
||||||
|
|
||||||
set(CMAKE_CXX_COMPILER_ID_RUN 1)
|
|
||||||
set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm;ccm;cxxm;c++m)
|
|
||||||
set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
|
|
||||||
|
|
||||||
foreach (lang C OBJC OBJCXX)
|
|
||||||
if (CMAKE_${lang}_COMPILER_ID_RUN)
|
|
||||||
foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS)
|
|
||||||
list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension})
|
|
||||||
endforeach()
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
set(CMAKE_CXX_LINKER_PREFERENCE 30)
|
|
||||||
set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
|
|
||||||
set(CMAKE_CXX_LINKER_DEPFILE_SUPPORTED TRUE)
|
|
||||||
|
|
||||||
# Save compiler ABI information.
|
|
||||||
set(CMAKE_CXX_SIZEOF_DATA_PTR "4")
|
|
||||||
set(CMAKE_CXX_COMPILER_ABI "ELF")
|
|
||||||
set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN")
|
|
||||||
set(CMAKE_CXX_LIBRARY_ARCHITECTURE "")
|
|
||||||
|
|
||||||
if(CMAKE_CXX_SIZEOF_DATA_PTR)
|
|
||||||
set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(CMAKE_CXX_COMPILER_ABI)
|
|
||||||
set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
|
|
||||||
set(CMAKE_LIBRARY_ARCHITECTURE "")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "")
|
|
||||||
if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX)
|
|
||||||
set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/arm-none-eabi/include/c++/13.3.1;C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/arm-none-eabi/include/c++/13.3.1/arm-none-eabi/thumb/v7e-m+fp/hard;C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/arm-none-eabi/include/c++/13.3.1/backward;C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/arm-none-eabi/13.3.1/include;C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/arm-none-eabi/13.3.1/include-fixed;C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/arm-none-eabi/include")
|
|
||||||
set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "")
|
|
||||||
set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "")
|
|
||||||
set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
|
|
||||||
Binary file not shown.
Binary file not shown.
@ -1,15 +0,0 @@
|
|||||||
set(CMAKE_HOST_SYSTEM "Windows-10.0.26100")
|
|
||||||
set(CMAKE_HOST_SYSTEM_NAME "Windows")
|
|
||||||
set(CMAKE_HOST_SYSTEM_VERSION "10.0.26100")
|
|
||||||
set(CMAKE_HOST_SYSTEM_PROCESSOR "")
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
set(CMAKE_SYSTEM "Generic")
|
|
||||||
set(CMAKE_SYSTEM_NAME "Generic")
|
|
||||||
set(CMAKE_SYSTEM_VERSION "")
|
|
||||||
set(CMAKE_SYSTEM_PROCESSOR "arm")
|
|
||||||
|
|
||||||
set(CMAKE_CROSSCOMPILING "TRUE")
|
|
||||||
|
|
||||||
set(CMAKE_SYSTEM_LOADED 1)
|
|
||||||
@ -1,880 +0,0 @@
|
|||||||
#ifdef __cplusplus
|
|
||||||
# error "A C++ compiler has been selected for C."
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__18CXX)
|
|
||||||
# define ID_VOID_MAIN
|
|
||||||
#endif
|
|
||||||
#if defined(__CLASSIC_C__)
|
|
||||||
/* cv-qualifiers did not exist in K&R C */
|
|
||||||
# define const
|
|
||||||
# define volatile
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(__has_include)
|
|
||||||
/* If the compiler does not have __has_include, pretend the answer is
|
|
||||||
always no. */
|
|
||||||
# define __has_include(x) 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* Version number components: V=Version, R=Revision, P=Patch
|
|
||||||
Version date components: YYYY=Year, MM=Month, DD=Day */
|
|
||||||
|
|
||||||
#if defined(__INTEL_COMPILER) || defined(__ICC)
|
|
||||||
# define COMPILER_ID "Intel"
|
|
||||||
# if defined(_MSC_VER)
|
|
||||||
# define SIMULATE_ID "MSVC"
|
|
||||||
# endif
|
|
||||||
# if defined(__GNUC__)
|
|
||||||
# define SIMULATE_ID "GNU"
|
|
||||||
# endif
|
|
||||||
/* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later,
|
|
||||||
except that a few beta releases use the old format with V=2021. */
|
|
||||||
# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
|
|
||||||
# if defined(__INTEL_COMPILER_UPDATE)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
|
|
||||||
# else
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
|
|
||||||
# endif
|
|
||||||
# else
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE)
|
|
||||||
/* The third version component from --version is an update index,
|
|
||||||
but no macro is provided for it. */
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(0)
|
|
||||||
# endif
|
|
||||||
# if defined(__INTEL_COMPILER_BUILD_DATE)
|
|
||||||
/* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
|
|
||||||
# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
|
|
||||||
# endif
|
|
||||||
# if defined(_MSC_VER)
|
|
||||||
/* _MSC_VER = VVRR */
|
|
||||||
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
|
|
||||||
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
|
|
||||||
# endif
|
|
||||||
# if defined(__GNUC__)
|
|
||||||
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
|
|
||||||
# elif defined(__GNUG__)
|
|
||||||
# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
|
|
||||||
# endif
|
|
||||||
# if defined(__GNUC_MINOR__)
|
|
||||||
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
|
|
||||||
# endif
|
|
||||||
# if defined(__GNUC_PATCHLEVEL__)
|
|
||||||
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)
|
|
||||||
# define COMPILER_ID "IntelLLVM"
|
|
||||||
#if defined(_MSC_VER)
|
|
||||||
# define SIMULATE_ID "MSVC"
|
|
||||||
#endif
|
|
||||||
#if defined(__GNUC__)
|
|
||||||
# define SIMULATE_ID "GNU"
|
|
||||||
#endif
|
|
||||||
/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and
|
|
||||||
* later. Look for 6 digit vs. 8 digit version number to decide encoding.
|
|
||||||
* VVVV is no smaller than the current year when a version is released.
|
|
||||||
*/
|
|
||||||
#if __INTEL_LLVM_COMPILER < 1000000L
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10)
|
|
||||||
#else
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100)
|
|
||||||
#endif
|
|
||||||
#if defined(_MSC_VER)
|
|
||||||
/* _MSC_VER = VVRR */
|
|
||||||
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
|
|
||||||
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
|
|
||||||
#endif
|
|
||||||
#if defined(__GNUC__)
|
|
||||||
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
|
|
||||||
#elif defined(__GNUG__)
|
|
||||||
# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
|
|
||||||
#endif
|
|
||||||
#if defined(__GNUC_MINOR__)
|
|
||||||
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
|
|
||||||
#endif
|
|
||||||
#if defined(__GNUC_PATCHLEVEL__)
|
|
||||||
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#elif defined(__PATHCC__)
|
|
||||||
# define COMPILER_ID "PathScale"
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
|
|
||||||
# if defined(__PATHCC_PATCHLEVEL__)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
|
|
||||||
# define COMPILER_ID "Embarcadero"
|
|
||||||
# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
|
|
||||||
# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
|
|
||||||
|
|
||||||
#elif defined(__BORLANDC__)
|
|
||||||
# define COMPILER_ID "Borland"
|
|
||||||
/* __BORLANDC__ = 0xVRR */
|
|
||||||
# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
|
|
||||||
# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
|
|
||||||
|
|
||||||
#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
|
|
||||||
# define COMPILER_ID "Watcom"
|
|
||||||
/* __WATCOMC__ = VVRR */
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
|
|
||||||
# if (__WATCOMC__ % 10) > 0
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(__WATCOMC__)
|
|
||||||
# define COMPILER_ID "OpenWatcom"
|
|
||||||
/* __WATCOMC__ = VVRP + 1100 */
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
|
|
||||||
# if (__WATCOMC__ % 10) > 0
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(__SUNPRO_C)
|
|
||||||
# define COMPILER_ID "SunPro"
|
|
||||||
# if __SUNPRO_C >= 0x5100
|
|
||||||
/* __SUNPRO_C = 0xVRRP */
|
|
||||||
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)
|
|
||||||
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)
|
|
||||||
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
|
|
||||||
# else
|
|
||||||
/* __SUNPRO_CC = 0xVRP */
|
|
||||||
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)
|
|
||||||
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)
|
|
||||||
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(__HP_cc)
|
|
||||||
# define COMPILER_ID "HP"
|
|
||||||
/* __HP_cc = VVRRPP */
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100)
|
|
||||||
|
|
||||||
#elif defined(__DECC)
|
|
||||||
# define COMPILER_ID "Compaq"
|
|
||||||
/* __DECC_VER = VVRRTPPPP */
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000)
|
|
||||||
|
|
||||||
#elif defined(__IBMC__) && defined(__COMPILER_VER__)
|
|
||||||
# define COMPILER_ID "zOS"
|
|
||||||
/* __IBMC__ = VRP */
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
|
|
||||||
|
|
||||||
#elif defined(__open_xl__) && defined(__clang__)
|
|
||||||
# define COMPILER_ID "IBMClang"
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__open_xl_release__)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__)
|
|
||||||
# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__)
|
|
||||||
|
|
||||||
|
|
||||||
#elif defined(__ibmxl__) && defined(__clang__)
|
|
||||||
# define COMPILER_ID "XLClang"
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
|
|
||||||
# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
|
|
||||||
|
|
||||||
|
|
||||||
#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800
|
|
||||||
# define COMPILER_ID "XL"
|
|
||||||
/* __IBMC__ = VRP */
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
|
|
||||||
|
|
||||||
#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800
|
|
||||||
# define COMPILER_ID "VisualAge"
|
|
||||||
/* __IBMC__ = VRP */
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
|
|
||||||
|
|
||||||
#elif defined(__NVCOMPILER)
|
|
||||||
# define COMPILER_ID "NVHPC"
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__)
|
|
||||||
# if defined(__NVCOMPILER_PATCHLEVEL__)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(__PGI)
|
|
||||||
# define COMPILER_ID "PGI"
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
|
|
||||||
# if defined(__PGIC_PATCHLEVEL__)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(__clang__) && defined(__cray__)
|
|
||||||
# define COMPILER_ID "CrayClang"
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__cray_major__)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__cray_minor__)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__)
|
|
||||||
# define COMPILER_VERSION_INTERNAL_STR __clang_version__
|
|
||||||
|
|
||||||
|
|
||||||
#elif defined(_CRAYC)
|
|
||||||
# define COMPILER_ID "Cray"
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
|
|
||||||
|
|
||||||
#elif defined(__TI_COMPILER_VERSION__)
|
|
||||||
# define COMPILER_ID "TI"
|
|
||||||
/* __TI_COMPILER_VERSION__ = VVVRRRPPP */
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
|
|
||||||
|
|
||||||
#elif defined(__CLANG_FUJITSU)
|
|
||||||
# define COMPILER_ID "FujitsuClang"
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
|
|
||||||
# define COMPILER_VERSION_INTERNAL_STR __clang_version__
|
|
||||||
|
|
||||||
|
|
||||||
#elif defined(__FUJITSU)
|
|
||||||
# define COMPILER_ID "Fujitsu"
|
|
||||||
# if defined(__FCC_version__)
|
|
||||||
# define COMPILER_VERSION __FCC_version__
|
|
||||||
# elif defined(__FCC_major__)
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
|
|
||||||
# endif
|
|
||||||
# if defined(__fcc_version)
|
|
||||||
# define COMPILER_VERSION_INTERNAL DEC(__fcc_version)
|
|
||||||
# elif defined(__FCC_VERSION)
|
|
||||||
# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
|
|
||||||
#elif defined(__ghs__)
|
|
||||||
# define COMPILER_ID "GHS"
|
|
||||||
/* __GHS_VERSION_NUMBER = VVVVRP */
|
|
||||||
# ifdef __GHS_VERSION_NUMBER
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(__TASKING__)
|
|
||||||
# define COMPILER_ID "Tasking"
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100)
|
|
||||||
# define COMPILER_VERSION_INTERNAL DEC(__VERSION__)
|
|
||||||
|
|
||||||
#elif defined(__ORANGEC__)
|
|
||||||
# define COMPILER_ID "OrangeC"
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__)
|
|
||||||
|
|
||||||
#elif defined(__TINYC__)
|
|
||||||
# define COMPILER_ID "TinyCC"
|
|
||||||
|
|
||||||
#elif defined(__BCC__)
|
|
||||||
# define COMPILER_ID "Bruce"
|
|
||||||
|
|
||||||
#elif defined(__SCO_VERSION__)
|
|
||||||
# define COMPILER_ID "SCO"
|
|
||||||
|
|
||||||
#elif defined(__ARMCC_VERSION) && !defined(__clang__)
|
|
||||||
# define COMPILER_ID "ARMCC"
|
|
||||||
#if __ARMCC_VERSION >= 1000000
|
|
||||||
/* __ARMCC_VERSION = VRRPPPP */
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
|
|
||||||
#else
|
|
||||||
/* __ARMCC_VERSION = VRPPPP */
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#elif defined(__clang__) && defined(__apple_build_version__)
|
|
||||||
# define COMPILER_ID "AppleClang"
|
|
||||||
# if defined(_MSC_VER)
|
|
||||||
# define SIMULATE_ID "MSVC"
|
|
||||||
# endif
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
|
|
||||||
# if defined(_MSC_VER)
|
|
||||||
/* _MSC_VER = VVRR */
|
|
||||||
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
|
|
||||||
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
|
|
||||||
# endif
|
|
||||||
# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
|
|
||||||
|
|
||||||
#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
|
|
||||||
# define COMPILER_ID "ARMClang"
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100)
|
|
||||||
# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
|
|
||||||
|
|
||||||
#elif defined(__clang__)
|
|
||||||
# define COMPILER_ID "Clang"
|
|
||||||
# if defined(_MSC_VER)
|
|
||||||
# define SIMULATE_ID "MSVC"
|
|
||||||
# endif
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
|
|
||||||
# if defined(_MSC_VER)
|
|
||||||
/* _MSC_VER = VVRR */
|
|
||||||
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
|
|
||||||
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__))
|
|
||||||
# define COMPILER_ID "LCC"
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100)
|
|
||||||
# if defined(__LCC_MINOR__)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__)
|
|
||||||
# endif
|
|
||||||
# if defined(__GNUC__) && defined(__GNUC_MINOR__)
|
|
||||||
# define SIMULATE_ID "GNU"
|
|
||||||
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
|
|
||||||
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
|
|
||||||
# if defined(__GNUC_PATCHLEVEL__)
|
|
||||||
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(__GNUC__)
|
|
||||||
# define COMPILER_ID "GNU"
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
|
|
||||||
# if defined(__GNUC_MINOR__)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
|
|
||||||
# endif
|
|
||||||
# if defined(__GNUC_PATCHLEVEL__)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(_MSC_VER)
|
|
||||||
# define COMPILER_ID "MSVC"
|
|
||||||
/* _MSC_VER = VVRR */
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
|
|
||||||
# if defined(_MSC_FULL_VER)
|
|
||||||
# if _MSC_VER >= 1400
|
|
||||||
/* _MSC_FULL_VER = VVRRPPPPP */
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
|
|
||||||
# else
|
|
||||||
/* _MSC_FULL_VER = VVRRPPPP */
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
# if defined(_MSC_BUILD)
|
|
||||||
# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(_ADI_COMPILER)
|
|
||||||
# define COMPILER_ID "ADSP"
|
|
||||||
#if defined(__VERSIONNUM__)
|
|
||||||
/* __VERSIONNUM__ = 0xVVRRPPTT */
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF)
|
|
||||||
# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
|
|
||||||
# define COMPILER_ID "IAR"
|
|
||||||
# if defined(__VER__) && defined(__ICCARM__)
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
|
|
||||||
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
|
|
||||||
# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__))
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
|
|
||||||
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC)
|
|
||||||
# define COMPILER_ID "SDCC"
|
|
||||||
# if defined(__SDCC_VERSION_MAJOR)
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH)
|
|
||||||
# else
|
|
||||||
/* SDCC = VRP */
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(SDCC/100)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(SDCC % 10)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
|
|
||||||
/* These compilers are either not known or too old to define an
|
|
||||||
identification macro. Try to identify the platform and guess that
|
|
||||||
it is the native compiler. */
|
|
||||||
#elif defined(__hpux) || defined(__hpua)
|
|
||||||
# define COMPILER_ID "HP"
|
|
||||||
|
|
||||||
#else /* unknown compiler */
|
|
||||||
# define COMPILER_ID ""
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Construct the string literal in pieces to prevent the source from
|
|
||||||
getting matched. Store it in a pointer rather than an array
|
|
||||||
because some compilers will just produce instructions to fill the
|
|
||||||
array rather than assigning a pointer to a static array. */
|
|
||||||
char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
|
|
||||||
#ifdef SIMULATE_ID
|
|
||||||
char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __QNXNTO__
|
|
||||||
char const* qnxnto = "INFO" ":" "qnxnto[]";
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
|
|
||||||
char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define STRINGIFY_HELPER(X) #X
|
|
||||||
#define STRINGIFY(X) STRINGIFY_HELPER(X)
|
|
||||||
|
|
||||||
/* Identify known platforms by name. */
|
|
||||||
#if defined(__linux) || defined(__linux__) || defined(linux)
|
|
||||||
# define PLATFORM_ID "Linux"
|
|
||||||
|
|
||||||
#elif defined(__MSYS__)
|
|
||||||
# define PLATFORM_ID "MSYS"
|
|
||||||
|
|
||||||
#elif defined(__CYGWIN__)
|
|
||||||
# define PLATFORM_ID "Cygwin"
|
|
||||||
|
|
||||||
#elif defined(__MINGW32__)
|
|
||||||
# define PLATFORM_ID "MinGW"
|
|
||||||
|
|
||||||
#elif defined(__APPLE__)
|
|
||||||
# define PLATFORM_ID "Darwin"
|
|
||||||
|
|
||||||
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
|
|
||||||
# define PLATFORM_ID "Windows"
|
|
||||||
|
|
||||||
#elif defined(__FreeBSD__) || defined(__FreeBSD)
|
|
||||||
# define PLATFORM_ID "FreeBSD"
|
|
||||||
|
|
||||||
#elif defined(__NetBSD__) || defined(__NetBSD)
|
|
||||||
# define PLATFORM_ID "NetBSD"
|
|
||||||
|
|
||||||
#elif defined(__OpenBSD__) || defined(__OPENBSD)
|
|
||||||
# define PLATFORM_ID "OpenBSD"
|
|
||||||
|
|
||||||
#elif defined(__sun) || defined(sun)
|
|
||||||
# define PLATFORM_ID "SunOS"
|
|
||||||
|
|
||||||
#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
|
|
||||||
# define PLATFORM_ID "AIX"
|
|
||||||
|
|
||||||
#elif defined(__hpux) || defined(__hpux__)
|
|
||||||
# define PLATFORM_ID "HP-UX"
|
|
||||||
|
|
||||||
#elif defined(__HAIKU__)
|
|
||||||
# define PLATFORM_ID "Haiku"
|
|
||||||
|
|
||||||
#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
|
|
||||||
# define PLATFORM_ID "BeOS"
|
|
||||||
|
|
||||||
#elif defined(__QNX__) || defined(__QNXNTO__)
|
|
||||||
# define PLATFORM_ID "QNX"
|
|
||||||
|
|
||||||
#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
|
|
||||||
# define PLATFORM_ID "Tru64"
|
|
||||||
|
|
||||||
#elif defined(__riscos) || defined(__riscos__)
|
|
||||||
# define PLATFORM_ID "RISCos"
|
|
||||||
|
|
||||||
#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
|
|
||||||
# define PLATFORM_ID "SINIX"
|
|
||||||
|
|
||||||
#elif defined(__UNIX_SV__)
|
|
||||||
# define PLATFORM_ID "UNIX_SV"
|
|
||||||
|
|
||||||
#elif defined(__bsdos__)
|
|
||||||
# define PLATFORM_ID "BSDOS"
|
|
||||||
|
|
||||||
#elif defined(_MPRAS) || defined(MPRAS)
|
|
||||||
# define PLATFORM_ID "MP-RAS"
|
|
||||||
|
|
||||||
#elif defined(__osf) || defined(__osf__)
|
|
||||||
# define PLATFORM_ID "OSF1"
|
|
||||||
|
|
||||||
#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
|
|
||||||
# define PLATFORM_ID "SCO_SV"
|
|
||||||
|
|
||||||
#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
|
|
||||||
# define PLATFORM_ID "ULTRIX"
|
|
||||||
|
|
||||||
#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
|
|
||||||
# define PLATFORM_ID "Xenix"
|
|
||||||
|
|
||||||
#elif defined(__WATCOMC__)
|
|
||||||
# if defined(__LINUX__)
|
|
||||||
# define PLATFORM_ID "Linux"
|
|
||||||
|
|
||||||
# elif defined(__DOS__)
|
|
||||||
# define PLATFORM_ID "DOS"
|
|
||||||
|
|
||||||
# elif defined(__OS2__)
|
|
||||||
# define PLATFORM_ID "OS2"
|
|
||||||
|
|
||||||
# elif defined(__WINDOWS__)
|
|
||||||
# define PLATFORM_ID "Windows3x"
|
|
||||||
|
|
||||||
# elif defined(__VXWORKS__)
|
|
||||||
# define PLATFORM_ID "VxWorks"
|
|
||||||
|
|
||||||
# else /* unknown platform */
|
|
||||||
# define PLATFORM_ID
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(__INTEGRITY)
|
|
||||||
# if defined(INT_178B)
|
|
||||||
# define PLATFORM_ID "Integrity178"
|
|
||||||
|
|
||||||
# else /* regular Integrity */
|
|
||||||
# define PLATFORM_ID "Integrity"
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# elif defined(_ADI_COMPILER)
|
|
||||||
# define PLATFORM_ID "ADSP"
|
|
||||||
|
|
||||||
#else /* unknown platform */
|
|
||||||
# define PLATFORM_ID
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* For windows compilers MSVC and Intel we can determine
|
|
||||||
the architecture of the compiler being used. This is because
|
|
||||||
the compilers do not have flags that can change the architecture,
|
|
||||||
but rather depend on which compiler is being used
|
|
||||||
*/
|
|
||||||
#if defined(_WIN32) && defined(_MSC_VER)
|
|
||||||
# if defined(_M_IA64)
|
|
||||||
# define ARCHITECTURE_ID "IA64"
|
|
||||||
|
|
||||||
# elif defined(_M_ARM64EC)
|
|
||||||
# define ARCHITECTURE_ID "ARM64EC"
|
|
||||||
|
|
||||||
# elif defined(_M_X64) || defined(_M_AMD64)
|
|
||||||
# define ARCHITECTURE_ID "x64"
|
|
||||||
|
|
||||||
# elif defined(_M_IX86)
|
|
||||||
# define ARCHITECTURE_ID "X86"
|
|
||||||
|
|
||||||
# elif defined(_M_ARM64)
|
|
||||||
# define ARCHITECTURE_ID "ARM64"
|
|
||||||
|
|
||||||
# elif defined(_M_ARM)
|
|
||||||
# if _M_ARM == 4
|
|
||||||
# define ARCHITECTURE_ID "ARMV4I"
|
|
||||||
# elif _M_ARM == 5
|
|
||||||
# define ARCHITECTURE_ID "ARMV5I"
|
|
||||||
# else
|
|
||||||
# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# elif defined(_M_MIPS)
|
|
||||||
# define ARCHITECTURE_ID "MIPS"
|
|
||||||
|
|
||||||
# elif defined(_M_SH)
|
|
||||||
# define ARCHITECTURE_ID "SHx"
|
|
||||||
|
|
||||||
# else /* unknown architecture */
|
|
||||||
# define ARCHITECTURE_ID ""
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(__WATCOMC__)
|
|
||||||
# if defined(_M_I86)
|
|
||||||
# define ARCHITECTURE_ID "I86"
|
|
||||||
|
|
||||||
# elif defined(_M_IX86)
|
|
||||||
# define ARCHITECTURE_ID "X86"
|
|
||||||
|
|
||||||
# else /* unknown architecture */
|
|
||||||
# define ARCHITECTURE_ID ""
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
|
|
||||||
# if defined(__ICCARM__)
|
|
||||||
# define ARCHITECTURE_ID "ARM"
|
|
||||||
|
|
||||||
# elif defined(__ICCRX__)
|
|
||||||
# define ARCHITECTURE_ID "RX"
|
|
||||||
|
|
||||||
# elif defined(__ICCRH850__)
|
|
||||||
# define ARCHITECTURE_ID "RH850"
|
|
||||||
|
|
||||||
# elif defined(__ICCRL78__)
|
|
||||||
# define ARCHITECTURE_ID "RL78"
|
|
||||||
|
|
||||||
# elif defined(__ICCRISCV__)
|
|
||||||
# define ARCHITECTURE_ID "RISCV"
|
|
||||||
|
|
||||||
# elif defined(__ICCAVR__)
|
|
||||||
# define ARCHITECTURE_ID "AVR"
|
|
||||||
|
|
||||||
# elif defined(__ICC430__)
|
|
||||||
# define ARCHITECTURE_ID "MSP430"
|
|
||||||
|
|
||||||
# elif defined(__ICCV850__)
|
|
||||||
# define ARCHITECTURE_ID "V850"
|
|
||||||
|
|
||||||
# elif defined(__ICC8051__)
|
|
||||||
# define ARCHITECTURE_ID "8051"
|
|
||||||
|
|
||||||
# elif defined(__ICCSTM8__)
|
|
||||||
# define ARCHITECTURE_ID "STM8"
|
|
||||||
|
|
||||||
# else /* unknown architecture */
|
|
||||||
# define ARCHITECTURE_ID ""
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(__ghs__)
|
|
||||||
# if defined(__PPC64__)
|
|
||||||
# define ARCHITECTURE_ID "PPC64"
|
|
||||||
|
|
||||||
# elif defined(__ppc__)
|
|
||||||
# define ARCHITECTURE_ID "PPC"
|
|
||||||
|
|
||||||
# elif defined(__ARM__)
|
|
||||||
# define ARCHITECTURE_ID "ARM"
|
|
||||||
|
|
||||||
# elif defined(__x86_64__)
|
|
||||||
# define ARCHITECTURE_ID "x64"
|
|
||||||
|
|
||||||
# elif defined(__i386__)
|
|
||||||
# define ARCHITECTURE_ID "X86"
|
|
||||||
|
|
||||||
# else /* unknown architecture */
|
|
||||||
# define ARCHITECTURE_ID ""
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(__TI_COMPILER_VERSION__)
|
|
||||||
# if defined(__TI_ARM__)
|
|
||||||
# define ARCHITECTURE_ID "ARM"
|
|
||||||
|
|
||||||
# elif defined(__MSP430__)
|
|
||||||
# define ARCHITECTURE_ID "MSP430"
|
|
||||||
|
|
||||||
# elif defined(__TMS320C28XX__)
|
|
||||||
# define ARCHITECTURE_ID "TMS320C28x"
|
|
||||||
|
|
||||||
# elif defined(__TMS320C6X__) || defined(_TMS320C6X)
|
|
||||||
# define ARCHITECTURE_ID "TMS320C6x"
|
|
||||||
|
|
||||||
# else /* unknown architecture */
|
|
||||||
# define ARCHITECTURE_ID ""
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# elif defined(__ADSPSHARC__)
|
|
||||||
# define ARCHITECTURE_ID "SHARC"
|
|
||||||
|
|
||||||
# elif defined(__ADSPBLACKFIN__)
|
|
||||||
# define ARCHITECTURE_ID "Blackfin"
|
|
||||||
|
|
||||||
#elif defined(__TASKING__)
|
|
||||||
|
|
||||||
# if defined(__CTC__) || defined(__CPTC__)
|
|
||||||
# define ARCHITECTURE_ID "TriCore"
|
|
||||||
|
|
||||||
# elif defined(__CMCS__)
|
|
||||||
# define ARCHITECTURE_ID "MCS"
|
|
||||||
|
|
||||||
# elif defined(__CARM__)
|
|
||||||
# define ARCHITECTURE_ID "ARM"
|
|
||||||
|
|
||||||
# elif defined(__CARC__)
|
|
||||||
# define ARCHITECTURE_ID "ARC"
|
|
||||||
|
|
||||||
# elif defined(__C51__)
|
|
||||||
# define ARCHITECTURE_ID "8051"
|
|
||||||
|
|
||||||
# elif defined(__CPCP__)
|
|
||||||
# define ARCHITECTURE_ID "PCP"
|
|
||||||
|
|
||||||
# else
|
|
||||||
# define ARCHITECTURE_ID ""
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#else
|
|
||||||
# define ARCHITECTURE_ID
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Convert integer to decimal digit literals. */
|
|
||||||
#define DEC(n) \
|
|
||||||
('0' + (((n) / 10000000)%10)), \
|
|
||||||
('0' + (((n) / 1000000)%10)), \
|
|
||||||
('0' + (((n) / 100000)%10)), \
|
|
||||||
('0' + (((n) / 10000)%10)), \
|
|
||||||
('0' + (((n) / 1000)%10)), \
|
|
||||||
('0' + (((n) / 100)%10)), \
|
|
||||||
('0' + (((n) / 10)%10)), \
|
|
||||||
('0' + ((n) % 10))
|
|
||||||
|
|
||||||
/* Convert integer to hex digit literals. */
|
|
||||||
#define HEX(n) \
|
|
||||||
('0' + ((n)>>28 & 0xF)), \
|
|
||||||
('0' + ((n)>>24 & 0xF)), \
|
|
||||||
('0' + ((n)>>20 & 0xF)), \
|
|
||||||
('0' + ((n)>>16 & 0xF)), \
|
|
||||||
('0' + ((n)>>12 & 0xF)), \
|
|
||||||
('0' + ((n)>>8 & 0xF)), \
|
|
||||||
('0' + ((n)>>4 & 0xF)), \
|
|
||||||
('0' + ((n) & 0xF))
|
|
||||||
|
|
||||||
/* Construct a string literal encoding the version number. */
|
|
||||||
#ifdef COMPILER_VERSION
|
|
||||||
char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]";
|
|
||||||
|
|
||||||
/* Construct a string literal encoding the version number components. */
|
|
||||||
#elif defined(COMPILER_VERSION_MAJOR)
|
|
||||||
char const info_version[] = {
|
|
||||||
'I', 'N', 'F', 'O', ':',
|
|
||||||
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
|
|
||||||
COMPILER_VERSION_MAJOR,
|
|
||||||
# ifdef COMPILER_VERSION_MINOR
|
|
||||||
'.', COMPILER_VERSION_MINOR,
|
|
||||||
# ifdef COMPILER_VERSION_PATCH
|
|
||||||
'.', COMPILER_VERSION_PATCH,
|
|
||||||
# ifdef COMPILER_VERSION_TWEAK
|
|
||||||
'.', COMPILER_VERSION_TWEAK,
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
']','\0'};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Construct a string literal encoding the internal version number. */
|
|
||||||
#ifdef COMPILER_VERSION_INTERNAL
|
|
||||||
char const info_version_internal[] = {
|
|
||||||
'I', 'N', 'F', 'O', ':',
|
|
||||||
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
|
|
||||||
'i','n','t','e','r','n','a','l','[',
|
|
||||||
COMPILER_VERSION_INTERNAL,']','\0'};
|
|
||||||
#elif defined(COMPILER_VERSION_INTERNAL_STR)
|
|
||||||
char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]";
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Construct a string literal encoding the version number components. */
|
|
||||||
#ifdef SIMULATE_VERSION_MAJOR
|
|
||||||
char const info_simulate_version[] = {
|
|
||||||
'I', 'N', 'F', 'O', ':',
|
|
||||||
's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
|
|
||||||
SIMULATE_VERSION_MAJOR,
|
|
||||||
# ifdef SIMULATE_VERSION_MINOR
|
|
||||||
'.', SIMULATE_VERSION_MINOR,
|
|
||||||
# ifdef SIMULATE_VERSION_PATCH
|
|
||||||
'.', SIMULATE_VERSION_PATCH,
|
|
||||||
# ifdef SIMULATE_VERSION_TWEAK
|
|
||||||
'.', SIMULATE_VERSION_TWEAK,
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
']','\0'};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Construct the string literal in pieces to prevent the source from
|
|
||||||
getting matched. Store it in a pointer rather than an array
|
|
||||||
because some compilers will just produce instructions to fill the
|
|
||||||
array rather than assigning a pointer to a static array. */
|
|
||||||
char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
|
|
||||||
char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if !defined(__STDC__) && !defined(__clang__)
|
|
||||||
# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__)
|
|
||||||
# define C_VERSION "90"
|
|
||||||
# else
|
|
||||||
# define C_VERSION
|
|
||||||
# endif
|
|
||||||
#elif __STDC_VERSION__ > 201710L
|
|
||||||
# define C_VERSION "23"
|
|
||||||
#elif __STDC_VERSION__ >= 201710L
|
|
||||||
# define C_VERSION "17"
|
|
||||||
#elif __STDC_VERSION__ >= 201000L
|
|
||||||
# define C_VERSION "11"
|
|
||||||
#elif __STDC_VERSION__ >= 199901L
|
|
||||||
# define C_VERSION "99"
|
|
||||||
#else
|
|
||||||
# define C_VERSION "90"
|
|
||||||
#endif
|
|
||||||
const char* info_language_standard_default =
|
|
||||||
"INFO" ":" "standard_default[" C_VERSION "]";
|
|
||||||
|
|
||||||
const char* info_language_extensions_default = "INFO" ":" "extensions_default["
|
|
||||||
#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \
|
|
||||||
defined(__TI_COMPILER_VERSION__)) && \
|
|
||||||
!defined(__STRICT_ANSI__)
|
|
||||||
"ON"
|
|
||||||
#else
|
|
||||||
"OFF"
|
|
||||||
#endif
|
|
||||||
"]";
|
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
#ifdef ID_VOID_MAIN
|
|
||||||
void main() {}
|
|
||||||
#else
|
|
||||||
# if defined(__CLASSIC_C__)
|
|
||||||
int main(argc, argv) int argc; char *argv[];
|
|
||||||
# else
|
|
||||||
int main(int argc, char* argv[])
|
|
||||||
# endif
|
|
||||||
{
|
|
||||||
int require = 0;
|
|
||||||
require += info_compiler[argc];
|
|
||||||
require += info_platform[argc];
|
|
||||||
require += info_arch[argc];
|
|
||||||
#ifdef COMPILER_VERSION_MAJOR
|
|
||||||
require += info_version[argc];
|
|
||||||
#endif
|
|
||||||
#ifdef COMPILER_VERSION_INTERNAL
|
|
||||||
require += info_version_internal[argc];
|
|
||||||
#endif
|
|
||||||
#ifdef SIMULATE_ID
|
|
||||||
require += info_simulate[argc];
|
|
||||||
#endif
|
|
||||||
#ifdef SIMULATE_VERSION_MAJOR
|
|
||||||
require += info_simulate_version[argc];
|
|
||||||
#endif
|
|
||||||
#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
|
|
||||||
require += info_cray[argc];
|
|
||||||
#endif
|
|
||||||
require += info_language_standard_default[argc];
|
|
||||||
require += info_language_extensions_default[argc];
|
|
||||||
(void)argv;
|
|
||||||
return require;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
Binary file not shown.
@ -1,869 +0,0 @@
|
|||||||
/* This source file must have a .cpp extension so that all C++ compilers
|
|
||||||
recognize the extension without flags. Borland does not know .cxx for
|
|
||||||
example. */
|
|
||||||
#ifndef __cplusplus
|
|
||||||
# error "A C compiler has been selected for C++."
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(__has_include)
|
|
||||||
/* If the compiler does not have __has_include, pretend the answer is
|
|
||||||
always no. */
|
|
||||||
# define __has_include(x) 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* Version number components: V=Version, R=Revision, P=Patch
|
|
||||||
Version date components: YYYY=Year, MM=Month, DD=Day */
|
|
||||||
|
|
||||||
#if defined(__COMO__)
|
|
||||||
# define COMPILER_ID "Comeau"
|
|
||||||
/* __COMO_VERSION__ = VRR */
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100)
|
|
||||||
|
|
||||||
#elif defined(__INTEL_COMPILER) || defined(__ICC)
|
|
||||||
# define COMPILER_ID "Intel"
|
|
||||||
# if defined(_MSC_VER)
|
|
||||||
# define SIMULATE_ID "MSVC"
|
|
||||||
# endif
|
|
||||||
# if defined(__GNUC__)
|
|
||||||
# define SIMULATE_ID "GNU"
|
|
||||||
# endif
|
|
||||||
/* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later,
|
|
||||||
except that a few beta releases use the old format with V=2021. */
|
|
||||||
# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
|
|
||||||
# if defined(__INTEL_COMPILER_UPDATE)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
|
|
||||||
# else
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
|
|
||||||
# endif
|
|
||||||
# else
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE)
|
|
||||||
/* The third version component from --version is an update index,
|
|
||||||
but no macro is provided for it. */
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(0)
|
|
||||||
# endif
|
|
||||||
# if defined(__INTEL_COMPILER_BUILD_DATE)
|
|
||||||
/* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
|
|
||||||
# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
|
|
||||||
# endif
|
|
||||||
# if defined(_MSC_VER)
|
|
||||||
/* _MSC_VER = VVRR */
|
|
||||||
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
|
|
||||||
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
|
|
||||||
# endif
|
|
||||||
# if defined(__GNUC__)
|
|
||||||
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
|
|
||||||
# elif defined(__GNUG__)
|
|
||||||
# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
|
|
||||||
# endif
|
|
||||||
# if defined(__GNUC_MINOR__)
|
|
||||||
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
|
|
||||||
# endif
|
|
||||||
# if defined(__GNUC_PATCHLEVEL__)
|
|
||||||
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)
|
|
||||||
# define COMPILER_ID "IntelLLVM"
|
|
||||||
#if defined(_MSC_VER)
|
|
||||||
# define SIMULATE_ID "MSVC"
|
|
||||||
#endif
|
|
||||||
#if defined(__GNUC__)
|
|
||||||
# define SIMULATE_ID "GNU"
|
|
||||||
#endif
|
|
||||||
/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and
|
|
||||||
* later. Look for 6 digit vs. 8 digit version number to decide encoding.
|
|
||||||
* VVVV is no smaller than the current year when a version is released.
|
|
||||||
*/
|
|
||||||
#if __INTEL_LLVM_COMPILER < 1000000L
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10)
|
|
||||||
#else
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100)
|
|
||||||
#endif
|
|
||||||
#if defined(_MSC_VER)
|
|
||||||
/* _MSC_VER = VVRR */
|
|
||||||
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
|
|
||||||
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
|
|
||||||
#endif
|
|
||||||
#if defined(__GNUC__)
|
|
||||||
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
|
|
||||||
#elif defined(__GNUG__)
|
|
||||||
# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
|
|
||||||
#endif
|
|
||||||
#if defined(__GNUC_MINOR__)
|
|
||||||
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
|
|
||||||
#endif
|
|
||||||
#if defined(__GNUC_PATCHLEVEL__)
|
|
||||||
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#elif defined(__PATHCC__)
|
|
||||||
# define COMPILER_ID "PathScale"
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
|
|
||||||
# if defined(__PATHCC_PATCHLEVEL__)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
|
|
||||||
# define COMPILER_ID "Embarcadero"
|
|
||||||
# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
|
|
||||||
# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
|
|
||||||
|
|
||||||
#elif defined(__BORLANDC__)
|
|
||||||
# define COMPILER_ID "Borland"
|
|
||||||
/* __BORLANDC__ = 0xVRR */
|
|
||||||
# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
|
|
||||||
# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
|
|
||||||
|
|
||||||
#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
|
|
||||||
# define COMPILER_ID "Watcom"
|
|
||||||
/* __WATCOMC__ = VVRR */
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
|
|
||||||
# if (__WATCOMC__ % 10) > 0
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(__WATCOMC__)
|
|
||||||
# define COMPILER_ID "OpenWatcom"
|
|
||||||
/* __WATCOMC__ = VVRP + 1100 */
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
|
|
||||||
# if (__WATCOMC__ % 10) > 0
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(__SUNPRO_CC)
|
|
||||||
# define COMPILER_ID "SunPro"
|
|
||||||
# if __SUNPRO_CC >= 0x5100
|
|
||||||
/* __SUNPRO_CC = 0xVRRP */
|
|
||||||
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
|
|
||||||
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
|
|
||||||
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
|
|
||||||
# else
|
|
||||||
/* __SUNPRO_CC = 0xVRP */
|
|
||||||
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
|
|
||||||
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
|
|
||||||
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(__HP_aCC)
|
|
||||||
# define COMPILER_ID "HP"
|
|
||||||
/* __HP_aCC = VVRRPP */
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100)
|
|
||||||
|
|
||||||
#elif defined(__DECCXX)
|
|
||||||
# define COMPILER_ID "Compaq"
|
|
||||||
/* __DECCXX_VER = VVRRTPPPP */
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000)
|
|
||||||
|
|
||||||
#elif defined(__IBMCPP__) && defined(__COMPILER_VER__)
|
|
||||||
# define COMPILER_ID "zOS"
|
|
||||||
/* __IBMCPP__ = VRP */
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
|
|
||||||
|
|
||||||
#elif defined(__open_xl__) && defined(__clang__)
|
|
||||||
# define COMPILER_ID "IBMClang"
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__open_xl_release__)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__)
|
|
||||||
# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__)
|
|
||||||
|
|
||||||
|
|
||||||
#elif defined(__ibmxl__) && defined(__clang__)
|
|
||||||
# define COMPILER_ID "XLClang"
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
|
|
||||||
# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
|
|
||||||
|
|
||||||
|
|
||||||
#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800
|
|
||||||
# define COMPILER_ID "XL"
|
|
||||||
/* __IBMCPP__ = VRP */
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
|
|
||||||
|
|
||||||
#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800
|
|
||||||
# define COMPILER_ID "VisualAge"
|
|
||||||
/* __IBMCPP__ = VRP */
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
|
|
||||||
|
|
||||||
#elif defined(__NVCOMPILER)
|
|
||||||
# define COMPILER_ID "NVHPC"
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__)
|
|
||||||
# if defined(__NVCOMPILER_PATCHLEVEL__)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(__PGI)
|
|
||||||
# define COMPILER_ID "PGI"
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
|
|
||||||
# if defined(__PGIC_PATCHLEVEL__)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(__clang__) && defined(__cray__)
|
|
||||||
# define COMPILER_ID "CrayClang"
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__cray_major__)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__cray_minor__)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__)
|
|
||||||
# define COMPILER_VERSION_INTERNAL_STR __clang_version__
|
|
||||||
|
|
||||||
|
|
||||||
#elif defined(_CRAYC)
|
|
||||||
# define COMPILER_ID "Cray"
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
|
|
||||||
|
|
||||||
#elif defined(__TI_COMPILER_VERSION__)
|
|
||||||
# define COMPILER_ID "TI"
|
|
||||||
/* __TI_COMPILER_VERSION__ = VVVRRRPPP */
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
|
|
||||||
|
|
||||||
#elif defined(__CLANG_FUJITSU)
|
|
||||||
# define COMPILER_ID "FujitsuClang"
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
|
|
||||||
# define COMPILER_VERSION_INTERNAL_STR __clang_version__
|
|
||||||
|
|
||||||
|
|
||||||
#elif defined(__FUJITSU)
|
|
||||||
# define COMPILER_ID "Fujitsu"
|
|
||||||
# if defined(__FCC_version__)
|
|
||||||
# define COMPILER_VERSION __FCC_version__
|
|
||||||
# elif defined(__FCC_major__)
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
|
|
||||||
# endif
|
|
||||||
# if defined(__fcc_version)
|
|
||||||
# define COMPILER_VERSION_INTERNAL DEC(__fcc_version)
|
|
||||||
# elif defined(__FCC_VERSION)
|
|
||||||
# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
|
|
||||||
#elif defined(__ghs__)
|
|
||||||
# define COMPILER_ID "GHS"
|
|
||||||
/* __GHS_VERSION_NUMBER = VVVVRP */
|
|
||||||
# ifdef __GHS_VERSION_NUMBER
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(__TASKING__)
|
|
||||||
# define COMPILER_ID "Tasking"
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100)
|
|
||||||
# define COMPILER_VERSION_INTERNAL DEC(__VERSION__)
|
|
||||||
|
|
||||||
#elif defined(__ORANGEC__)
|
|
||||||
# define COMPILER_ID "OrangeC"
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__)
|
|
||||||
|
|
||||||
#elif defined(__SCO_VERSION__)
|
|
||||||
# define COMPILER_ID "SCO"
|
|
||||||
|
|
||||||
#elif defined(__ARMCC_VERSION) && !defined(__clang__)
|
|
||||||
# define COMPILER_ID "ARMCC"
|
|
||||||
#if __ARMCC_VERSION >= 1000000
|
|
||||||
/* __ARMCC_VERSION = VRRPPPP */
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
|
|
||||||
#else
|
|
||||||
/* __ARMCC_VERSION = VRPPPP */
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#elif defined(__clang__) && defined(__apple_build_version__)
|
|
||||||
# define COMPILER_ID "AppleClang"
|
|
||||||
# if defined(_MSC_VER)
|
|
||||||
# define SIMULATE_ID "MSVC"
|
|
||||||
# endif
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
|
|
||||||
# if defined(_MSC_VER)
|
|
||||||
/* _MSC_VER = VVRR */
|
|
||||||
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
|
|
||||||
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
|
|
||||||
# endif
|
|
||||||
# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
|
|
||||||
|
|
||||||
#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
|
|
||||||
# define COMPILER_ID "ARMClang"
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100)
|
|
||||||
# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
|
|
||||||
|
|
||||||
#elif defined(__clang__)
|
|
||||||
# define COMPILER_ID "Clang"
|
|
||||||
# if defined(_MSC_VER)
|
|
||||||
# define SIMULATE_ID "MSVC"
|
|
||||||
# endif
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
|
|
||||||
# if defined(_MSC_VER)
|
|
||||||
/* _MSC_VER = VVRR */
|
|
||||||
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
|
|
||||||
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__))
|
|
||||||
# define COMPILER_ID "LCC"
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100)
|
|
||||||
# if defined(__LCC_MINOR__)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__)
|
|
||||||
# endif
|
|
||||||
# if defined(__GNUC__) && defined(__GNUC_MINOR__)
|
|
||||||
# define SIMULATE_ID "GNU"
|
|
||||||
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
|
|
||||||
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
|
|
||||||
# if defined(__GNUC_PATCHLEVEL__)
|
|
||||||
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(__GNUC__) || defined(__GNUG__)
|
|
||||||
# define COMPILER_ID "GNU"
|
|
||||||
# if defined(__GNUC__)
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
|
|
||||||
# else
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__GNUG__)
|
|
||||||
# endif
|
|
||||||
# if defined(__GNUC_MINOR__)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
|
|
||||||
# endif
|
|
||||||
# if defined(__GNUC_PATCHLEVEL__)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(_MSC_VER)
|
|
||||||
# define COMPILER_ID "MSVC"
|
|
||||||
/* _MSC_VER = VVRR */
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
|
|
||||||
# if defined(_MSC_FULL_VER)
|
|
||||||
# if _MSC_VER >= 1400
|
|
||||||
/* _MSC_FULL_VER = VVRRPPPPP */
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
|
|
||||||
# else
|
|
||||||
/* _MSC_FULL_VER = VVRRPPPP */
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
# if defined(_MSC_BUILD)
|
|
||||||
# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(_ADI_COMPILER)
|
|
||||||
# define COMPILER_ID "ADSP"
|
|
||||||
#if defined(__VERSIONNUM__)
|
|
||||||
/* __VERSIONNUM__ = 0xVVRRPPTT */
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF)
|
|
||||||
# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
|
|
||||||
# define COMPILER_ID "IAR"
|
|
||||||
# if defined(__VER__) && defined(__ICCARM__)
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
|
|
||||||
# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
|
|
||||||
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
|
|
||||||
# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__))
|
|
||||||
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
|
|
||||||
# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
|
|
||||||
# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
|
|
||||||
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
|
|
||||||
/* These compilers are either not known or too old to define an
|
|
||||||
identification macro. Try to identify the platform and guess that
|
|
||||||
it is the native compiler. */
|
|
||||||
#elif defined(__hpux) || defined(__hpua)
|
|
||||||
# define COMPILER_ID "HP"
|
|
||||||
|
|
||||||
#else /* unknown compiler */
|
|
||||||
# define COMPILER_ID ""
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Construct the string literal in pieces to prevent the source from
|
|
||||||
getting matched. Store it in a pointer rather than an array
|
|
||||||
because some compilers will just produce instructions to fill the
|
|
||||||
array rather than assigning a pointer to a static array. */
|
|
||||||
char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
|
|
||||||
#ifdef SIMULATE_ID
|
|
||||||
char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __QNXNTO__
|
|
||||||
char const* qnxnto = "INFO" ":" "qnxnto[]";
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
|
|
||||||
char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define STRINGIFY_HELPER(X) #X
|
|
||||||
#define STRINGIFY(X) STRINGIFY_HELPER(X)
|
|
||||||
|
|
||||||
/* Identify known platforms by name. */
|
|
||||||
#if defined(__linux) || defined(__linux__) || defined(linux)
|
|
||||||
# define PLATFORM_ID "Linux"
|
|
||||||
|
|
||||||
#elif defined(__MSYS__)
|
|
||||||
# define PLATFORM_ID "MSYS"
|
|
||||||
|
|
||||||
#elif defined(__CYGWIN__)
|
|
||||||
# define PLATFORM_ID "Cygwin"
|
|
||||||
|
|
||||||
#elif defined(__MINGW32__)
|
|
||||||
# define PLATFORM_ID "MinGW"
|
|
||||||
|
|
||||||
#elif defined(__APPLE__)
|
|
||||||
# define PLATFORM_ID "Darwin"
|
|
||||||
|
|
||||||
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
|
|
||||||
# define PLATFORM_ID "Windows"
|
|
||||||
|
|
||||||
#elif defined(__FreeBSD__) || defined(__FreeBSD)
|
|
||||||
# define PLATFORM_ID "FreeBSD"
|
|
||||||
|
|
||||||
#elif defined(__NetBSD__) || defined(__NetBSD)
|
|
||||||
# define PLATFORM_ID "NetBSD"
|
|
||||||
|
|
||||||
#elif defined(__OpenBSD__) || defined(__OPENBSD)
|
|
||||||
# define PLATFORM_ID "OpenBSD"
|
|
||||||
|
|
||||||
#elif defined(__sun) || defined(sun)
|
|
||||||
# define PLATFORM_ID "SunOS"
|
|
||||||
|
|
||||||
#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
|
|
||||||
# define PLATFORM_ID "AIX"
|
|
||||||
|
|
||||||
#elif defined(__hpux) || defined(__hpux__)
|
|
||||||
# define PLATFORM_ID "HP-UX"
|
|
||||||
|
|
||||||
#elif defined(__HAIKU__)
|
|
||||||
# define PLATFORM_ID "Haiku"
|
|
||||||
|
|
||||||
#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
|
|
||||||
# define PLATFORM_ID "BeOS"
|
|
||||||
|
|
||||||
#elif defined(__QNX__) || defined(__QNXNTO__)
|
|
||||||
# define PLATFORM_ID "QNX"
|
|
||||||
|
|
||||||
#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
|
|
||||||
# define PLATFORM_ID "Tru64"
|
|
||||||
|
|
||||||
#elif defined(__riscos) || defined(__riscos__)
|
|
||||||
# define PLATFORM_ID "RISCos"
|
|
||||||
|
|
||||||
#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
|
|
||||||
# define PLATFORM_ID "SINIX"
|
|
||||||
|
|
||||||
#elif defined(__UNIX_SV__)
|
|
||||||
# define PLATFORM_ID "UNIX_SV"
|
|
||||||
|
|
||||||
#elif defined(__bsdos__)
|
|
||||||
# define PLATFORM_ID "BSDOS"
|
|
||||||
|
|
||||||
#elif defined(_MPRAS) || defined(MPRAS)
|
|
||||||
# define PLATFORM_ID "MP-RAS"
|
|
||||||
|
|
||||||
#elif defined(__osf) || defined(__osf__)
|
|
||||||
# define PLATFORM_ID "OSF1"
|
|
||||||
|
|
||||||
#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
|
|
||||||
# define PLATFORM_ID "SCO_SV"
|
|
||||||
|
|
||||||
#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
|
|
||||||
# define PLATFORM_ID "ULTRIX"
|
|
||||||
|
|
||||||
#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
|
|
||||||
# define PLATFORM_ID "Xenix"
|
|
||||||
|
|
||||||
#elif defined(__WATCOMC__)
|
|
||||||
# if defined(__LINUX__)
|
|
||||||
# define PLATFORM_ID "Linux"
|
|
||||||
|
|
||||||
# elif defined(__DOS__)
|
|
||||||
# define PLATFORM_ID "DOS"
|
|
||||||
|
|
||||||
# elif defined(__OS2__)
|
|
||||||
# define PLATFORM_ID "OS2"
|
|
||||||
|
|
||||||
# elif defined(__WINDOWS__)
|
|
||||||
# define PLATFORM_ID "Windows3x"
|
|
||||||
|
|
||||||
# elif defined(__VXWORKS__)
|
|
||||||
# define PLATFORM_ID "VxWorks"
|
|
||||||
|
|
||||||
# else /* unknown platform */
|
|
||||||
# define PLATFORM_ID
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(__INTEGRITY)
|
|
||||||
# if defined(INT_178B)
|
|
||||||
# define PLATFORM_ID "Integrity178"
|
|
||||||
|
|
||||||
# else /* regular Integrity */
|
|
||||||
# define PLATFORM_ID "Integrity"
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# elif defined(_ADI_COMPILER)
|
|
||||||
# define PLATFORM_ID "ADSP"
|
|
||||||
|
|
||||||
#else /* unknown platform */
|
|
||||||
# define PLATFORM_ID
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* For windows compilers MSVC and Intel we can determine
|
|
||||||
the architecture of the compiler being used. This is because
|
|
||||||
the compilers do not have flags that can change the architecture,
|
|
||||||
but rather depend on which compiler is being used
|
|
||||||
*/
|
|
||||||
#if defined(_WIN32) && defined(_MSC_VER)
|
|
||||||
# if defined(_M_IA64)
|
|
||||||
# define ARCHITECTURE_ID "IA64"
|
|
||||||
|
|
||||||
# elif defined(_M_ARM64EC)
|
|
||||||
# define ARCHITECTURE_ID "ARM64EC"
|
|
||||||
|
|
||||||
# elif defined(_M_X64) || defined(_M_AMD64)
|
|
||||||
# define ARCHITECTURE_ID "x64"
|
|
||||||
|
|
||||||
# elif defined(_M_IX86)
|
|
||||||
# define ARCHITECTURE_ID "X86"
|
|
||||||
|
|
||||||
# elif defined(_M_ARM64)
|
|
||||||
# define ARCHITECTURE_ID "ARM64"
|
|
||||||
|
|
||||||
# elif defined(_M_ARM)
|
|
||||||
# if _M_ARM == 4
|
|
||||||
# define ARCHITECTURE_ID "ARMV4I"
|
|
||||||
# elif _M_ARM == 5
|
|
||||||
# define ARCHITECTURE_ID "ARMV5I"
|
|
||||||
# else
|
|
||||||
# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# elif defined(_M_MIPS)
|
|
||||||
# define ARCHITECTURE_ID "MIPS"
|
|
||||||
|
|
||||||
# elif defined(_M_SH)
|
|
||||||
# define ARCHITECTURE_ID "SHx"
|
|
||||||
|
|
||||||
# else /* unknown architecture */
|
|
||||||
# define ARCHITECTURE_ID ""
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(__WATCOMC__)
|
|
||||||
# if defined(_M_I86)
|
|
||||||
# define ARCHITECTURE_ID "I86"
|
|
||||||
|
|
||||||
# elif defined(_M_IX86)
|
|
||||||
# define ARCHITECTURE_ID "X86"
|
|
||||||
|
|
||||||
# else /* unknown architecture */
|
|
||||||
# define ARCHITECTURE_ID ""
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
|
|
||||||
# if defined(__ICCARM__)
|
|
||||||
# define ARCHITECTURE_ID "ARM"
|
|
||||||
|
|
||||||
# elif defined(__ICCRX__)
|
|
||||||
# define ARCHITECTURE_ID "RX"
|
|
||||||
|
|
||||||
# elif defined(__ICCRH850__)
|
|
||||||
# define ARCHITECTURE_ID "RH850"
|
|
||||||
|
|
||||||
# elif defined(__ICCRL78__)
|
|
||||||
# define ARCHITECTURE_ID "RL78"
|
|
||||||
|
|
||||||
# elif defined(__ICCRISCV__)
|
|
||||||
# define ARCHITECTURE_ID "RISCV"
|
|
||||||
|
|
||||||
# elif defined(__ICCAVR__)
|
|
||||||
# define ARCHITECTURE_ID "AVR"
|
|
||||||
|
|
||||||
# elif defined(__ICC430__)
|
|
||||||
# define ARCHITECTURE_ID "MSP430"
|
|
||||||
|
|
||||||
# elif defined(__ICCV850__)
|
|
||||||
# define ARCHITECTURE_ID "V850"
|
|
||||||
|
|
||||||
# elif defined(__ICC8051__)
|
|
||||||
# define ARCHITECTURE_ID "8051"
|
|
||||||
|
|
||||||
# elif defined(__ICCSTM8__)
|
|
||||||
# define ARCHITECTURE_ID "STM8"
|
|
||||||
|
|
||||||
# else /* unknown architecture */
|
|
||||||
# define ARCHITECTURE_ID ""
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(__ghs__)
|
|
||||||
# if defined(__PPC64__)
|
|
||||||
# define ARCHITECTURE_ID "PPC64"
|
|
||||||
|
|
||||||
# elif defined(__ppc__)
|
|
||||||
# define ARCHITECTURE_ID "PPC"
|
|
||||||
|
|
||||||
# elif defined(__ARM__)
|
|
||||||
# define ARCHITECTURE_ID "ARM"
|
|
||||||
|
|
||||||
# elif defined(__x86_64__)
|
|
||||||
# define ARCHITECTURE_ID "x64"
|
|
||||||
|
|
||||||
# elif defined(__i386__)
|
|
||||||
# define ARCHITECTURE_ID "X86"
|
|
||||||
|
|
||||||
# else /* unknown architecture */
|
|
||||||
# define ARCHITECTURE_ID ""
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined(__TI_COMPILER_VERSION__)
|
|
||||||
# if defined(__TI_ARM__)
|
|
||||||
# define ARCHITECTURE_ID "ARM"
|
|
||||||
|
|
||||||
# elif defined(__MSP430__)
|
|
||||||
# define ARCHITECTURE_ID "MSP430"
|
|
||||||
|
|
||||||
# elif defined(__TMS320C28XX__)
|
|
||||||
# define ARCHITECTURE_ID "TMS320C28x"
|
|
||||||
|
|
||||||
# elif defined(__TMS320C6X__) || defined(_TMS320C6X)
|
|
||||||
# define ARCHITECTURE_ID "TMS320C6x"
|
|
||||||
|
|
||||||
# else /* unknown architecture */
|
|
||||||
# define ARCHITECTURE_ID ""
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# elif defined(__ADSPSHARC__)
|
|
||||||
# define ARCHITECTURE_ID "SHARC"
|
|
||||||
|
|
||||||
# elif defined(__ADSPBLACKFIN__)
|
|
||||||
# define ARCHITECTURE_ID "Blackfin"
|
|
||||||
|
|
||||||
#elif defined(__TASKING__)
|
|
||||||
|
|
||||||
# if defined(__CTC__) || defined(__CPTC__)
|
|
||||||
# define ARCHITECTURE_ID "TriCore"
|
|
||||||
|
|
||||||
# elif defined(__CMCS__)
|
|
||||||
# define ARCHITECTURE_ID "MCS"
|
|
||||||
|
|
||||||
# elif defined(__CARM__)
|
|
||||||
# define ARCHITECTURE_ID "ARM"
|
|
||||||
|
|
||||||
# elif defined(__CARC__)
|
|
||||||
# define ARCHITECTURE_ID "ARC"
|
|
||||||
|
|
||||||
# elif defined(__C51__)
|
|
||||||
# define ARCHITECTURE_ID "8051"
|
|
||||||
|
|
||||||
# elif defined(__CPCP__)
|
|
||||||
# define ARCHITECTURE_ID "PCP"
|
|
||||||
|
|
||||||
# else
|
|
||||||
# define ARCHITECTURE_ID ""
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#else
|
|
||||||
# define ARCHITECTURE_ID
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Convert integer to decimal digit literals. */
|
|
||||||
#define DEC(n) \
|
|
||||||
('0' + (((n) / 10000000)%10)), \
|
|
||||||
('0' + (((n) / 1000000)%10)), \
|
|
||||||
('0' + (((n) / 100000)%10)), \
|
|
||||||
('0' + (((n) / 10000)%10)), \
|
|
||||||
('0' + (((n) / 1000)%10)), \
|
|
||||||
('0' + (((n) / 100)%10)), \
|
|
||||||
('0' + (((n) / 10)%10)), \
|
|
||||||
('0' + ((n) % 10))
|
|
||||||
|
|
||||||
/* Convert integer to hex digit literals. */
|
|
||||||
#define HEX(n) \
|
|
||||||
('0' + ((n)>>28 & 0xF)), \
|
|
||||||
('0' + ((n)>>24 & 0xF)), \
|
|
||||||
('0' + ((n)>>20 & 0xF)), \
|
|
||||||
('0' + ((n)>>16 & 0xF)), \
|
|
||||||
('0' + ((n)>>12 & 0xF)), \
|
|
||||||
('0' + ((n)>>8 & 0xF)), \
|
|
||||||
('0' + ((n)>>4 & 0xF)), \
|
|
||||||
('0' + ((n) & 0xF))
|
|
||||||
|
|
||||||
/* Construct a string literal encoding the version number. */
|
|
||||||
#ifdef COMPILER_VERSION
|
|
||||||
char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]";
|
|
||||||
|
|
||||||
/* Construct a string literal encoding the version number components. */
|
|
||||||
#elif defined(COMPILER_VERSION_MAJOR)
|
|
||||||
char const info_version[] = {
|
|
||||||
'I', 'N', 'F', 'O', ':',
|
|
||||||
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
|
|
||||||
COMPILER_VERSION_MAJOR,
|
|
||||||
# ifdef COMPILER_VERSION_MINOR
|
|
||||||
'.', COMPILER_VERSION_MINOR,
|
|
||||||
# ifdef COMPILER_VERSION_PATCH
|
|
||||||
'.', COMPILER_VERSION_PATCH,
|
|
||||||
# ifdef COMPILER_VERSION_TWEAK
|
|
||||||
'.', COMPILER_VERSION_TWEAK,
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
']','\0'};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Construct a string literal encoding the internal version number. */
|
|
||||||
#ifdef COMPILER_VERSION_INTERNAL
|
|
||||||
char const info_version_internal[] = {
|
|
||||||
'I', 'N', 'F', 'O', ':',
|
|
||||||
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
|
|
||||||
'i','n','t','e','r','n','a','l','[',
|
|
||||||
COMPILER_VERSION_INTERNAL,']','\0'};
|
|
||||||
#elif defined(COMPILER_VERSION_INTERNAL_STR)
|
|
||||||
char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]";
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Construct a string literal encoding the version number components. */
|
|
||||||
#ifdef SIMULATE_VERSION_MAJOR
|
|
||||||
char const info_simulate_version[] = {
|
|
||||||
'I', 'N', 'F', 'O', ':',
|
|
||||||
's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
|
|
||||||
SIMULATE_VERSION_MAJOR,
|
|
||||||
# ifdef SIMULATE_VERSION_MINOR
|
|
||||||
'.', SIMULATE_VERSION_MINOR,
|
|
||||||
# ifdef SIMULATE_VERSION_PATCH
|
|
||||||
'.', SIMULATE_VERSION_PATCH,
|
|
||||||
# ifdef SIMULATE_VERSION_TWEAK
|
|
||||||
'.', SIMULATE_VERSION_TWEAK,
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
']','\0'};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Construct the string literal in pieces to prevent the source from
|
|
||||||
getting matched. Store it in a pointer rather than an array
|
|
||||||
because some compilers will just produce instructions to fill the
|
|
||||||
array rather than assigning a pointer to a static array. */
|
|
||||||
char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
|
|
||||||
char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L
|
|
||||||
# if defined(__INTEL_CXX11_MODE__)
|
|
||||||
# if defined(__cpp_aggregate_nsdmi)
|
|
||||||
# define CXX_STD 201402L
|
|
||||||
# else
|
|
||||||
# define CXX_STD 201103L
|
|
||||||
# endif
|
|
||||||
# else
|
|
||||||
# define CXX_STD 199711L
|
|
||||||
# endif
|
|
||||||
#elif defined(_MSC_VER) && defined(_MSVC_LANG)
|
|
||||||
# define CXX_STD _MSVC_LANG
|
|
||||||
#else
|
|
||||||
# define CXX_STD __cplusplus
|
|
||||||
#endif
|
|
||||||
|
|
||||||
const char* info_language_standard_default = "INFO" ":" "standard_default["
|
|
||||||
#if CXX_STD > 202002L
|
|
||||||
"23"
|
|
||||||
#elif CXX_STD > 201703L
|
|
||||||
"20"
|
|
||||||
#elif CXX_STD >= 201703L
|
|
||||||
"17"
|
|
||||||
#elif CXX_STD >= 201402L
|
|
||||||
"14"
|
|
||||||
#elif CXX_STD >= 201103L
|
|
||||||
"11"
|
|
||||||
#else
|
|
||||||
"98"
|
|
||||||
#endif
|
|
||||||
"]";
|
|
||||||
|
|
||||||
const char* info_language_extensions_default = "INFO" ":" "extensions_default["
|
|
||||||
#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \
|
|
||||||
defined(__TI_COMPILER_VERSION__)) && \
|
|
||||||
!defined(__STRICT_ANSI__)
|
|
||||||
"ON"
|
|
||||||
#else
|
|
||||||
"OFF"
|
|
||||||
#endif
|
|
||||||
"]";
|
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
int main(int argc, char* argv[])
|
|
||||||
{
|
|
||||||
int require = 0;
|
|
||||||
require += info_compiler[argc];
|
|
||||||
require += info_platform[argc];
|
|
||||||
require += info_arch[argc];
|
|
||||||
#ifdef COMPILER_VERSION_MAJOR
|
|
||||||
require += info_version[argc];
|
|
||||||
#endif
|
|
||||||
#ifdef COMPILER_VERSION_INTERNAL
|
|
||||||
require += info_version_internal[argc];
|
|
||||||
#endif
|
|
||||||
#ifdef SIMULATE_ID
|
|
||||||
require += info_simulate[argc];
|
|
||||||
#endif
|
|
||||||
#ifdef SIMULATE_VERSION_MAJOR
|
|
||||||
require += info_simulate_version[argc];
|
|
||||||
#endif
|
|
||||||
#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
|
|
||||||
require += info_cray[argc];
|
|
||||||
#endif
|
|
||||||
require += info_language_standard_default[argc];
|
|
||||||
require += info_language_extensions_default[argc];
|
|
||||||
(void)argv;
|
|
||||||
return require;
|
|
||||||
}
|
|
||||||
Binary file not shown.
@ -1,15 +0,0 @@
|
|||||||
set(CMAKE_HOST_SYSTEM "Windows-10.0.26200")
|
|
||||||
set(CMAKE_HOST_SYSTEM_NAME "Windows")
|
|
||||||
set(CMAKE_HOST_SYSTEM_VERSION "10.0.26200")
|
|
||||||
set(CMAKE_HOST_SYSTEM_PROCESSOR "AMD64")
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
set(CMAKE_SYSTEM "Generic")
|
|
||||||
set(CMAKE_SYSTEM_NAME "Generic")
|
|
||||||
set(CMAKE_SYSTEM_VERSION "")
|
|
||||||
set(CMAKE_SYSTEM_PROCESSOR "arm")
|
|
||||||
|
|
||||||
set(CMAKE_CROSSCOMPILING "TRUE")
|
|
||||||
|
|
||||||
set(CMAKE_SYSTEM_LOADED 1)
|
|
||||||
@ -1,453 +0,0 @@
|
|||||||
|
|
||||||
---
|
|
||||||
events:
|
|
||||||
-
|
|
||||||
kind: "message-v1"
|
|
||||||
backtrace:
|
|
||||||
- "C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeDetermineSystem.cmake:228 (message)"
|
|
||||||
- "CMakeLists.txt:31 (project)"
|
|
||||||
message: |
|
|
||||||
The target system is: Generic - - arm
|
|
||||||
The host system is: Windows - 10.0.26100 -
|
|
||||||
-
|
|
||||||
kind: "message-v1"
|
|
||||||
backtrace:
|
|
||||||
- "C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeDetermineCompilerId.cmake:17 (message)"
|
|
||||||
- "C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)"
|
|
||||||
- "C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeDetermineCCompiler.cmake:123 (CMAKE_DETERMINE_COMPILER_ID)"
|
|
||||||
- "CMakeLists.txt:31 (project)"
|
|
||||||
message: |
|
|
||||||
Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
|
|
||||||
Compiler: C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/arm-none-eabi-gcc.exe
|
|
||||||
Build flags: -mcpu=cortex-m4;-mfpu=fpv4-sp-d16;-mfloat-abi=hard;-Wall;-Wextra;-Wpedantic;-fdata-sections;-ffunction-sections
|
|
||||||
Id flags:
|
|
||||||
|
|
||||||
The output was:
|
|
||||||
1
|
|
||||||
C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\\libc.a(libc_a-exit.o): in function `exit':
|
|
||||||
(.text.exit+0x14): undefined reference to `_exit'
|
|
||||||
C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\\libc.a(libc_a-closer.o): in function `_close_r':
|
|
||||||
(.text._close_r+0xc): undefined reference to `_close'
|
|
||||||
C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\\libc.a(libc_a-lseekr.o): in function `_lseek_r':
|
|
||||||
(.text._lseek_r+0x10): undefined reference to `_lseek'
|
|
||||||
C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\\libc.a(libc_a-readr.o): in function `_read_r':
|
|
||||||
(.text._read_r+0x10): undefined reference to `_read'
|
|
||||||
C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\\libc.a(libc_a-writer.o): in function `_write_r':
|
|
||||||
(.text._write_r+0x10): undefined reference to `_write'
|
|
||||||
C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\\libc.a(libc_a-sbrkr.o): in function `_sbrk_r':
|
|
||||||
(.text._sbrk_r+0xc): undefined reference to `_sbrk'
|
|
||||||
collect2.exe: error: ld returned 1 exit status
|
|
||||||
|
|
||||||
|
|
||||||
-
|
|
||||||
kind: "message-v1"
|
|
||||||
backtrace:
|
|
||||||
- "C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeDetermineCompilerId.cmake:17 (message)"
|
|
||||||
- "C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)"
|
|
||||||
- "C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeDetermineCCompiler.cmake:123 (CMAKE_DETERMINE_COMPILER_ID)"
|
|
||||||
- "CMakeLists.txt:31 (project)"
|
|
||||||
message: |
|
|
||||||
Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
|
|
||||||
Compiler: C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/arm-none-eabi-gcc.exe
|
|
||||||
Build flags: -mcpu=cortex-m4;-mfpu=fpv4-sp-d16;-mfloat-abi=hard;-Wall;-Wextra;-Wpedantic;-fdata-sections;-ffunction-sections
|
|
||||||
Id flags: -c
|
|
||||||
|
|
||||||
The output was:
|
|
||||||
0
|
|
||||||
|
|
||||||
|
|
||||||
Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.o"
|
|
||||||
|
|
||||||
The C compiler identification is GNU, found in:
|
|
||||||
C:/Users/bico/Desktop/stm32f407vet6_cmake/stm32f407vet6_cmake/CMakeFiles/3.28.1/CompilerIdC/CMakeCCompilerId.o
|
|
||||||
|
|
||||||
-
|
|
||||||
kind: "message-v1"
|
|
||||||
backtrace:
|
|
||||||
- "C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeDetermineCompilerId.cmake:17 (message)"
|
|
||||||
- "C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)"
|
|
||||||
- "C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeDetermineCXXCompiler.cmake:126 (CMAKE_DETERMINE_COMPILER_ID)"
|
|
||||||
- "CMakeLists.txt:31 (project)"
|
|
||||||
message: |
|
|
||||||
Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
|
|
||||||
Compiler: C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/arm-none-eabi-g++.exe
|
|
||||||
Build flags: -mcpu=cortex-m4;-mfpu=fpv4-sp-d16;-mfloat-abi=hard;-Wall;-Wextra;-Wpedantic;-fdata-sections;-ffunction-sections;-fno-rtti;-fno-exceptions;-fno-threadsafe-statics
|
|
||||||
Id flags:
|
|
||||||
|
|
||||||
The output was:
|
|
||||||
1
|
|
||||||
C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\\libc.a(libc_a-exit.o): in function `exit':
|
|
||||||
(.text.exit+0x14): undefined reference to `_exit'
|
|
||||||
C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\\libc.a(libc_a-closer.o): in function `_close_r':
|
|
||||||
(.text._close_r+0xc): undefined reference to `_close'
|
|
||||||
C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\\libc.a(libc_a-lseekr.o): in function `_lseek_r':
|
|
||||||
(.text._lseek_r+0x10): undefined reference to `_lseek'
|
|
||||||
C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\\libc.a(libc_a-readr.o): in function `_read_r':
|
|
||||||
(.text._read_r+0x10): undefined reference to `_read'
|
|
||||||
C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\\libc.a(libc_a-writer.o): in function `_write_r':
|
|
||||||
(.text._write_r+0x10): undefined reference to `_write'
|
|
||||||
C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\\libc.a(libc_a-sbrkr.o): in function `_sbrk_r':
|
|
||||||
(.text._sbrk_r+0xc): undefined reference to `_sbrk'
|
|
||||||
collect2.exe: error: ld returned 1 exit status
|
|
||||||
|
|
||||||
|
|
||||||
-
|
|
||||||
kind: "message-v1"
|
|
||||||
backtrace:
|
|
||||||
- "C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeDetermineCompilerId.cmake:17 (message)"
|
|
||||||
- "C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)"
|
|
||||||
- "C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeDetermineCXXCompiler.cmake:126 (CMAKE_DETERMINE_COMPILER_ID)"
|
|
||||||
- "CMakeLists.txt:31 (project)"
|
|
||||||
message: |
|
|
||||||
Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
|
|
||||||
Compiler: C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/arm-none-eabi-g++.exe
|
|
||||||
Build flags: -mcpu=cortex-m4;-mfpu=fpv4-sp-d16;-mfloat-abi=hard;-Wall;-Wextra;-Wpedantic;-fdata-sections;-ffunction-sections;-fno-rtti;-fno-exceptions;-fno-threadsafe-statics
|
|
||||||
Id flags: -c
|
|
||||||
|
|
||||||
The output was:
|
|
||||||
0
|
|
||||||
|
|
||||||
|
|
||||||
Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CMakeCXXCompilerId.o"
|
|
||||||
|
|
||||||
The CXX compiler identification is GNU, found in:
|
|
||||||
C:/Users/bico/Desktop/stm32f407vet6_cmake/stm32f407vet6_cmake/CMakeFiles/3.28.1/CompilerIdCXX/CMakeCXXCompilerId.o
|
|
||||||
|
|
||||||
-
|
|
||||||
kind: "try_compile-v1"
|
|
||||||
backtrace:
|
|
||||||
- "C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeDetermineCompilerABI.cmake:57 (try_compile)"
|
|
||||||
- "C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
|
|
||||||
- "CMakeLists.txt:31 (project)"
|
|
||||||
checks:
|
|
||||||
- "Detecting C compiler ABI info"
|
|
||||||
directories:
|
|
||||||
source: "C:/Users/bico/Desktop/stm32f407vet6_cmake/stm32f407vet6_cmake/CMakeFiles/CMakeScratch/TryCompile-8kbdvz"
|
|
||||||
binary: "C:/Users/bico/Desktop/stm32f407vet6_cmake/stm32f407vet6_cmake/CMakeFiles/CMakeScratch/TryCompile-8kbdvz"
|
|
||||||
cmakeVariables:
|
|
||||||
CMAKE_C_FLAGS: " -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections"
|
|
||||||
CMAKE_C_FLAGS_DEBUG: "-O0 -g3"
|
|
||||||
CMAKE_EXE_LINKER_FLAGS: ""
|
|
||||||
buildResult:
|
|
||||||
variable: "CMAKE_C_ABI_COMPILED"
|
|
||||||
cached: true
|
|
||||||
stdout: |
|
|
||||||
Change Dir: 'C:/Users/bico/Desktop/stm32f407vet6_cmake/stm32f407vet6_cmake/CMakeFiles/CMakeScratch/TryCompile-8kbdvz'
|
|
||||||
|
|
||||||
Run Build Command(s): C:/ST/STM32CubeCLT_1.18.0/Ninja/bin/ninja.exe -v cmTC_275f9
|
|
||||||
[1/2] C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\arm-none-eabi-gcc.exe -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -std=gnu11 -v -o CMakeFiles/cmTC_275f9.dir/CMakeCCompilerABI.c.obj -c C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeCCompilerABI.c
|
|
||||||
Using built-in specs.
|
|
||||||
COLLECT_GCC=C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\arm-none-eabi-gcc.exe
|
|
||||||
Target: arm-none-eabi
|
|
||||||
Configured with: /build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/src/gcc/configure --build=x86_64-linux-gnu --host=x86_64-w64-mingw32 --target=arm-none-eabi --prefix=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/install-mingw --libexecdir=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/install-mingw/lib --infodir=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/install-mingw/share/doc/gcc-arm-none-eabi/info --mandir=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/install-mingw/share/doc/gcc-arm-none-eabi/man --htmldir=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/install-mingw/share/doc/gcc-arm-none-eabi/html --pdfdir=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/install-mingw/share/doc/gcc-arm-none-eabi/pdf --enable-languages=c,c++ --enable-mingw-wildcard --disable-decimal-float --disable-libffi --disable-libgomp --disable-libmudflap --disable-libquadmath --disable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-tls --with-gnu-as --with-gnu-ld --with-headers=yes --with-newlib --with-python-dir=share/gcc-arm-none-eabi --with-sysroot=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/install-mingw/arm-none-eabi --with-libiconv-prefix=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/build-mingw/host-libs/usr --with-gmp=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/build-mingw/host-libs/usr --with-mpfr=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/build-mingw/host-libs/usr --with-mpc=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/build-mingw/host-libs/usr --with-isl=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/build-mingw/host-libs/usr --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-pkgversion='GNU Tools for STM32 13.3.rel1.20240926-1715' --with-multilib-list=rmprofile,aprofile
|
|
||||||
Thread model: single
|
|
||||||
Supported LTO compression algorithms: zlib
|
|
||||||
gcc version 13.3.1 20240614 (GNU Tools for STM32 13.3.rel1.20240926-1715)
|
|
||||||
COLLECT_GCC_OPTIONS='-mcpu=cortex-m4' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-std=gnu11' '-v' '-o' 'CMakeFiles/cmTC_275f9.dir/CMakeCCompilerABI.c.obj' '-c' '-mthumb' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp' '-dumpdir' 'CMakeFiles/cmTC_275f9.dir/'
|
|
||||||
C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/cc1.exe -quiet -v -imultilib thumb/v7e-m+fp/hard -iprefix C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../lib/gcc/arm-none-eabi/13.3.1/ -isysroot C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../arm-none-eabi -D__USES_INITFINI__ C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_275f9.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -mlibarch=armv7e-m+fp -march=armv7e-m+fp -Wall -Wextra -Wpedantic -std=gnu11 -version -fdata-sections -ffunction-sections -o C:\\Users\\bico\\AppData\\Local\\Temp\\ccZP8phM.s
|
|
||||||
GNU C11 (GNU Tools for STM32 13.3.rel1.20240926-1715) version 13.3.1 20240614 (arm-none-eabi)
|
|
||||||
compiled by GNU C version 7.3-win32 20180312, GMP version 6.2.1, MPFR version 3.1.6, MPC version 1.0.3, isl version isl-0.15-1-g835ea3a-GMP
|
|
||||||
|
|
||||||
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
|
|
||||||
ignoring nonexistent directory "C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../arm-none-eabi/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/install-mingw/lib/gcc/arm-none-eabi/13.3.1/../../../../include"
|
|
||||||
ignoring nonexistent directory "C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../arm-none-eabi/usr/include"
|
|
||||||
#include "..." search starts here:
|
|
||||||
#include <...> search starts here:
|
|
||||||
C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../lib/gcc/arm-none-eabi/13.3.1/include
|
|
||||||
C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../lib/gcc/arm-none-eabi/13.3.1/include-fixed
|
|
||||||
C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include
|
|
||||||
C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/include
|
|
||||||
C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/include-fixed
|
|
||||||
C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include
|
|
||||||
End of search list.
|
|
||||||
Compiler executable checksum: ff0140b734b22faecf673fec3a6a923f
|
|
||||||
COLLECT_GCC_OPTIONS='-mcpu=cortex-m4' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-std=gnu11' '-v' '-o' 'CMakeFiles/cmTC_275f9.dir/CMakeCCompilerABI.c.obj' '-c' '-mthumb' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp' '-dumpdir' 'CMakeFiles/cmTC_275f9.dir/'
|
|
||||||
C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/as.exe -v -march=armv7e-m+fp -mfloat-abi=hard -mfpu=fpv4-sp-d16 -meabi=5 -o CMakeFiles/cmTC_275f9.dir/CMakeCCompilerABI.c.obj C:\\Users\\bico\\AppData\\Local\\Temp\\ccZP8phM.s
|
|
||||||
GNU assembler version 2.42.0 (arm-none-eabi) using BFD version (GNU Tools for STM32 13.3.rel1.20240926-1715) 2.42.0.20240614
|
|
||||||
COMPILER_PATH=C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/;C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/;C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/
|
|
||||||
LIBRARY_PATH=C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/;C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/;C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../arm-none-eabi/lib/thumb/v7e-m+fp/hard/;C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/;C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/;C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/;C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../arm-none-eabi/lib/
|
|
||||||
COLLECT_GCC_OPTIONS='-mcpu=cortex-m4' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-std=gnu11' '-v' '-o' 'CMakeFiles/cmTC_275f9.dir/CMakeCCompilerABI.c.obj' '-c' '-mthumb' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp' '-dumpdir' 'CMakeFiles/cmTC_275f9.dir/CMakeCCompilerABI.c.'\x0d
|
|
||||||
[2/2] cmd.exe /C "cd . && C:\\ST\\STM32CubeCLT_1.18.0\\CMake\\bin\\cmake.exe -E rm -f libcmTC_275f9.a && C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\arm-none-eabi-ar.exe qc libcmTC_275f9.a CMakeFiles/cmTC_275f9.dir/CMakeCCompilerABI.c.obj && C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\arm-none-eabi-ranlib.exe libcmTC_275f9.a && cd ."
|
|
||||||
|
|
||||||
exitCode: 0
|
|
||||||
-
|
|
||||||
kind: "message-v1"
|
|
||||||
backtrace:
|
|
||||||
- "C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeDetermineCompilerABI.cmake:127 (message)"
|
|
||||||
- "C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
|
|
||||||
- "CMakeLists.txt:31 (project)"
|
|
||||||
message: |
|
|
||||||
Parsed C implicit include dir info: rv=done
|
|
||||||
found start of include info
|
|
||||||
found start of implicit include info
|
|
||||||
add: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/include]
|
|
||||||
add: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/include-fixed]
|
|
||||||
add: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include]
|
|
||||||
add: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/include]
|
|
||||||
add: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/include-fixed]
|
|
||||||
add: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include]
|
|
||||||
end of search list found
|
|
||||||
collapse include dir [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/include] ==> [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/arm-none-eabi/13.3.1/include]
|
|
||||||
collapse include dir [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/include-fixed] ==> [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/arm-none-eabi/13.3.1/include-fixed]
|
|
||||||
collapse include dir [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include] ==> [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/arm-none-eabi/include]
|
|
||||||
collapse include dir [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/include] ==> [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/arm-none-eabi/13.3.1/include]
|
|
||||||
collapse include dir [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/include-fixed] ==> [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/arm-none-eabi/13.3.1/include-fixed]
|
|
||||||
collapse include dir [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include] ==> [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/arm-none-eabi/include]
|
|
||||||
implicit include dirs: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/arm-none-eabi/13.3.1/include;C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/arm-none-eabi/13.3.1/include-fixed;C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/arm-none-eabi/include]
|
|
||||||
|
|
||||||
|
|
||||||
-
|
|
||||||
kind: "message-v1"
|
|
||||||
backtrace:
|
|
||||||
- "C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeDetermineCompilerABI.cmake:159 (message)"
|
|
||||||
- "C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
|
|
||||||
- "CMakeLists.txt:31 (project)"
|
|
||||||
message: |
|
|
||||||
Parsed C implicit link information:
|
|
||||||
link line regex: [^( *|.*[/\\])(arm-none-eabi-g\\+\\+\\.exe|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]
|
|
||||||
ignore line: [Change Dir: 'C:/Users/bico/Desktop/stm32f407vet6_cmake/stm32f407vet6_cmake/CMakeFiles/CMakeScratch/TryCompile-8kbdvz']
|
|
||||||
ignore line: []
|
|
||||||
ignore line: [Run Build Command(s): C:/ST/STM32CubeCLT_1.18.0/Ninja/bin/ninja.exe -v cmTC_275f9]
|
|
||||||
ignore line: [[1/2] C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\arm-none-eabi-gcc.exe -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -std=gnu11 -v -o CMakeFiles/cmTC_275f9.dir/CMakeCCompilerABI.c.obj -c C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeCCompilerABI.c]
|
|
||||||
ignore line: [Using built-in specs.]
|
|
||||||
ignore line: [COLLECT_GCC=C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\arm-none-eabi-gcc.exe]
|
|
||||||
ignore line: [Target: arm-none-eabi]
|
|
||||||
ignore line: [Configured with: /build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/src/gcc/configure --build=x86_64-linux-gnu --host=x86_64-w64-mingw32 --target=arm-none-eabi --prefix=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/install-mingw --libexecdir=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/install-mingw/lib --infodir=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/install-mingw/share/doc/gcc-arm-none-eabi/info --mandir=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/install-mingw/share/doc/gcc-arm-none-eabi/man --htmldir=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/install-mingw/share/doc/gcc-arm-none-eabi/html --pdfdir=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/install-mingw/share/doc/gcc-arm-none-eabi/pdf --enable-languages=c,c++ --enable-mingw-wildcard --disable-decimal-float --disable-libffi --disable-libgomp --disable-libmudflap --disable-libquadmath --disable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-tls --with-gnu-as --with-gnu-ld --with-headers=yes --with-newlib --with-python-dir=share/gcc-arm-none-eabi --with-sysroot=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/install-mingw/arm-none-eabi --with-libiconv-prefix=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/build-mingw/host-libs/usr --with-gmp=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/build-mingw/host-libs/usr --with-mpfr=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/build-mingw/host-libs/usr --with-mpc=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/build-mingw/host-libs/usr --with-isl=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/build-mingw/host-libs/usr --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-pkgversion='GNU Tools for STM32 13.3.rel1.20240926-1715' --with-multilib-list=rmprofile,aprofile]
|
|
||||||
ignore line: [Thread model: single]
|
|
||||||
ignore line: [Supported LTO compression algorithms: zlib]
|
|
||||||
ignore line: [gcc version 13.3.1 20240614 (GNU Tools for STM32 13.3.rel1.20240926-1715) ]
|
|
||||||
ignore line: [COLLECT_GCC_OPTIONS='-mcpu=cortex-m4' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-std=gnu11' '-v' '-o' 'CMakeFiles/cmTC_275f9.dir/CMakeCCompilerABI.c.obj' '-c' '-mthumb' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp' '-dumpdir' 'CMakeFiles/cmTC_275f9.dir/']
|
|
||||||
ignore line: [ C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/cc1.exe -quiet -v -imultilib thumb/v7e-m+fp/hard -iprefix C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../lib/gcc/arm-none-eabi/13.3.1/ -isysroot C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../arm-none-eabi -D__USES_INITFINI__ C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_275f9.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -mlibarch=armv7e-m+fp -march=armv7e-m+fp -Wall -Wextra -Wpedantic -std=gnu11 -version -fdata-sections -ffunction-sections -o C:\\Users\\bico\\AppData\\Local\\Temp\\ccZP8phM.s]
|
|
||||||
ignore line: [GNU C11 (GNU Tools for STM32 13.3.rel1.20240926-1715) version 13.3.1 20240614 (arm-none-eabi)]
|
|
||||||
ignore line: [ compiled by GNU C version 7.3-win32 20180312 GMP version 6.2.1 MPFR version 3.1.6 MPC version 1.0.3 isl version isl-0.15-1-g835ea3a-GMP]
|
|
||||||
ignore line: []
|
|
||||||
ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
|
|
||||||
ignore line: [ignoring nonexistent directory "C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../arm-none-eabi/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/install-mingw/lib/gcc/arm-none-eabi/13.3.1/../../../../include"]
|
|
||||||
ignore line: [ignoring nonexistent directory "C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../arm-none-eabi/usr/include"]
|
|
||||||
ignore line: [#include "..." search starts here:]
|
|
||||||
ignore line: [#include <...> search starts here:]
|
|
||||||
ignore line: [ C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../lib/gcc/arm-none-eabi/13.3.1/include]
|
|
||||||
ignore line: [ C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../lib/gcc/arm-none-eabi/13.3.1/include-fixed]
|
|
||||||
ignore line: [ C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include]
|
|
||||||
ignore line: [ C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/include]
|
|
||||||
ignore line: [ C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/include-fixed]
|
|
||||||
ignore line: [ C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include]
|
|
||||||
ignore line: [End of search list.]
|
|
||||||
ignore line: [Compiler executable checksum: ff0140b734b22faecf673fec3a6a923f]
|
|
||||||
ignore line: [COLLECT_GCC_OPTIONS='-mcpu=cortex-m4' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-std=gnu11' '-v' '-o' 'CMakeFiles/cmTC_275f9.dir/CMakeCCompilerABI.c.obj' '-c' '-mthumb' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp' '-dumpdir' 'CMakeFiles/cmTC_275f9.dir/']
|
|
||||||
ignore line: [ C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/as.exe -v -march=armv7e-m+fp -mfloat-abi=hard -mfpu=fpv4-sp-d16 -meabi=5 -o CMakeFiles/cmTC_275f9.dir/CMakeCCompilerABI.c.obj C:\\Users\\bico\\AppData\\Local\\Temp\\ccZP8phM.s]
|
|
||||||
ignore line: [GNU assembler version 2.42.0 (arm-none-eabi) using BFD version (GNU Tools for STM32 13.3.rel1.20240926-1715) 2.42.0.20240614]
|
|
||||||
ignore line: [COMPILER_PATH=C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/]
|
|
||||||
ignore line: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/]
|
|
||||||
ignore line: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/]
|
|
||||||
ignore line: [LIBRARY_PATH=C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/]
|
|
||||||
ignore line: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/]
|
|
||||||
ignore line: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../arm-none-eabi/lib/thumb/v7e-m+fp/hard/]
|
|
||||||
ignore line: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/]
|
|
||||||
ignore line: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/]
|
|
||||||
ignore line: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/]
|
|
||||||
ignore line: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../arm-none-eabi/lib/]
|
|
||||||
ignore line: [COLLECT_GCC_OPTIONS='-mcpu=cortex-m4' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-std=gnu11' '-v' '-o' 'CMakeFiles/cmTC_275f9.dir/CMakeCCompilerABI.c.obj' '-c' '-mthumb' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp' '-dumpdir' 'CMakeFiles/cmTC_275f9.dir/CMakeCCompilerABI.c.'\x0d]
|
|
||||||
ignore line: [[2/2] cmd.exe /C "cd . && C:\\ST\\STM32CubeCLT_1.18.0\\CMake\\bin\\cmake.exe -E rm -f libcmTC_275f9.a && C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\arm-none-eabi-ar.exe qc libcmTC_275f9.a CMakeFiles/cmTC_275f9.dir/CMakeCCompilerABI.c.obj && C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\arm-none-eabi-ranlib.exe libcmTC_275f9.a && cd ."]
|
|
||||||
ignore line: []
|
|
||||||
ignore line: []
|
|
||||||
implicit libs: []
|
|
||||||
implicit objs: []
|
|
||||||
implicit dirs: []
|
|
||||||
implicit fwks: []
|
|
||||||
|
|
||||||
|
|
||||||
-
|
|
||||||
kind: "try_compile-v1"
|
|
||||||
backtrace:
|
|
||||||
- "C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeDetermineCompilerABI.cmake:57 (try_compile)"
|
|
||||||
- "C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
|
|
||||||
- "CMakeLists.txt:31 (project)"
|
|
||||||
checks:
|
|
||||||
- "Detecting CXX compiler ABI info"
|
|
||||||
directories:
|
|
||||||
source: "C:/Users/bico/Desktop/stm32f407vet6_cmake/stm32f407vet6_cmake/CMakeFiles/CMakeScratch/TryCompile-zzthsu"
|
|
||||||
binary: "C:/Users/bico/Desktop/stm32f407vet6_cmake/stm32f407vet6_cmake/CMakeFiles/CMakeScratch/TryCompile-zzthsu"
|
|
||||||
cmakeVariables:
|
|
||||||
CMAKE_CXX_FLAGS: " -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -fno-rtti -fno-exceptions -fno-threadsafe-statics"
|
|
||||||
CMAKE_CXX_FLAGS_DEBUG: "-O0 -g3"
|
|
||||||
CMAKE_EXE_LINKER_FLAGS: ""
|
|
||||||
buildResult:
|
|
||||||
variable: "CMAKE_CXX_ABI_COMPILED"
|
|
||||||
cached: true
|
|
||||||
stdout: |
|
|
||||||
Change Dir: 'C:/Users/bico/Desktop/stm32f407vet6_cmake/stm32f407vet6_cmake/CMakeFiles/CMakeScratch/TryCompile-zzthsu'
|
|
||||||
|
|
||||||
Run Build Command(s): C:/ST/STM32CubeCLT_1.18.0/Ninja/bin/ninja.exe -v cmTC_5b15b
|
|
||||||
[1/2] C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\arm-none-eabi-g++.exe -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -fno-rtti -fno-exceptions -fno-threadsafe-statics -v -o CMakeFiles/cmTC_5b15b.dir/CMakeCXXCompilerABI.cpp.obj -c C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp
|
|
||||||
Using built-in specs.
|
|
||||||
COLLECT_GCC=C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\arm-none-eabi-g++.exe
|
|
||||||
Target: arm-none-eabi
|
|
||||||
Configured with: /build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/src/gcc/configure --build=x86_64-linux-gnu --host=x86_64-w64-mingw32 --target=arm-none-eabi --prefix=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/install-mingw --libexecdir=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/install-mingw/lib --infodir=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/install-mingw/share/doc/gcc-arm-none-eabi/info --mandir=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/install-mingw/share/doc/gcc-arm-none-eabi/man --htmldir=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/install-mingw/share/doc/gcc-arm-none-eabi/html --pdfdir=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/install-mingw/share/doc/gcc-arm-none-eabi/pdf --enable-languages=c,c++ --enable-mingw-wildcard --disable-decimal-float --disable-libffi --disable-libgomp --disable-libmudflap --disable-libquadmath --disable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-tls --with-gnu-as --with-gnu-ld --with-headers=yes --with-newlib --with-python-dir=share/gcc-arm-none-eabi --with-sysroot=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/install-mingw/arm-none-eabi --with-libiconv-prefix=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/build-mingw/host-libs/usr --with-gmp=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/build-mingw/host-libs/usr --with-mpfr=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/build-mingw/host-libs/usr --with-mpc=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/build-mingw/host-libs/usr --with-isl=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/build-mingw/host-libs/usr --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-pkgversion='GNU Tools for STM32 13.3.rel1.20240926-1715' --with-multilib-list=rmprofile,aprofile
|
|
||||||
Thread model: single
|
|
||||||
Supported LTO compression algorithms: zlib
|
|
||||||
gcc version 13.3.1 20240614 (GNU Tools for STM32 13.3.rel1.20240926-1715)
|
|
||||||
COLLECT_GCC_OPTIONS='-mcpu=cortex-m4' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-fno-rtti' '-fno-exceptions' '-fno-threadsafe-statics' '-v' '-o' 'CMakeFiles/cmTC_5b15b.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-mthumb' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp' '-dumpdir' 'CMakeFiles/cmTC_5b15b.dir/'
|
|
||||||
C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/cc1plus.exe -quiet -v -imultilib thumb/v7e-m+fp/hard -iprefix C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../lib/gcc/arm-none-eabi/13.3.1/ -isysroot C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../arm-none-eabi -D__USES_INITFINI__ C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_5b15b.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -mlibarch=armv7e-m+fp -march=armv7e-m+fp -Wall -Wextra -Wpedantic -version -fdata-sections -ffunction-sections -fno-rtti -fno-exceptions -fno-threadsafe-statics -o C:\\Users\\bico\\AppData\\Local\\Temp\\cc5SIHoa.s
|
|
||||||
GNU C++17 (GNU Tools for STM32 13.3.rel1.20240926-1715) version 13.3.1 20240614 (arm-none-eabi)
|
|
||||||
compiled by GNU C version 7.3-win32 20180312, GMP version 6.2.1, MPFR version 3.1.6, MPC version 1.0.3, isl version isl-0.15-1-g835ea3a-GMP
|
|
||||||
|
|
||||||
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
|
|
||||||
ignoring nonexistent directory "C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../arm-none-eabi/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/install-mingw/lib/gcc/arm-none-eabi/13.3.1/../../../../include"
|
|
||||||
ignoring nonexistent directory "C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../arm-none-eabi/usr/include"
|
|
||||||
#include "..." search starts here:
|
|
||||||
#include <...> search starts here:
|
|
||||||
C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include/c++/13.3.1
|
|
||||||
C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include/c++/13.3.1/arm-none-eabi/thumb/v7e-m+fp/hard
|
|
||||||
C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include/c++/13.3.1/backward
|
|
||||||
C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../lib/gcc/arm-none-eabi/13.3.1/include
|
|
||||||
C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../lib/gcc/arm-none-eabi/13.3.1/include-fixed
|
|
||||||
C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include
|
|
||||||
C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include/c++/13.3.1
|
|
||||||
C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include/c++/13.3.1/arm-none-eabi/thumb/v7e-m+fp/hard
|
|
||||||
C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include/c++/13.3.1/backward
|
|
||||||
C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/include
|
|
||||||
C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/include-fixed
|
|
||||||
C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include
|
|
||||||
End of search list.
|
|
||||||
Compiler executable checksum: 81f15da80051adef2eee7279f6f54e34
|
|
||||||
COLLECT_GCC_OPTIONS='-mcpu=cortex-m4' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-fno-rtti' '-fno-exceptions' '-fno-threadsafe-statics' '-v' '-o' 'CMakeFiles/cmTC_5b15b.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-mthumb' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp' '-dumpdir' 'CMakeFiles/cmTC_5b15b.dir/'
|
|
||||||
C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/as.exe -v -march=armv7e-m+fp -mfloat-abi=hard -mfpu=fpv4-sp-d16 -meabi=5 -o CMakeFiles/cmTC_5b15b.dir/CMakeCXXCompilerABI.cpp.obj C:\\Users\\bico\\AppData\\Local\\Temp\\cc5SIHoa.s
|
|
||||||
GNU assembler version 2.42.0 (arm-none-eabi) using BFD version (GNU Tools for STM32 13.3.rel1.20240926-1715) 2.42.0.20240614
|
|
||||||
COMPILER_PATH=C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/;C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/;C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/
|
|
||||||
LIBRARY_PATH=C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/;C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/;C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../arm-none-eabi/lib/thumb/v7e-m+fp/hard/;C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/;C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/;C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/;C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../arm-none-eabi/lib/\x0d
|
|
||||||
COLLECT_GCC_OPTIONS='-mcpu=cortex-m4' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-fno-rtti' '-fno-exceptions' '-fno-threadsafe-statics' '-v' '-o' 'CMakeFiles/cmTC_5b15b.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-mthumb' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp' '-dumpdir' 'CMakeFiles/cmTC_5b15b.dir/CMakeCXXCompilerABI.cpp.'\x0d
|
|
||||||
[2/2] cmd.exe /C "cd . && C:\\ST\\STM32CubeCLT_1.18.0\\CMake\\bin\\cmake.exe -E rm -f libcmTC_5b15b.a && C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\arm-none-eabi-ar.exe qc libcmTC_5b15b.a CMakeFiles/cmTC_5b15b.dir/CMakeCXXCompilerABI.cpp.obj && C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\arm-none-eabi-ranlib.exe libcmTC_5b15b.a && cd ."
|
|
||||||
|
|
||||||
exitCode: 0
|
|
||||||
-
|
|
||||||
kind: "message-v1"
|
|
||||||
backtrace:
|
|
||||||
- "C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeDetermineCompilerABI.cmake:127 (message)"
|
|
||||||
- "C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
|
|
||||||
- "CMakeLists.txt:31 (project)"
|
|
||||||
message: |
|
|
||||||
Parsed CXX implicit include dir info: rv=done
|
|
||||||
found start of include info
|
|
||||||
found start of implicit include info
|
|
||||||
add: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include/c++/13.3.1]
|
|
||||||
add: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include/c++/13.3.1/arm-none-eabi/thumb/v7e-m+fp/hard]
|
|
||||||
add: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include/c++/13.3.1/backward]
|
|
||||||
add: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/include]
|
|
||||||
add: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/include-fixed]
|
|
||||||
add: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include]
|
|
||||||
add: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include/c++/13.3.1]
|
|
||||||
add: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include/c++/13.3.1/arm-none-eabi/thumb/v7e-m+fp/hard]
|
|
||||||
add: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include/c++/13.3.1/backward]
|
|
||||||
add: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/include]
|
|
||||||
add: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/include-fixed]
|
|
||||||
add: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include]
|
|
||||||
end of search list found
|
|
||||||
collapse include dir [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include/c++/13.3.1] ==> [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/arm-none-eabi/include/c++/13.3.1]
|
|
||||||
collapse include dir [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include/c++/13.3.1/arm-none-eabi/thumb/v7e-m+fp/hard] ==> [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/arm-none-eabi/include/c++/13.3.1/arm-none-eabi/thumb/v7e-m+fp/hard]
|
|
||||||
collapse include dir [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include/c++/13.3.1/backward] ==> [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/arm-none-eabi/include/c++/13.3.1/backward]
|
|
||||||
collapse include dir [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/include] ==> [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/arm-none-eabi/13.3.1/include]
|
|
||||||
collapse include dir [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/include-fixed] ==> [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/arm-none-eabi/13.3.1/include-fixed]
|
|
||||||
collapse include dir [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include] ==> [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/arm-none-eabi/include]
|
|
||||||
collapse include dir [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include/c++/13.3.1] ==> [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/arm-none-eabi/include/c++/13.3.1]
|
|
||||||
collapse include dir [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include/c++/13.3.1/arm-none-eabi/thumb/v7e-m+fp/hard] ==> [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/arm-none-eabi/include/c++/13.3.1/arm-none-eabi/thumb/v7e-m+fp/hard]
|
|
||||||
collapse include dir [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include/c++/13.3.1/backward] ==> [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/arm-none-eabi/include/c++/13.3.1/backward]
|
|
||||||
collapse include dir [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/include] ==> [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/arm-none-eabi/13.3.1/include]
|
|
||||||
collapse include dir [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/include-fixed] ==> [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/arm-none-eabi/13.3.1/include-fixed]
|
|
||||||
collapse include dir [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include] ==> [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/arm-none-eabi/include]
|
|
||||||
implicit include dirs: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/arm-none-eabi/include/c++/13.3.1;C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/arm-none-eabi/include/c++/13.3.1/arm-none-eabi/thumb/v7e-m+fp/hard;C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/arm-none-eabi/include/c++/13.3.1/backward;C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/arm-none-eabi/13.3.1/include;C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/arm-none-eabi/13.3.1/include-fixed;C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/arm-none-eabi/include]
|
|
||||||
|
|
||||||
|
|
||||||
-
|
|
||||||
kind: "message-v1"
|
|
||||||
backtrace:
|
|
||||||
- "C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeDetermineCompilerABI.cmake:159 (message)"
|
|
||||||
- "C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
|
|
||||||
- "CMakeLists.txt:31 (project)"
|
|
||||||
message: |
|
|
||||||
Parsed CXX implicit link information:
|
|
||||||
link line regex: [^( *|.*[/\\])(arm-none-eabi-g\\+\\+\\.exe|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]
|
|
||||||
ignore line: [Change Dir: 'C:/Users/bico/Desktop/stm32f407vet6_cmake/stm32f407vet6_cmake/CMakeFiles/CMakeScratch/TryCompile-zzthsu']
|
|
||||||
ignore line: []
|
|
||||||
ignore line: [Run Build Command(s): C:/ST/STM32CubeCLT_1.18.0/Ninja/bin/ninja.exe -v cmTC_5b15b]
|
|
||||||
ignore line: [[1/2] C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\arm-none-eabi-g++.exe -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -fno-rtti -fno-exceptions -fno-threadsafe-statics -v -o CMakeFiles/cmTC_5b15b.dir/CMakeCXXCompilerABI.cpp.obj -c C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp]
|
|
||||||
ignore line: [Using built-in specs.]
|
|
||||||
ignore line: [COLLECT_GCC=C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\arm-none-eabi-g++.exe]
|
|
||||||
ignore line: [Target: arm-none-eabi]
|
|
||||||
ignore line: [Configured with: /build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/src/gcc/configure --build=x86_64-linux-gnu --host=x86_64-w64-mingw32 --target=arm-none-eabi --prefix=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/install-mingw --libexecdir=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/install-mingw/lib --infodir=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/install-mingw/share/doc/gcc-arm-none-eabi/info --mandir=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/install-mingw/share/doc/gcc-arm-none-eabi/man --htmldir=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/install-mingw/share/doc/gcc-arm-none-eabi/html --pdfdir=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/install-mingw/share/doc/gcc-arm-none-eabi/pdf --enable-languages=c,c++ --enable-mingw-wildcard --disable-decimal-float --disable-libffi --disable-libgomp --disable-libmudflap --disable-libquadmath --disable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-tls --with-gnu-as --with-gnu-ld --with-headers=yes --with-newlib --with-python-dir=share/gcc-arm-none-eabi --with-sysroot=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/install-mingw/arm-none-eabi --with-libiconv-prefix=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/build-mingw/host-libs/usr --with-gmp=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/build-mingw/host-libs/usr --with-mpfr=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/build-mingw/host-libs/usr --with-mpc=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/build-mingw/host-libs/usr --with-isl=/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/build-mingw/host-libs/usr --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-pkgversion='GNU Tools for STM32 13.3.rel1.20240926-1715' --with-multilib-list=rmprofile,aprofile]
|
|
||||||
ignore line: [Thread model: single]
|
|
||||||
ignore line: [Supported LTO compression algorithms: zlib]
|
|
||||||
ignore line: [gcc version 13.3.1 20240614 (GNU Tools for STM32 13.3.rel1.20240926-1715) ]
|
|
||||||
ignore line: [COLLECT_GCC_OPTIONS='-mcpu=cortex-m4' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-fno-rtti' '-fno-exceptions' '-fno-threadsafe-statics' '-v' '-o' 'CMakeFiles/cmTC_5b15b.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-mthumb' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp' '-dumpdir' 'CMakeFiles/cmTC_5b15b.dir/']
|
|
||||||
ignore line: [ C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/cc1plus.exe -quiet -v -imultilib thumb/v7e-m+fp/hard -iprefix C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../lib/gcc/arm-none-eabi/13.3.1/ -isysroot C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../arm-none-eabi -D__USES_INITFINI__ C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_5b15b.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -mlibarch=armv7e-m+fp -march=armv7e-m+fp -Wall -Wextra -Wpedantic -version -fdata-sections -ffunction-sections -fno-rtti -fno-exceptions -fno-threadsafe-statics -o C:\\Users\\bico\\AppData\\Local\\Temp\\cc5SIHoa.s]
|
|
||||||
ignore line: [GNU C++17 (GNU Tools for STM32 13.3.rel1.20240926-1715) version 13.3.1 20240614 (arm-none-eabi)]
|
|
||||||
ignore line: [ compiled by GNU C version 7.3-win32 20180312 GMP version 6.2.1 MPFR version 3.1.6 MPC version 1.0.3 isl version isl-0.15-1-g835ea3a-GMP]
|
|
||||||
ignore line: []
|
|
||||||
ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
|
|
||||||
ignore line: [ignoring nonexistent directory "C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../arm-none-eabi/build/gnu-tools-for-stm32_13.3.rel1.20240926-1715/install-mingw/lib/gcc/arm-none-eabi/13.3.1/../../../../include"]
|
|
||||||
ignore line: [ignoring nonexistent directory "C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../arm-none-eabi/usr/include"]
|
|
||||||
ignore line: [#include "..." search starts here:]
|
|
||||||
ignore line: [#include <...> search starts here:]
|
|
||||||
ignore line: [ C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include/c++/13.3.1]
|
|
||||||
ignore line: [ C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include/c++/13.3.1/arm-none-eabi/thumb/v7e-m+fp/hard]
|
|
||||||
ignore line: [ C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include/c++/13.3.1/backward]
|
|
||||||
ignore line: [ C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../lib/gcc/arm-none-eabi/13.3.1/include]
|
|
||||||
ignore line: [ C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../lib/gcc/arm-none-eabi/13.3.1/include-fixed]
|
|
||||||
ignore line: [ C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include]
|
|
||||||
ignore line: [ C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include/c++/13.3.1]
|
|
||||||
ignore line: [ C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include/c++/13.3.1/arm-none-eabi/thumb/v7e-m+fp/hard]
|
|
||||||
ignore line: [ C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include/c++/13.3.1/backward]
|
|
||||||
ignore line: [ C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/include]
|
|
||||||
ignore line: [ C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/include-fixed]
|
|
||||||
ignore line: [ C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/lib/gcc/../../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/include]
|
|
||||||
ignore line: [End of search list.]
|
|
||||||
ignore line: [Compiler executable checksum: 81f15da80051adef2eee7279f6f54e34]
|
|
||||||
ignore line: [COLLECT_GCC_OPTIONS='-mcpu=cortex-m4' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-fno-rtti' '-fno-exceptions' '-fno-threadsafe-statics' '-v' '-o' 'CMakeFiles/cmTC_5b15b.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-mthumb' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp' '-dumpdir' 'CMakeFiles/cmTC_5b15b.dir/']
|
|
||||||
ignore line: [ C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/as.exe -v -march=armv7e-m+fp -mfloat-abi=hard -mfpu=fpv4-sp-d16 -meabi=5 -o CMakeFiles/cmTC_5b15b.dir/CMakeCXXCompilerABI.cpp.obj C:\\Users\\bico\\AppData\\Local\\Temp\\cc5SIHoa.s]
|
|
||||||
ignore line: [GNU assembler version 2.42.0 (arm-none-eabi) using BFD version (GNU Tools for STM32 13.3.rel1.20240926-1715) 2.42.0.20240614]
|
|
||||||
ignore line: [COMPILER_PATH=C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/]
|
|
||||||
ignore line: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/]
|
|
||||||
ignore line: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/]
|
|
||||||
ignore line: [LIBRARY_PATH=C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/]
|
|
||||||
ignore line: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/]
|
|
||||||
ignore line: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../arm-none-eabi/lib/thumb/v7e-m+fp/hard/]
|
|
||||||
ignore line: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/]
|
|
||||||
ignore line: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/]
|
|
||||||
ignore line: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/]
|
|
||||||
ignore line: [C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/../arm-none-eabi/lib/\x0d]
|
|
||||||
ignore line: [COLLECT_GCC_OPTIONS='-mcpu=cortex-m4' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-fno-rtti' '-fno-exceptions' '-fno-threadsafe-statics' '-v' '-o' 'CMakeFiles/cmTC_5b15b.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-mthumb' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp' '-dumpdir' 'CMakeFiles/cmTC_5b15b.dir/CMakeCXXCompilerABI.cpp.'\x0d]
|
|
||||||
ignore line: [[2/2] cmd.exe /C "cd . && C:\\ST\\STM32CubeCLT_1.18.0\\CMake\\bin\\cmake.exe -E rm -f libcmTC_5b15b.a && C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\arm-none-eabi-ar.exe qc libcmTC_5b15b.a CMakeFiles/cmTC_5b15b.dir/CMakeCXXCompilerABI.cpp.obj && C:\\ST\\STM32CubeCLT_1.18.0\\GNU-tools-for-STM32\\bin\\arm-none-eabi-ranlib.exe libcmTC_5b15b.a && cd ."]
|
|
||||||
ignore line: []
|
|
||||||
ignore line: []
|
|
||||||
implicit libs: []
|
|
||||||
implicit objs: []
|
|
||||||
implicit dirs: []
|
|
||||||
implicit fwks: []
|
|
||||||
|
|
||||||
|
|
||||||
-
|
|
||||||
kind: "message-v1"
|
|
||||||
backtrace:
|
|
||||||
- "C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeDetermineCompilerId.cmake:1131 (message)"
|
|
||||||
- "C:/ST/STM32CubeCLT_1.18.0/CMake/share/cmake-3.28/Modules/CMakeDetermineASMCompiler.cmake:131 (CMAKE_DETERMINE_COMPILER_ID_VENDOR)"
|
|
||||||
- "CMakeLists.txt:35 (enable_language)"
|
|
||||||
message: |
|
|
||||||
Checking whether the ASM compiler is GNU using "--version" matched "(GNU assembler)|(GCC)|(Free Software Foundation)":
|
|
||||||
arm-none-eabi-gcc.exe (GNU Tools for STM32 13.3.rel1.20240926-1715) 13.3.1 20240614
|
|
||||||
Copyright (C) 2023 Free Software Foundation, Inc.
|
|
||||||
This is free software; see the source for copying conditions. There is NO
|
|
||||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
||||||
|
|
||||||
...
|
|
||||||
|
|
||||||
---
|
|
||||||
events:
|
|
||||||
-
|
|
||||||
kind: "message-v1"
|
|
||||||
backtrace:
|
|
||||||
- "C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Lib/site-packages/cmake/data/share/cmake-3.31/Modules/CMakeDetermineSystem.cmake:200 (message)"
|
|
||||||
- "CMakeLists.txt:36 (project)"
|
|
||||||
message: |
|
|
||||||
The target system is: Generic - - arm
|
|
||||||
The host system is: Windows - 10.0.26200 - AMD64
|
|
||||||
...
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
C:/Users/bico/Desktop/stm32f407vet6_cmake/stm32f407vet6_cmake/CMakeFiles/stm32f407vet6_cmake.dir
|
|
||||||
C:/Users/bico/Desktop/stm32f407vet6_cmake/stm32f407vet6_cmake/CMakeFiles/edit_cache.dir
|
|
||||||
C:/Users/bico/Desktop/stm32f407vet6_cmake/stm32f407vet6_cmake/CMakeFiles/rebuild_cache.dir
|
|
||||||
C:/Users/bico/Desktop/stm32f407vet6_cmake/stm32f407vet6_cmake/cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir
|
|
||||||
C:/Users/bico/Desktop/stm32f407vet6_cmake/stm32f407vet6_cmake/cmake/stm32cubemx/CMakeFiles/edit_cache.dir
|
|
||||||
C:/Users/bico/Desktop/stm32f407vet6_cmake/stm32f407vet6_cmake/cmake/stm32cubemx/CMakeFiles/rebuild_cache.dir
|
|
||||||
@ -1 +0,0 @@
|
|||||||
# This file is generated by cmake for dependency checking of the CMakeCache.txt file
|
|
||||||
@ -1,92 +0,0 @@
|
|||||||
# CMAKE generated file: DO NOT EDIT!
|
|
||||||
# Generated by "Ninja" Generator, CMake Version 3.28
|
|
||||||
|
|
||||||
# This file contains all the rules used to get the outputs files
|
|
||||||
# built from the input files.
|
|
||||||
# It is included in the main 'build.ninja'.
|
|
||||||
|
|
||||||
# =============================================================================
|
|
||||||
# Project: stm32f407vet6_cmake
|
|
||||||
# Configurations: Debug
|
|
||||||
# =============================================================================
|
|
||||||
# =============================================================================
|
|
||||||
|
|
||||||
#############################################
|
|
||||||
# Rule for compiling ASM files.
|
|
||||||
|
|
||||||
rule ASM_COMPILER__stm32f407vet6_cmake_unscanned_Debug
|
|
||||||
depfile = $DEP_FILE
|
|
||||||
deps = gcc
|
|
||||||
command = ${LAUNCHER}${CODE_CHECK}C:\ST\STM32CubeCLT_1.18.0\GNU-tools-for-STM32\bin\arm-none-eabi-gcc.exe $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in
|
|
||||||
description = Building ASM object $out
|
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
|
||||||
# Rule for compiling C files.
|
|
||||||
|
|
||||||
rule C_COMPILER__stm32f407vet6_cmake_unscanned_Debug
|
|
||||||
depfile = $DEP_FILE
|
|
||||||
deps = gcc
|
|
||||||
command = ${LAUNCHER}${CODE_CHECK}C:\ST\STM32CubeCLT_1.18.0\GNU-tools-for-STM32\bin\arm-none-eabi-gcc.exe $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in
|
|
||||||
description = Building C object $out
|
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
|
||||||
# Rule for linking C executable.
|
|
||||||
|
|
||||||
rule C_EXECUTABLE_LINKER__stm32f407vet6_cmake_Debug
|
|
||||||
command = cmd.exe /C "$PRE_LINK && C:\ST\STM32CubeCLT_1.18.0\GNU-tools-for-STM32\bin\arm-none-eabi-gcc.exe $FLAGS -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -T "C:/Users/bico/Desktop/stm32f407vet6_cmake/stm32f407vet6_cmake/STM32F407XX_FLASH.ld" --specs=nano.specs -Wl,-Map=stm32f407vet6_cmake.map -Wl,--gc-sections -Wl,--start-group -lc -lm -Wl,--end-group -Wl,--print-memory-usage $LINK_FLAGS $in -o $TARGET_FILE $LINK_PATH $LINK_LIBRARIES && $POST_BUILD"
|
|
||||||
description = Linking C executable $TARGET_FILE
|
|
||||||
restat = $RESTAT
|
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
|
||||||
# Rule for running custom commands.
|
|
||||||
|
|
||||||
rule CUSTOM_COMMAND
|
|
||||||
command = $COMMAND
|
|
||||||
description = $DESC
|
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
|
||||||
# Rule for compiling C files.
|
|
||||||
|
|
||||||
rule C_COMPILER__STM32_Drivers_unscanned_Debug
|
|
||||||
depfile = $DEP_FILE
|
|
||||||
deps = gcc
|
|
||||||
command = ${LAUNCHER}${CODE_CHECK}C:\ST\STM32CubeCLT_1.18.0\GNU-tools-for-STM32\bin\arm-none-eabi-gcc.exe $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in
|
|
||||||
description = Building C object $out
|
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
|
||||||
# Rule for re-running cmake.
|
|
||||||
|
|
||||||
rule RERUN_CMAKE
|
|
||||||
command = C:\ST\STM32CubeCLT_1.18.0\CMake\bin\cmake.exe --regenerate-during-build -SC:\Users\bico\Desktop\stm32f407vet6_cmake\stm32f407vet6_cmake -BC:\Users\bico\Desktop\stm32f407vet6_cmake\stm32f407vet6_cmake
|
|
||||||
description = Re-running CMake...
|
|
||||||
generator = 1
|
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
|
||||||
# Rule for cleaning additional files.
|
|
||||||
|
|
||||||
rule CLEAN_ADDITIONAL
|
|
||||||
command = C:\ST\STM32CubeCLT_1.18.0\CMake\bin\cmake.exe -DCONFIG=$CONFIG -P CMakeFiles\clean_additional.cmake
|
|
||||||
description = Cleaning additional files...
|
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
|
||||||
# Rule for cleaning all built files.
|
|
||||||
|
|
||||||
rule CLEAN
|
|
||||||
command = C:\ST\STM32CubeCLT_1.18.0\Ninja\bin\ninja.exe $FILE_ARG -t clean $TARGETS
|
|
||||||
description = Cleaning all built files...
|
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
|
||||||
# Rule for printing all primary targets available.
|
|
||||||
|
|
||||||
rule HELP
|
|
||||||
command = C:\ST\STM32CubeCLT_1.18.0\Ninja\bin\ninja.exe -t targets
|
|
||||||
description = All primary targets available:
|
|
||||||
|
|
||||||
@ -45,7 +45,7 @@
|
|||||||
/* #define HAL_DAC_MODULE_ENABLED */
|
/* #define HAL_DAC_MODULE_ENABLED */
|
||||||
/* #define HAL_DCMI_MODULE_ENABLED */
|
/* #define HAL_DCMI_MODULE_ENABLED */
|
||||||
/* #define HAL_DMA2D_MODULE_ENABLED */
|
/* #define HAL_DMA2D_MODULE_ENABLED */
|
||||||
/* #define HAL_ETH_MODULE_ENABLED */
|
#define HAL_ETH_MODULE_ENABLED
|
||||||
/* #define HAL_ETH_LEGACY_MODULE_ENABLED */
|
/* #define HAL_ETH_LEGACY_MODULE_ENABLED */
|
||||||
/* #define HAL_NAND_MODULE_ENABLED */
|
/* #define HAL_NAND_MODULE_ENABLED */
|
||||||
/* #define HAL_NOR_MODULE_ENABLED */
|
/* #define HAL_NOR_MODULE_ENABLED */
|
||||||
|
|||||||
@ -10,12 +10,14 @@ target_sources(hal PRIVATE
|
|||||||
Src/hal_delay.c
|
Src/hal_delay.c
|
||||||
Src/hal_uart.c
|
Src/hal_uart.c
|
||||||
Src/hal_spi.c
|
Src/hal_spi.c
|
||||||
|
Src/hal_eth.c
|
||||||
# STM32F4 specific sources
|
# STM32F4 specific sources
|
||||||
Src/arch/stm32f4/hal_stm32f4.c
|
Src/arch/stm32f4/hal_stm32f4.c
|
||||||
Src/arch/stm32f4/hal_stm32f4_gpio.c
|
Src/arch/stm32f4/hal_stm32f4_gpio.c
|
||||||
Src/arch/stm32f4/hal_stm32f4_uart.c
|
Src/arch/stm32f4/hal_stm32f4_uart.c
|
||||||
Src/arch/stm32f4/hal_stm32f4_delay.c
|
Src/arch/stm32f4/hal_stm32f4_delay.c
|
||||||
Src/arch/stm32f4/hal_stm32f4_spi.c
|
Src/arch/stm32f4/hal_stm32f4_spi.c
|
||||||
|
Src/arch/stm32f4/hal_stm32f4_eth.c
|
||||||
)
|
)
|
||||||
|
|
||||||
# Add HAL include directories
|
# Add HAL include directories
|
||||||
|
|||||||
116
HAL/Inc/arch/stm32f4/hal_stm32f4_eth.h
Normal file
116
HAL/Inc/arch/stm32f4/hal_stm32f4_eth.h
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
/* USER CODE BEGIN Header */
|
||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file : hal_stm32f4_eth.h
|
||||||
|
* @brief : STM32F4 specific Ethernet interface header file
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
/* USER CODE END Header */
|
||||||
|
|
||||||
|
#ifndef HAL_STM32F4_ETH_H
|
||||||
|
#define HAL_STM32F4_ETH_H
|
||||||
|
|
||||||
|
#include "../../hal_eth.h"
|
||||||
|
#include "stm32f4xx_hal.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief STM32F4 Ethernet handle structure
|
||||||
|
*/
|
||||||
|
typedef struct {
|
||||||
|
ETH_HandleTypeDef heth; /*!< Ethernet handle */
|
||||||
|
uint8_t initialized; /*!< Initialization flag */
|
||||||
|
hal_eth_phy_addr_t phy_addr; /*!< PHY address */
|
||||||
|
uint32_t rx_packets; /*!< Received packets count */
|
||||||
|
uint32_t tx_packets; /*!< Transmitted packets count */
|
||||||
|
uint32_t rx_errors; /*!< Receive errors count */
|
||||||
|
uint32_t tx_errors; /*!< Transmit errors count */
|
||||||
|
} hal_stm32f4_eth_handle_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Initialize STM32F4 Ethernet module
|
||||||
|
* @param config: Pointer to Ethernet configuration structure
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_stm32f4_eth_init(const hal_eth_config_t* config);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Deinitialize STM32F4 Ethernet module
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_stm32f4_eth_deinit(hal_eth_instance_t instance);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get STM32F4 Ethernet status
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @param status: Pointer to Ethernet status structure
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_stm32f4_eth_get_status(hal_eth_instance_t instance, hal_eth_status_t* status);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Set STM32F4 Ethernet MAC address
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @param mac_addr: Pointer to MAC address structure
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_stm32f4_eth_set_mac_addr(hal_eth_instance_t instance, const hal_eth_mac_addr_t* mac_addr);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get STM32F4 Ethernet MAC address
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @param mac_addr: Pointer to MAC address structure
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_stm32f4_eth_get_mac_addr(hal_eth_instance_t instance, hal_eth_mac_addr_t* mac_addr);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Check STM32F4 Ethernet link status
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @param link_up: Pointer to store link up status
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_stm32f4_eth_check_link(hal_eth_instance_t instance, uint8_t* link_up);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Reset STM32F4 Ethernet PHY
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @param phy_addr: PHY address
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_stm32f4_eth_reset_phy(hal_eth_instance_t instance, hal_eth_phy_addr_t phy_addr);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Read STM32F4 Ethernet PHY register
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @param phy_addr: PHY address
|
||||||
|
* @param reg_addr: Register address
|
||||||
|
* @param value: Pointer to store register value
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_stm32f4_eth_read_phy_reg(hal_eth_instance_t instance, hal_eth_phy_addr_t phy_addr, uint16_t reg_addr, uint16_t* value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Write STM32F4 Ethernet PHY register
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @param phy_addr: PHY address
|
||||||
|
* @param reg_addr: Register address
|
||||||
|
* @param value: Register value
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_stm32f4_eth_write_phy_reg(hal_eth_instance_t instance, hal_eth_phy_addr_t phy_addr, uint16_t reg_addr, uint16_t value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Configure STM32F4 Ethernet GPIO
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_stm32f4_eth_gpio_config(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get STM32F4 Ethernet handle
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @retval Pointer to Ethernet handle structure
|
||||||
|
*/
|
||||||
|
hal_stm32f4_eth_handle_t* hal_stm32f4_eth_get_handle(hal_eth_instance_t instance);
|
||||||
|
|
||||||
|
#endif /* HAL_STM32F4_ETH_H */
|
||||||
160
HAL/Inc/hal_eth.h
Normal file
160
HAL/Inc/hal_eth.h
Normal file
@ -0,0 +1,160 @@
|
|||||||
|
/* USER CODE BEGIN Header */
|
||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file : hal_eth.h
|
||||||
|
* @brief : Hardware Abstraction Layer Ethernet interface header file
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
/* USER CODE END Header */
|
||||||
|
|
||||||
|
#ifndef HAL_ETH_H
|
||||||
|
#define HAL_ETH_H
|
||||||
|
|
||||||
|
#include "hal.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Ethernet instance definitions
|
||||||
|
*/
|
||||||
|
typedef enum {
|
||||||
|
HAL_ETH_INSTANCE_1 = 0, /*!< Ethernet instance 1 */
|
||||||
|
HAL_ETH_INSTANCE_MAX
|
||||||
|
} hal_eth_instance_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Ethernet mode definitions
|
||||||
|
*/
|
||||||
|
typedef enum {
|
||||||
|
HAL_ETH_MODE_HALFDUPLEX = 0, /*!< Half duplex mode */
|
||||||
|
HAL_ETH_MODE_FULLDUPLEX, /*!< Full duplex mode */
|
||||||
|
HAL_ETH_MODE_MAX
|
||||||
|
} hal_eth_mode_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Ethernet speed definitions
|
||||||
|
*/
|
||||||
|
typedef enum {
|
||||||
|
HAL_ETH_SPEED_10MBPS = 0, /*!< 10 Mbps speed */
|
||||||
|
HAL_ETH_SPEED_100MBPS, /*!< 100 Mbps speed */
|
||||||
|
HAL_ETH_SPEED_MAX
|
||||||
|
} hal_eth_speed_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Ethernet PHY address definitions
|
||||||
|
*/
|
||||||
|
typedef uint8_t hal_eth_phy_addr_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Ethernet MAC address structure
|
||||||
|
*/
|
||||||
|
typedef struct {
|
||||||
|
uint8_t byte[6]; /*!< MAC address bytes */
|
||||||
|
} hal_eth_mac_addr_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Ethernet configuration structure
|
||||||
|
*/
|
||||||
|
typedef struct {
|
||||||
|
uint8_t enable; /*!< Ethernet enable flag */
|
||||||
|
hal_eth_instance_t instance; /*!< Ethernet instance */
|
||||||
|
hal_eth_mode_t mode; /*!< Ethernet mode */
|
||||||
|
hal_eth_speed_t speed; /*!< Ethernet speed */
|
||||||
|
hal_eth_phy_addr_t phy_addr; /*!< PHY address */
|
||||||
|
hal_eth_mac_addr_t mac_addr; /*!< MAC address */
|
||||||
|
uint8_t auto_negotiation; /*!< Auto negotiation enable flag */
|
||||||
|
uint8_t interrupt_enable; /*!< Interrupt enable flag */
|
||||||
|
} hal_eth_config_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Ethernet status structure
|
||||||
|
*/
|
||||||
|
typedef struct {
|
||||||
|
uint8_t link_up; /*!< Link up status */
|
||||||
|
uint8_t duplex; /*!< Duplex mode (0: half, 1: full) */
|
||||||
|
uint32_t speed; /*!< Speed in Mbps */
|
||||||
|
uint32_t rx_packets; /*!< Received packets count */
|
||||||
|
uint32_t tx_packets; /*!< Transmitted packets count */
|
||||||
|
uint32_t rx_errors; /*!< Receive errors count */
|
||||||
|
uint32_t tx_errors; /*!< Transmit errors count */
|
||||||
|
} hal_eth_status_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Initialize Ethernet module
|
||||||
|
* @param config: Pointer to Ethernet configuration structure
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_eth_init(const hal_eth_config_t* config);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Deinitialize Ethernet module
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_eth_deinit(hal_eth_instance_t instance);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get Ethernet status
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @param status: Pointer to Ethernet status structure
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_eth_get_status(hal_eth_instance_t instance, hal_eth_status_t* status);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Set Ethernet MAC address
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @param mac_addr: Pointer to MAC address structure
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_eth_set_mac_addr(hal_eth_instance_t instance, const hal_eth_mac_addr_t* mac_addr);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get Ethernet MAC address
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @param mac_addr: Pointer to MAC address structure
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_eth_get_mac_addr(hal_eth_instance_t instance, hal_eth_mac_addr_t* mac_addr);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Check Ethernet link status
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @param link_up: Pointer to store link up status
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_eth_check_link(hal_eth_instance_t instance, uint8_t* link_up);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Reset Ethernet PHY
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @param phy_addr: PHY address
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_eth_reset_phy(hal_eth_instance_t instance, hal_eth_phy_addr_t phy_addr);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Read PHY register
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @param phy_addr: PHY address
|
||||||
|
* @param reg_addr: Register address
|
||||||
|
* @param value: Pointer to store register value
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_eth_read_phy_reg(hal_eth_instance_t instance, hal_eth_phy_addr_t phy_addr, uint16_t reg_addr, uint16_t* value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Write PHY register
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @param phy_addr: PHY address
|
||||||
|
* @param reg_addr: Register address
|
||||||
|
* @param value: Register value
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_eth_write_phy_reg(hal_eth_instance_t instance, hal_eth_phy_addr_t phy_addr, uint16_t reg_addr, uint16_t value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get default Ethernet configuration
|
||||||
|
* @return Pointer to default Ethernet configuration
|
||||||
|
*/
|
||||||
|
const hal_eth_config_t* hal_eth_get_default_config(void);
|
||||||
|
|
||||||
|
#endif /* HAL_ETH_H */
|
||||||
463
HAL/Src/arch/stm32f4/hal_stm32f4_eth.c
Normal file
463
HAL/Src/arch/stm32f4/hal_stm32f4_eth.c
Normal file
@ -0,0 +1,463 @@
|
|||||||
|
/* USER CODE BEGIN Header */
|
||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file : hal_stm32f4_eth.c
|
||||||
|
* @brief : STM32F4 specific Ethernet interface implementation
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
/* USER CODE END Header */
|
||||||
|
|
||||||
|
#include <string.h>
|
||||||
|
#include "hal_stm32f4_eth.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Ethernet handles
|
||||||
|
*/
|
||||||
|
static hal_stm32f4_eth_handle_t eth_handles[HAL_ETH_INSTANCE_MAX];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Configure STM32F4 Ethernet GPIO
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_stm32f4_eth_gpio_config(void)
|
||||||
|
{
|
||||||
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||||
|
|
||||||
|
/* Enable Ethernet GPIO clocks */
|
||||||
|
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||||
|
__HAL_RCC_GPIOB_CLK_ENABLE();
|
||||||
|
__HAL_RCC_GPIOC_CLK_ENABLE();
|
||||||
|
__HAL_RCC_GPIOG_CLK_ENABLE();
|
||||||
|
|
||||||
|
/* Configure ETH_MDIO (PA2) */
|
||||||
|
GPIO_InitStruct.Pin = GPIO_PIN_2;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||||
|
GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
|
||||||
|
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
/* Configure ETH_RMII_REF_CLK (PA1) */
|
||||||
|
GPIO_InitStruct.Pin = GPIO_PIN_1;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||||
|
GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
|
||||||
|
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
/* Configure ETH_RMII_CRS_DV (PA7) */
|
||||||
|
GPIO_InitStruct.Pin = GPIO_PIN_7;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||||
|
GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
|
||||||
|
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
/* Configure ETH_MDC (PC1) */
|
||||||
|
GPIO_InitStruct.Pin = GPIO_PIN_1;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||||
|
GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
|
||||||
|
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
/* Configure ETH_RMII_RXD0 (PC4) */
|
||||||
|
GPIO_InitStruct.Pin = GPIO_PIN_4;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||||
|
GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
|
||||||
|
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
/* Configure ETH_RMII_RXD1 (PC5) */
|
||||||
|
GPIO_InitStruct.Pin = GPIO_PIN_5;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||||
|
GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
|
||||||
|
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
/* Configure ETH_RMII_TX_EN (PB11) */
|
||||||
|
GPIO_InitStruct.Pin = GPIO_PIN_11;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||||
|
GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
|
||||||
|
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
/* Configure ETH_RMII_TXD0 (PB12) */
|
||||||
|
GPIO_InitStruct.Pin = GPIO_PIN_12;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||||
|
GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
|
||||||
|
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
/* Configure ETH_RMII_TXD1 (PB13) */
|
||||||
|
GPIO_InitStruct.Pin = GPIO_PIN_13;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||||
|
GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
|
||||||
|
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
return HAL_RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Initialize STM32F4 Ethernet module
|
||||||
|
* @param config: Pointer to Ethernet configuration structure
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_stm32f4_eth_init(const hal_eth_config_t* config)
|
||||||
|
{
|
||||||
|
if (!config) {
|
||||||
|
return HAL_RET_INVALID_PARAM;
|
||||||
|
}
|
||||||
|
|
||||||
|
hal_eth_instance_t instance = config->instance;
|
||||||
|
if (instance >= HAL_ETH_INSTANCE_MAX) {
|
||||||
|
return HAL_RET_INVALID_PARAM;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Configure GPIO */
|
||||||
|
if (hal_stm32f4_eth_gpio_config() != HAL_RET_OK) {
|
||||||
|
return HAL_RET_INIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Enable Ethernet clock */
|
||||||
|
__HAL_RCC_ETH_CLK_ENABLE();
|
||||||
|
|
||||||
|
/* Reset Ethernet handle */
|
||||||
|
memset(ð_handles[instance], 0, sizeof(hal_stm32f4_eth_handle_t));
|
||||||
|
|
||||||
|
/* Configure Ethernet */
|
||||||
|
eth_handles[instance].heth.Instance = ETH;
|
||||||
|
eth_handles[instance].heth.Init.MACAddr = config->mac_addr.byte;
|
||||||
|
eth_handles[instance].heth.Init.MediaInterface = HAL_ETH_RMII_MODE;
|
||||||
|
eth_handles[instance].heth.Init.TxDesc = 0x20000000;
|
||||||
|
eth_handles[instance].heth.Init.RxDesc = 0x20000800;
|
||||||
|
eth_handles[instance].heth.Init.RxBuffLen = 1524;
|
||||||
|
eth_handles[instance].phy_addr = config->phy_addr;
|
||||||
|
|
||||||
|
/* Initialize Ethernet */
|
||||||
|
if (HAL_ETH_Init(ð_handles[instance].heth) != HAL_OK) {
|
||||||
|
return HAL_RET_INIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Configure PHY */
|
||||||
|
if (hal_stm32f4_eth_reset_phy(instance, config->phy_addr) != HAL_RET_OK) {
|
||||||
|
return HAL_RET_INIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Enable Ethernet interrupts if requested */
|
||||||
|
if (config->interrupt_enable) {
|
||||||
|
HAL_NVIC_SetPriority(ETH_IRQn, 5, 0);
|
||||||
|
HAL_NVIC_EnableIRQ(ETH_IRQn);
|
||||||
|
}
|
||||||
|
|
||||||
|
eth_handles[instance].initialized = 1;
|
||||||
|
return HAL_RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Deinitialize STM32F4 Ethernet module
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_stm32f4_eth_deinit(hal_eth_instance_t instance)
|
||||||
|
{
|
||||||
|
if (instance >= HAL_ETH_INSTANCE_MAX) {
|
||||||
|
return HAL_RET_INVALID_PARAM;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!eth_handles[instance].initialized) {
|
||||||
|
return HAL_RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Disable Ethernet interrupt */
|
||||||
|
HAL_NVIC_DisableIRQ(ETH_IRQn);
|
||||||
|
|
||||||
|
/* Deinitialize Ethernet */
|
||||||
|
if (HAL_ETH_DeInit(ð_handles[instance].heth) != HAL_OK) {
|
||||||
|
return HAL_RET_DEINIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Disable Ethernet clock */
|
||||||
|
__HAL_RCC_ETH_CLK_DISABLE();
|
||||||
|
|
||||||
|
eth_handles[instance].initialized = 0;
|
||||||
|
return HAL_RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get STM32F4 Ethernet status
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @param status: Pointer to Ethernet status structure
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_stm32f4_eth_get_status(hal_eth_instance_t instance, hal_eth_status_t* status)
|
||||||
|
{
|
||||||
|
if (instance >= HAL_ETH_INSTANCE_MAX || !status) {
|
||||||
|
return HAL_RET_INVALID_PARAM;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!eth_handles[instance].initialized) {
|
||||||
|
return HAL_RET_INIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Check link status */
|
||||||
|
uint8_t link_up;
|
||||||
|
if (hal_stm32f4_eth_check_link(instance, &link_up) != HAL_RET_OK) {
|
||||||
|
return HAL_RET_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
status->link_up = link_up;
|
||||||
|
status->rx_packets = eth_handles[instance].rx_packets;
|
||||||
|
status->tx_packets = eth_handles[instance].tx_packets;
|
||||||
|
status->rx_errors = eth_handles[instance].rx_errors;
|
||||||
|
status->tx_errors = eth_handles[instance].tx_errors;
|
||||||
|
|
||||||
|
/* Get speed and duplex mode */
|
||||||
|
if (link_up) {
|
||||||
|
uint16_t phy_status;
|
||||||
|
if (hal_stm32f4_eth_read_phy_reg(instance, eth_handles[instance].phy_addr, 0x01, &phy_status) == HAL_RET_OK) {
|
||||||
|
status->duplex = (phy_status & (1 << 13)) ? 1 : 0;
|
||||||
|
status->speed = (phy_status & (1 << 12)) ? 100 : 10;
|
||||||
|
} else {
|
||||||
|
status->duplex = 0;
|
||||||
|
status->speed = 10;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
status->duplex = 0;
|
||||||
|
status->speed = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return HAL_RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Set STM32F4 Ethernet MAC address
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @param mac_addr: Pointer to MAC address structure
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_stm32f4_eth_set_mac_addr(hal_eth_instance_t instance, const hal_eth_mac_addr_t* mac_addr)
|
||||||
|
{
|
||||||
|
if (instance >= HAL_ETH_INSTANCE_MAX || !mac_addr) {
|
||||||
|
return HAL_RET_INVALID_PARAM;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!eth_handles[instance].initialized) {
|
||||||
|
return HAL_RET_INIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* MAC address is set during initialization, cannot be changed at runtime */
|
||||||
|
memcpy(eth_handles[instance].heth.Init.MACAddr, mac_addr->byte, 6);
|
||||||
|
|
||||||
|
return HAL_RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get STM32F4 Ethernet MAC address
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @param mac_addr: Pointer to MAC address structure
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_stm32f4_eth_get_mac_addr(hal_eth_instance_t instance, hal_eth_mac_addr_t* mac_addr)
|
||||||
|
{
|
||||||
|
if (instance >= HAL_ETH_INSTANCE_MAX || !mac_addr) {
|
||||||
|
return HAL_RET_INVALID_PARAM;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!eth_handles[instance].initialized) {
|
||||||
|
return HAL_RET_INIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Get MAC address from initialization structure */
|
||||||
|
memcpy(mac_addr->byte, eth_handles[instance].heth.Init.MACAddr, 6);
|
||||||
|
|
||||||
|
return HAL_RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Check STM32F4 Ethernet link status
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @param link_up: Pointer to store link up status
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_stm32f4_eth_check_link(hal_eth_instance_t instance, uint8_t* link_up)
|
||||||
|
{
|
||||||
|
if (instance >= HAL_ETH_INSTANCE_MAX || !link_up) {
|
||||||
|
return HAL_RET_INVALID_PARAM;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!eth_handles[instance].initialized) {
|
||||||
|
return HAL_RET_INIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Read PHY status register */
|
||||||
|
uint16_t phy_status;
|
||||||
|
if (hal_stm32f4_eth_read_phy_reg(instance, eth_handles[instance].phy_addr, 0x01, &phy_status) != HAL_RET_OK) {
|
||||||
|
return HAL_RET_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Check link status bit */
|
||||||
|
*link_up = (phy_status & (1 << 2)) ? 1 : 0;
|
||||||
|
|
||||||
|
return HAL_RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Reset STM32F4 Ethernet PHY
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @param phy_addr: PHY address
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_stm32f4_eth_reset_phy(hal_eth_instance_t instance, hal_eth_phy_addr_t phy_addr)
|
||||||
|
{
|
||||||
|
if (instance >= HAL_ETH_INSTANCE_MAX) {
|
||||||
|
return HAL_RET_INVALID_PARAM;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!eth_handles[instance].initialized) {
|
||||||
|
return HAL_RET_INIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
eth_handles[instance].phy_addr = phy_addr;
|
||||||
|
|
||||||
|
/* Reset PHY */
|
||||||
|
uint16_t value = 0x8000;
|
||||||
|
if (hal_stm32f4_eth_write_phy_reg(instance, phy_addr, 0x00, value) != HAL_RET_OK) {
|
||||||
|
return HAL_RET_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Wait for reset to complete */
|
||||||
|
uint32_t timeout = 1000;
|
||||||
|
while (timeout--) {
|
||||||
|
if (hal_stm32f4_eth_read_phy_reg(instance, phy_addr, 0x00, &value) == HAL_RET_OK) {
|
||||||
|
if (!(value & 0x8000)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
HAL_Delay(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (timeout == 0) {
|
||||||
|
return HAL_RET_TIMEOUT;
|
||||||
|
}
|
||||||
|
|
||||||
|
return HAL_RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Read STM32F4 Ethernet PHY register
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @param phy_addr: PHY address
|
||||||
|
* @param reg_addr: Register address
|
||||||
|
* @param value: Pointer to store register value
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_stm32f4_eth_read_phy_reg(hal_eth_instance_t instance, hal_eth_phy_addr_t phy_addr, uint16_t reg_addr, uint16_t* value)
|
||||||
|
{
|
||||||
|
if (instance >= HAL_ETH_INSTANCE_MAX || !value) {
|
||||||
|
return HAL_RET_INVALID_PARAM;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!eth_handles[instance].initialized) {
|
||||||
|
return HAL_RET_INIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint32_t reg_value;
|
||||||
|
if (HAL_ETH_ReadPHYRegister(ð_handles[instance].heth, phy_addr, reg_addr, ®_value) != HAL_OK) {
|
||||||
|
return HAL_RET_ERROR;
|
||||||
|
}
|
||||||
|
*value = (uint16_t)reg_value;
|
||||||
|
|
||||||
|
return HAL_RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Write STM32F4 Ethernet PHY register
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @param phy_addr: PHY address
|
||||||
|
* @param reg_addr: Register address
|
||||||
|
* @param value: Register value
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_stm32f4_eth_write_phy_reg(hal_eth_instance_t instance, hal_eth_phy_addr_t phy_addr, uint16_t reg_addr, uint16_t value)
|
||||||
|
{
|
||||||
|
if (instance >= HAL_ETH_INSTANCE_MAX) {
|
||||||
|
return HAL_RET_INVALID_PARAM;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!eth_handles[instance].initialized) {
|
||||||
|
return HAL_RET_INIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (HAL_ETH_WritePHYRegister(ð_handles[instance].heth, phy_addr, reg_addr, value) != HAL_OK) {
|
||||||
|
return HAL_RET_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
return HAL_RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get STM32F4 Ethernet handle
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @retval Pointer to Ethernet handle structure
|
||||||
|
*/
|
||||||
|
hal_stm32f4_eth_handle_t* hal_stm32f4_eth_get_handle(hal_eth_instance_t instance)
|
||||||
|
{
|
||||||
|
if (instance >= HAL_ETH_INSTANCE_MAX) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!eth_handles[instance].initialized) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ð_handles[instance];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Ethernet interrupt handler
|
||||||
|
*/
|
||||||
|
void ETH_IRQHandler(void)
|
||||||
|
{
|
||||||
|
HAL_ETH_IRQHandler(ð_handles[0].heth);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Ethernet RX callback
|
||||||
|
* @param heth: Ethernet handle
|
||||||
|
*/
|
||||||
|
void HAL_ETH_RxCpltCallback(ETH_HandleTypeDef *heth)
|
||||||
|
{
|
||||||
|
/* Increment received packets count */
|
||||||
|
eth_handles[0].rx_packets++;
|
||||||
|
|
||||||
|
/* Reactivate reception */
|
||||||
|
HAL_ETH_Start_IT(heth);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Ethernet TX callback
|
||||||
|
* @param heth: Ethernet handle
|
||||||
|
*/
|
||||||
|
void HAL_ETH_TxCpltCallback(ETH_HandleTypeDef *heth)
|
||||||
|
{
|
||||||
|
/* Increment transmitted packets count */
|
||||||
|
eth_handles[0].tx_packets++;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Ethernet error callback
|
||||||
|
* @param heth: Ethernet handle
|
||||||
|
*/
|
||||||
|
void HAL_ETH_ErrorCallback(ETH_HandleTypeDef *heth)
|
||||||
|
{
|
||||||
|
/* Increment error count */
|
||||||
|
eth_handles[0].rx_errors++;
|
||||||
|
eth_handles[0].tx_errors++;
|
||||||
|
}
|
||||||
280
HAL/Src/hal_eth.c
Normal file
280
HAL/Src/hal_eth.c
Normal file
@ -0,0 +1,280 @@
|
|||||||
|
/* USER CODE BEGIN Header */
|
||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file : hal_eth.c
|
||||||
|
* @brief : Hardware Abstraction Layer Ethernet interface implementation
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
/* USER CODE END Header */
|
||||||
|
|
||||||
|
#include "hal_eth.h"
|
||||||
|
|
||||||
|
/* Architecture specific header */
|
||||||
|
#if HAL_TARGET_ARCH == HAL_ARCH_STM32F4
|
||||||
|
#include "arch/stm32f4/hal_stm32f4_eth.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Default Ethernet configuration
|
||||||
|
*/
|
||||||
|
static const hal_eth_config_t hal_eth_default_config = {
|
||||||
|
.enable = 1,
|
||||||
|
.instance = HAL_ETH_INSTANCE_1,
|
||||||
|
.mode = HAL_ETH_MODE_FULLDUPLEX,
|
||||||
|
.speed = HAL_ETH_SPEED_100MBPS,
|
||||||
|
.phy_addr = 0,
|
||||||
|
.mac_addr = {
|
||||||
|
.byte = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55}
|
||||||
|
},
|
||||||
|
.auto_negotiation = 1,
|
||||||
|
.interrupt_enable = 1
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Ethernet instance handle
|
||||||
|
*/
|
||||||
|
static struct {
|
||||||
|
hal_eth_config_t config;
|
||||||
|
uint8_t initialized;
|
||||||
|
} hal_eth_instances[HAL_ETH_INSTANCE_MAX];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Initialize Ethernet module
|
||||||
|
* @param config: Pointer to Ethernet configuration structure
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_eth_init(const hal_eth_config_t* config)
|
||||||
|
{
|
||||||
|
if (!config) {
|
||||||
|
return HAL_RET_INVALID_PARAM;
|
||||||
|
}
|
||||||
|
|
||||||
|
hal_eth_instance_t instance = config->instance;
|
||||||
|
if (instance >= HAL_ETH_INSTANCE_MAX) {
|
||||||
|
return HAL_RET_INVALID_PARAM;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Store configuration */
|
||||||
|
hal_eth_instances[instance].config = *config;
|
||||||
|
|
||||||
|
/* Call architecture specific initialization */
|
||||||
|
#if HAL_TARGET_ARCH == HAL_ARCH_STM32F4
|
||||||
|
if (hal_stm32f4_eth_init(config) != HAL_RET_OK) {
|
||||||
|
return HAL_RET_INIT_ERROR;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
return HAL_RET_NOT_SUPPORTED;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
hal_eth_instances[instance].initialized = 1;
|
||||||
|
return HAL_RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Deinitialize Ethernet module
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_eth_deinit(hal_eth_instance_t instance)
|
||||||
|
{
|
||||||
|
if (instance >= HAL_ETH_INSTANCE_MAX) {
|
||||||
|
return HAL_RET_INVALID_PARAM;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!hal_eth_instances[instance].initialized) {
|
||||||
|
return HAL_RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Call architecture specific deinitialization */
|
||||||
|
#if HAL_TARGET_ARCH == HAL_ARCH_STM32F4
|
||||||
|
if (hal_stm32f4_eth_deinit(instance) != HAL_RET_OK) {
|
||||||
|
return HAL_RET_DEINIT_ERROR;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
return HAL_RET_NOT_SUPPORTED;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
hal_eth_instances[instance].initialized = 0;
|
||||||
|
return HAL_RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get Ethernet status
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @param status: Pointer to Ethernet status structure
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_eth_get_status(hal_eth_instance_t instance, hal_eth_status_t* status)
|
||||||
|
{
|
||||||
|
if (instance >= HAL_ETH_INSTANCE_MAX || !status) {
|
||||||
|
return HAL_RET_INVALID_PARAM;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!hal_eth_instances[instance].initialized) {
|
||||||
|
return HAL_RET_INIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Call architecture specific implementation */
|
||||||
|
#if HAL_TARGET_ARCH == HAL_ARCH_STM32F4
|
||||||
|
return hal_stm32f4_eth_get_status(instance, status);
|
||||||
|
#else
|
||||||
|
return HAL_RET_NOT_SUPPORTED;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Set Ethernet MAC address
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @param mac_addr: Pointer to MAC address structure
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_eth_set_mac_addr(hal_eth_instance_t instance, const hal_eth_mac_addr_t* mac_addr)
|
||||||
|
{
|
||||||
|
if (instance >= HAL_ETH_INSTANCE_MAX || !mac_addr) {
|
||||||
|
return HAL_RET_INVALID_PARAM;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!hal_eth_instances[instance].initialized) {
|
||||||
|
return HAL_RET_INIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Call architecture specific implementation */
|
||||||
|
#if HAL_TARGET_ARCH == HAL_ARCH_STM32F4
|
||||||
|
return hal_stm32f4_eth_set_mac_addr(instance, mac_addr);
|
||||||
|
#else
|
||||||
|
return HAL_RET_NOT_SUPPORTED;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get Ethernet MAC address
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @param mac_addr: Pointer to MAC address structure
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_eth_get_mac_addr(hal_eth_instance_t instance, hal_eth_mac_addr_t* mac_addr)
|
||||||
|
{
|
||||||
|
if (instance >= HAL_ETH_INSTANCE_MAX || !mac_addr) {
|
||||||
|
return HAL_RET_INVALID_PARAM;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!hal_eth_instances[instance].initialized) {
|
||||||
|
return HAL_RET_INIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Call architecture specific implementation */
|
||||||
|
#if HAL_TARGET_ARCH == HAL_ARCH_STM32F4
|
||||||
|
return hal_stm32f4_eth_get_mac_addr(instance, mac_addr);
|
||||||
|
#else
|
||||||
|
return HAL_RET_NOT_SUPPORTED;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Check Ethernet link status
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @param link_up: Pointer to store link up status
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_eth_check_link(hal_eth_instance_t instance, uint8_t* link_up)
|
||||||
|
{
|
||||||
|
if (instance >= HAL_ETH_INSTANCE_MAX || !link_up) {
|
||||||
|
return HAL_RET_INVALID_PARAM;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!hal_eth_instances[instance].initialized) {
|
||||||
|
return HAL_RET_INIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Call architecture specific implementation */
|
||||||
|
#if HAL_TARGET_ARCH == HAL_ARCH_STM32F4
|
||||||
|
return hal_stm32f4_eth_check_link(instance, link_up);
|
||||||
|
#else
|
||||||
|
return HAL_RET_NOT_SUPPORTED;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Reset Ethernet PHY
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @param phy_addr: PHY address
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_eth_reset_phy(hal_eth_instance_t instance, hal_eth_phy_addr_t phy_addr)
|
||||||
|
{
|
||||||
|
if (instance >= HAL_ETH_INSTANCE_MAX) {
|
||||||
|
return HAL_RET_INVALID_PARAM;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!hal_eth_instances[instance].initialized) {
|
||||||
|
return HAL_RET_INIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Call architecture specific implementation */
|
||||||
|
#if HAL_TARGET_ARCH == HAL_ARCH_STM32F4
|
||||||
|
return hal_stm32f4_eth_reset_phy(instance, phy_addr);
|
||||||
|
#else
|
||||||
|
return HAL_RET_NOT_SUPPORTED;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Read PHY register
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @param phy_addr: PHY address
|
||||||
|
* @param reg_addr: Register address
|
||||||
|
* @param value: Pointer to store register value
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_eth_read_phy_reg(hal_eth_instance_t instance, hal_eth_phy_addr_t phy_addr, uint16_t reg_addr, uint16_t* value)
|
||||||
|
{
|
||||||
|
if (instance >= HAL_ETH_INSTANCE_MAX || !value) {
|
||||||
|
return HAL_RET_INVALID_PARAM;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!hal_eth_instances[instance].initialized) {
|
||||||
|
return HAL_RET_INIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Call architecture specific implementation */
|
||||||
|
#if HAL_TARGET_ARCH == HAL_ARCH_STM32F4
|
||||||
|
return hal_stm32f4_eth_read_phy_reg(instance, phy_addr, reg_addr, value);
|
||||||
|
#else
|
||||||
|
return HAL_RET_NOT_SUPPORTED;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Write PHY register
|
||||||
|
* @param instance: Ethernet instance
|
||||||
|
* @param phy_addr: PHY address
|
||||||
|
* @param reg_addr: Register address
|
||||||
|
* @param value: Register value
|
||||||
|
* @retval HAL status code
|
||||||
|
*/
|
||||||
|
hal_ret_t hal_eth_write_phy_reg(hal_eth_instance_t instance, hal_eth_phy_addr_t phy_addr, uint16_t reg_addr, uint16_t value)
|
||||||
|
{
|
||||||
|
if (instance >= HAL_ETH_INSTANCE_MAX) {
|
||||||
|
return HAL_RET_INVALID_PARAM;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!hal_eth_instances[instance].initialized) {
|
||||||
|
return HAL_RET_INIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Call architecture specific implementation */
|
||||||
|
#if HAL_TARGET_ARCH == HAL_ARCH_STM32F4
|
||||||
|
return hal_stm32f4_eth_write_phy_reg(instance, phy_addr, reg_addr, value);
|
||||||
|
#else
|
||||||
|
return HAL_RET_NOT_SUPPORTED;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get default Ethernet configuration
|
||||||
|
* @return Pointer to default Ethernet configuration
|
||||||
|
*/
|
||||||
|
const hal_eth_config_t* hal_eth_get_default_config(void)
|
||||||
|
{
|
||||||
|
return &hal_eth_default_config;
|
||||||
|
}
|
||||||
Binary file not shown.
@ -1,101 +1,177 @@
|
|||||||
# ninja log v7
|
# ninja log v7
|
||||||
70 253 7912753856352294 Modules/delay/CMakeFiles/delay.dir/src/delay.c.obj 56b236be5577e847
|
16 204 7913678175972418 HAL/CMakeFiles/hal.dir/Src/hal_gpio.c.obj 62b5fd3fc12a56ec
|
||||||
52 180 7912753856166626 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4.c.obj 872e2ff6704dd355
|
19 180 7913678176002877 HAL/CMakeFiles/hal.dir/Src/hal_delay.c.obj f7ed58542e885692
|
||||||
44 204 7912753856086177 HAL/CMakeFiles/hal.dir/Src/hal_delay.c.obj 8664d5778e2ad76c
|
24 186 7913678176048676 HAL/CMakeFiles/hal.dir/Src/hal_spi.c.obj 8a7978fd4bbb8138
|
||||||
49 213 7912753856138102 HAL/CMakeFiles/hal.dir/Src/hal_spi.c.obj 149e2e1d936f56fd
|
29 267 7913678176095809 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4.c.obj ad6d0ca858ff9fd6
|
||||||
46 225 7912753856116917 HAL/CMakeFiles/hal.dir/Src/hal_uart.c.obj 3c05057e8269737e
|
21 225 7913678176018106 HAL/CMakeFiles/hal.dir/Src/hal_uart.c.obj 9539d7c56f2172a5
|
||||||
41 265 7912753856065931 HAL/CMakeFiles/hal.dir/Src/hal_gpio.c.obj 8f1917ba961e28ff
|
13 260 7913678175942020 HAL/CMakeFiles/hal.dir/Src/hal.c.obj e4949ba37d831425
|
||||||
78 282 7912753856433995 Modules/w25qxx/CMakeFiles/w25qxx.dir/Src/w25qxx.c.obj 5a78b7b9fb89447
|
50 293 7913678176318911 Modules/delay/CMakeFiles/delay.dir/src/delay.c.obj 26bf75277b3a6f97
|
||||||
180 421 7912753857457878 Modules/led/CMakeFiles/led.dir/src/led.c.obj ccf2a27bf5ed3936
|
55 310 7913678176357464 Modules/uart/CMakeFiles/uart.dir/src/uart.c.obj 6e3afd2d96cd96f6
|
||||||
37 242 7912753856030749 HAL/CMakeFiles/hal.dir/Src/hal.c.obj ac5f81c72ee68d23
|
59 359 7913678176396800 Modules/w25qxx/CMakeFiles/w25qxx.dir/Src/w25qxx.c.obj 822d4b2e91a026bb
|
||||||
9 188 7912797965576556 BSP/CMakeFiles/bsp.dir/Src/bsp_init.c.obj a8d32090eccf4f24
|
26 440 7913678176063858 HAL/CMakeFiles/hal.dir/Src/hal_eth.c.obj ac57850a3bab3ec7
|
||||||
18 187 7912797965662743 BSP/CMakeFiles/bsp.dir/Src/bsp_board_manager.c.obj 81d983be30d5caa8
|
32 446 7913678176135356 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_gpio.c.obj b338571a161a0c05
|
||||||
58 471 7912753856234415 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_uart.c.obj 61a1b302001580a6
|
39 430 7913678176194779 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_delay.c.obj d88822697976a923
|
||||||
66 488 7912753856316467 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_spi.c.obj 92b60c41a11a7d0f
|
36 467 7913678176163964 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_uart.c.obj 959718d65736c9b8
|
||||||
104 367 7912753856695520 BSP/CMakeFiles/bsp.dir/Src/bsp_w25qxx.c.obj ff75693cb3ea9f89
|
43 488 7913678176240604 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_spi.c.obj 2876067dae4cbc08
|
||||||
55 412 7912753856213831 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_gpio.c.obj 97575dfa3fea0b54
|
225 462 7913678178057632 Modules/led/CMakeFiles/led.dir/src/led.c.obj 361c0065047668c7
|
||||||
253 500 7912753858181157 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/sysmem.c.obj f2e3433c3d79e5d5
|
18 108 7913708859832483 BSP/CMakeFiles/bsp.dir/Src/bsp_w25qxx.c.obj 2bcc927ced55ce7e
|
||||||
14 189 7912797965622092 BSP/CMakeFiles/bsp.dir/Src/stm32f407vet6_board.c.obj 90588eee76946044
|
359 648 7913678179400189 CMakeFiles/stm32f407vet6_cmake.dir/startup_stm32f407xx.s.obj 3352bb6321aecc50
|
||||||
204 437 7912753857691524 Middlewares/logging/CMakeFiles/logging.dir/src/logging.c.obj 27a298347d3faf6
|
260 484 7913678178411937 Middlewares/logging/CMakeFiles/logging.dir/src/logging.c.obj 86b0f61c89236124
|
||||||
74 259 7912753856388203 Modules/uart/CMakeFiles/uart.dir/src/uart.c.obj 9beccc385d888c1a
|
28 117 7913708859921868 BSP/CMakeFiles/bsp.dir/Src/bsp_eth.c.obj b6a0078da5412305
|
||||||
319 574 7912703545025390 CMakeFiles/stm32f407vet6_cmake.dir/startup_stm32f407xx.s.obj e17b9b15f9a25423
|
324 593 7913678179056025 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/sysmem.c.obj cb5c7263e77f8f30
|
||||||
24 189 7912797965724106 BSP/CMakeFiles/bsp.dir/Src/bsp_key.c.obj 79110b6d960c0717
|
331 573 7913678179117695 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/syscalls.c.obj 1cc09fc1ce7816fd
|
||||||
225 693 7912753857900411 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/stm32f4xx_it.c.obj 51381dee47310dd1
|
310 834 7913678178912097 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/stm32f4xx_hal_msp.c.obj c3bbce33b0b94778
|
||||||
242 687 7912753858069842 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/stm32f4xx_hal_msp.c.obj 43e90c3a5e5dc8ad
|
293 826 7913678178742779 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/stm32f4xx_it.c.obj 9611a8c19b40aae4
|
||||||
62 445 7912753856274948 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_delay.c.obj 5280c9d98ed3655a
|
430 950 7913678180106606 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Core/Src/system_stm32f4xx.c.obj 2fecb60abe437fd4
|
||||||
259 509 7912753858238489 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/syscalls.c.obj 5115f6cdfe76adb5
|
446 955 7913678180270390 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c.obj 218cb40779246324
|
||||||
30 290 7912797965781888 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/main.c.obj a73eeca20c8ad43b
|
440 949 7913678180209388 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c.obj c501785e017c114f
|
||||||
265 708 7912753858303200 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Core/Src/system_stm32f4xx.c.obj 3736d3217f559c96
|
467 960 7913678180480076 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c.obj 893450a2eac32131
|
||||||
298 708 7912753858634105 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c.obj ba10ffdc9f5ceffa
|
455 964 7913678180350431 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c.obj 2a91ea98adea2812
|
||||||
282 698 7912753858476971 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c.obj 596b28c505c23c1a
|
474 982 7913678180541017 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c.obj f8f0c6839c7ab1ce
|
||||||
304 740 7912753858700468 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c.obj 9c9f0bd1ef36cd31
|
462 1007 7913678180429239 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c.obj 6808052da57aca4
|
||||||
367 809 7912753859329478 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c.obj 9a1317dc49b7a46b
|
488 1003 7913678180697315 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c.obj e4f00c48fc0b0584
|
||||||
320 735 7912753858861343 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c.obj 32aeb5ff85893ec6
|
484 987 7913678180652368 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c.obj 4cff397e5a4886f8
|
||||||
412 861 7912753859772677 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c.obj 5b89b46e944eeb22
|
478 1007 7913678180585726 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c.obj 22b8b5194dc4de2
|
||||||
421 860 7912753859864874 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c.obj 5b44b53a159fb751
|
568 991 7913678181489306 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c.obj 76711d5ea0da574a
|
||||||
437 1013 7912753860031644 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c.obj ae45482fd7ff642d
|
648 1181 7913678182288538 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c.obj 560bfe4b0f4f6bf9
|
||||||
488 833 7912753860535924 HAL/libhal.a 1cac9cc1eea4712c
|
573 1057 7913678181540484 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c.obj 9a176c76dab639f
|
||||||
445 830 7912753860113015 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c.obj e58812042caf42ae
|
593 1098 7913678181742591 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c.obj 52aa8800389330b7
|
||||||
471 819 7912753860361888 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c.obj 60546464c3923ef0
|
811 1243 7913678183913519 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c.obj ba7ee8080eb94038
|
||||||
509 961 7912753860745733 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c.obj 33f4b35d347cbda1
|
826 1247 7913678184067546 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c.obj ca8829d822319459
|
||||||
460 803 7912753860257372 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c.obj a5257bb900664816
|
47 511 7913678176278518 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_eth.c.obj 1cb29b3f591666fd
|
||||||
501 947 7912753860658985 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c.obj edc60a7057d8deba
|
3 107 7913708859678310 BSP/CMakeFiles/bsp.dir/Src/bsp_init.c.obj d5eeac43f4ec50ea
|
||||||
840 936 7912753864047968 Modules/uart/libuart.a f980800b2f79773c
|
8 114 7913708859723754 BSP/CMakeFiles/bsp.dir/Src/stm32f407vet6_board.c.obj f1e5fe9bebf9e02
|
||||||
833 981 7912753863986406 Modules/delay/libdelay.a fa50f3f1c7df37b
|
14 111 7913708859786106 BSP/CMakeFiles/bsp.dir/Src/bsp_board_manager.c.obj 8f418e92fedc44fd
|
||||||
847 917 7912753864111126 Modules/w25qxx/libw25qxx.a 6740ff1d64083f6c
|
511 1074 7913678180917315 HAL/libhal.a 828bea71b532158c
|
||||||
854 944 7912753864188655 Modules/led/libled.a 4975295d4e0f5144
|
23 149 7913708859878613 BSP/CMakeFiles/bsp.dir/Src/bsp_key.c.obj 9e57a4dd4022963a
|
||||||
693 1108 7912753862588187 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c.obj c8dfb4e6e3c6db83
|
1074 1165 7913678186545531 Modules/delay/libdelay.a fa50f3f1c7df37b
|
||||||
936 1046 7912753865009973 Middlewares/logging/liblogging.a df543b4167ac9a8e
|
1080 1158 7913678186608133 Modules/uart/libuart.a f980800b2f79773c
|
||||||
189 257 7912797967380849 BSP/libbsp.a e0765276282a1d70
|
1086 1165 7913678186670015 Modules/w25qxx/libw25qxx.a 6740ff1d64083f6c
|
||||||
687 1154 7912753862523670 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c.obj d0e730ee33600327
|
1092 1172 7913678186716200 Modules/led/libled.a 4975295d4e0f5144
|
||||||
290 526 7912797968382798 stm32f407vet6_cmake.elf 9045aee99d4d90c9
|
1158 1228 7913678187394160 Middlewares/logging/liblogging.a df543b4167ac9a8e
|
||||||
37 164 7912800834423560 Modules/delay/CMakeFiles/delay.dir/src/delay.c.obj 26bf75277b3a6f97
|
149 219 7913708861144569 BSP/libbsp.a fcf7ba39dd15dcd0
|
||||||
10 169 7912800834158499 HAL/CMakeFiles/hal.dir/Src/hal_delay.c.obj f7ed58542e885692
|
33 258 7913708859968293 CMakeFiles/stm32f407vet6_cmake.dir/APP/Src/main.c.obj ac82fd5b4b4de416
|
||||||
16 174 7912800834216580 HAL/CMakeFiles/hal.dir/Src/hal_spi.c.obj 8a7978fd4bbb8138
|
3 222 7913677176690685 build.ninja 7cc4d7f17f077294
|
||||||
4 180 7912800834094958 HAL/CMakeFiles/hal.dir/Src/hal.c.obj e4949ba37d831425
|
834 1239 7913678184156723 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.c.obj 42cf21cc05a6eb7a
|
||||||
13 216 7912800834188685 HAL/CMakeFiles/hal.dir/Src/hal_uart.c.obj 9539d7c56f2172a5
|
258 483 7913708862230295 stm32f407vet6_cmake.elf f513187faf41df81
|
||||||
19 225 7912800834248202 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4.c.obj ad6d0ca858ff9fd6
|
1 17 7913678172005669 CMakeFiles/clean.additional a8e8475892b6c694
|
||||||
7 231 7912800834125253 HAL/CMakeFiles/hal.dir/Src/hal_gpio.c.obj 62b5fd3fc12a56ec
|
17 35 7913678172158851 clean 48fb0083216ba165
|
||||||
40 250 7912800834458879 Modules/uart/CMakeFiles/uart.dir/src/uart.c.obj 6e3afd2d96cd96f6
|
5 91 7913712058859748 BSP/CMakeFiles/bsp.dir/Src/bsp_init.c.obj d5eeac43f4ec50ea
|
||||||
68 281 7912800834731412 BSP/CMakeFiles/bsp.dir/Src/bsp_w25qxx.c.obj 2bcc927ced55ce7e
|
91 151 7913712059734349 BSP/libbsp.a fcf7ba39dd15dcd0
|
||||||
62 285 7912800834673361 BSP/CMakeFiles/bsp.dir/Src/bsp_board_manager.c.obj 8f418e92fedc44fd
|
151 383 7913712060319146 stm32f407vet6_cmake.elf f513187faf41df81
|
||||||
57 289 7912800834621919 BSP/CMakeFiles/bsp.dir/Src/stm32f407vet6_board.c.obj f1e5fe9bebf9e02
|
4 95 7913718470650472 BSP/CMakeFiles/bsp.dir/Src/bsp_key.c.obj 9e57a4dd4022963a
|
||||||
45 329 7912800834504304 Modules/w25qxx/CMakeFiles/w25qxx.dir/Src/w25qxx.c.obj 822d4b2e91a026bb
|
95 154 7913718471572778 BSP/libbsp.a fcf7ba39dd15dcd0
|
||||||
51 336 7912800834561951 BSP/CMakeFiles/bsp.dir/Src/bsp_init.c.obj d5eeac43f4ec50ea
|
9 203 7913718470697125 CMakeFiles/stm32f407vet6_cmake.dir/APP/Src/main.c.obj ac82fd5b4b4de416
|
||||||
23 353 7912800834284058 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_gpio.c.obj b338571a161a0c05
|
203 420 7913718472652095 stm32f407vet6_cmake.elf f513187faf41df81
|
||||||
30 377 7912800834342175 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_delay.c.obj d88822697976a923
|
1 17 7913723755318989 CMakeFiles/clean.additional a8e8475892b6c694
|
||||||
164 401 7912800835701535 Modules/led/CMakeFiles/led.dir/src/led.c.obj 361c0065047668c7
|
17 35 7913723755473029 clean 48fb0083216ba165
|
||||||
26 407 7912800834311665 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_uart.c.obj 959718d65736c9b8
|
43 198 7913723757734855 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4.c.obj ad6d0ca858ff9fd6
|
||||||
74 414 7912800834798905 BSP/CMakeFiles/bsp.dir/Src/bsp_key.c.obj 9e57a4dd4022963a
|
21 207 7913723757516286 HAL/CMakeFiles/hal.dir/Src/hal_gpio.c.obj 62b5fd3fc12a56ec
|
||||||
225 420 7912800836305929 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/sysmem.c.obj cb5c7263e77f8f30
|
34 213 7913723757642275 HAL/CMakeFiles/hal.dir/Src/hal_spi.c.obj 8a7978fd4bbb8138
|
||||||
34 424 7912800834394771 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_spi.c.obj 2876067dae4cbc08
|
25 219 7913723757563546 HAL/CMakeFiles/hal.dir/Src/hal_delay.c.obj f7ed58542e885692
|
||||||
169 433 7912800835731715 Middlewares/logging/CMakeFiles/logging.dir/src/logging.c.obj 86b0f61c89236124
|
30 223 7913723757610148 HAL/CMakeFiles/hal.dir/Src/hal_uart.c.obj 9539d7c56f2172a5
|
||||||
250 443 7912800836553605 CMakeFiles/stm32f407vet6_cmake.dir/startup_stm32f407xx.s.obj 3352bb6321aecc50
|
18 243 7913723757485544 HAL/CMakeFiles/hal.dir/Src/hal.c.obj e4949ba37d831425
|
||||||
231 487 7912800836367149 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/syscalls.c.obj 1cc09fc1ce7816fd
|
79 266 7913723758101255 Modules/w25qxx/CMakeFiles/w25qxx.dir/Src/w25qxx.c.obj 822d4b2e91a026bb
|
||||||
180 605 7912800835857254 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/stm32f4xx_it.c.obj 9611a8c19b40aae4
|
67 272 7913723757984035 Modules/delay/CMakeFiles/delay.dir/src/delay.c.obj 26bf75277b3a6f97
|
||||||
174 649 7912800835795415 CMakeFiles/stm32f407vet6_cmake.dir/APP/Src/main.c.obj ac82fd5b4b4de416
|
93 278 7913723758231372 BSP/CMakeFiles/bsp.dir/Src/stm32f407vet6_board.c.obj f1e5fe9bebf9e02
|
||||||
216 653 7912800836217421 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/stm32f4xx_hal_msp.c.obj c3bbce33b0b94778
|
72 285 7913723758032784 Modules/uart/CMakeFiles/uart.dir/src/uart.c.obj 6e3afd2d96cd96f6
|
||||||
281 693 7912800836866400 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Core/Src/system_stm32f4xx.c.obj 2fecb60abe437fd4
|
86 310 7913723758172771 BSP/CMakeFiles/bsp.dir/Src/bsp_init.c.obj d5eeac43f4ec50ea
|
||||||
336 703 7912800837417042 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c.obj 6808052da57aca4
|
100 367 7913723758310000 BSP/CMakeFiles/bsp.dir/Src/bsp_board_manager.c.obj 8f418e92fedc44fd
|
||||||
289 704 7912800836945661 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c.obj 218cb40779246324
|
199 378 7913723759297576 BSP/CMakeFiles/bsp.dir/Src/bsp_w25qxx.c.obj 2bcc927ced55ce7e
|
||||||
285 731 7912800836906940 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c.obj c501785e017c114f
|
213 391 7913723759444719 BSP/CMakeFiles/bsp.dir/Src/bsp_eth.c.obj b6a0078da5412305
|
||||||
377 773 7912800837827782 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c.obj f8f0c6839c7ab1ce
|
51 404 7913723757817745 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_uart.c.obj 959718d65736c9b8
|
||||||
353 779 7912800837587336 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c.obj 893450a2eac32131
|
219 413 7913723759495102 Modules/led/CMakeFiles/led.dir/src/led.c.obj 361c0065047668c7
|
||||||
420 779 7912800838257894 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c.obj 76711d5ea0da574a
|
47 420 7913723757787493 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_gpio.c.obj b338571a161a0c05
|
||||||
329 780 7912800837339961 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c.obj 2a91ea98adea2812
|
223 426 7913723759545802 Middlewares/logging/CMakeFiles/logging.dir/src/logging.c.obj 86b0f61c89236124
|
||||||
407 782 7912800838128116 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c.obj 4cff397e5a4886f8
|
38 434 7913723757688676 HAL/CMakeFiles/hal.dir/Src/hal_eth.c.obj ac57850a3bab3ec7
|
||||||
424 823 7912800838301761 HAL/libhal.a 1cac9cc1eea4712c
|
207 458 7913723759378378 BSP/CMakeFiles/bsp.dir/Src/bsp_key.c.obj 9e57a4dd4022963a
|
||||||
414 851 7912800838195010 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c.obj e4f00c48fc0b0584
|
278 463 7913723760094561 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/sysmem.c.obj cb5c7263e77f8f30
|
||||||
433 852 7912800838380705 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c.obj 9a176c76dab639f
|
55 467 7913723757858123 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_delay.c.obj d88822697976a923
|
||||||
401 904 7912800838066880 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c.obj 22b8b5194dc4de2
|
310 490 7913723760408804 CMakeFiles/stm32f407vet6_cmake.dir/startup_stm32f407xx.s.obj 3352bb6321aecc50
|
||||||
488 967 7912800838934093 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c.obj 560bfe4b0f4f6bf9
|
63 505 7913723757935395 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_eth.c.obj 1cb29b3f591666fd
|
||||||
443 968 7912800838481725 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c.obj 52aa8800389330b7
|
58 512 7913723757898606 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_spi.c.obj 2876067dae4cbc08
|
||||||
823 986 7912800842281271 Modules/delay/libdelay.a fa50f3f1c7df37b
|
285 649 7913723760157994 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/syscalls.c.obj 1cc09fc1ce7816fd
|
||||||
829 986 7912800842343787 Modules/uart/libuart.a f980800b2f79773c
|
272 684 7913723760029628 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/stm32f4xx_hal_msp.c.obj c3bbce33b0b94778
|
||||||
844 991 7912800842496296 Modules/led/libled.a 4975295d4e0f5144
|
266 691 7913723759965828 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/stm32f4xx_it.c.obj 9611a8c19b40aae4
|
||||||
836 993 7912800842421162 Modules/w25qxx/libw25qxx.a 6740ff1d64083f6c
|
243 718 7913723759738818 CMakeFiles/stm32f407vet6_cmake.dir/APP/Src/main.c.obj ac82fd5b4b4de416
|
||||||
986 1061 7912800843914798 Middlewares/logging/liblogging.a df543b4167ac9a8e
|
391 794 7913723761222097 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c.obj 218cb40779246324
|
||||||
993 1078 7912800843990519 BSP/libbsp.a e0765276282a1d70
|
434 809 7913723761648705 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c.obj 22b8b5194dc4de2
|
||||||
605 1094 7912800840100440 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c.obj ba7ee8080eb94038
|
405 813 7913723761351586 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c.obj 2a91ea98adea2812
|
||||||
649 1119 7912800840552747 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c.obj ca8829d822319459
|
463 824 7913723761944747 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c.obj e4f00c48fc0b0584
|
||||||
1119 1332 7912800845238850 stm32f407vet6_cmake.elf a5a01af5341e41e4
|
379 837 7913723761092768 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c.obj c501785e017c114f
|
||||||
|
420 853 7913723761516171 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c.obj 893450a2eac32131
|
||||||
|
367 854 7913723760981729 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Core/Src/system_stm32f4xx.c.obj 2fecb60abe437fd4
|
||||||
|
427 854 7913723761580108 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c.obj f8f0c6839c7ab1ce
|
||||||
|
512 858 7913723762436035 HAL/libhal.a 828bea71b532158c
|
||||||
|
467 900 7913723761986271 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c.obj 76711d5ea0da574a
|
||||||
|
413 909 7913723761449178 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c.obj 6808052da57aca4
|
||||||
|
505 914 7913723762364144 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c.obj 52aa8800389330b7
|
||||||
|
458 915 7913723761889349 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c.obj 4cff397e5a4886f8
|
||||||
|
490 962 7913723762218556 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c.obj 9a176c76dab639f
|
||||||
|
866 966 7913723765969178 Modules/uart/libuart.a f980800b2f79773c
|
||||||
|
881 972 7913723766114252 Modules/led/libled.a 4975295d4e0f5144
|
||||||
|
873 972 7913723766045063 Modules/w25qxx/libw25qxx.a 6740ff1d64083f6c
|
||||||
|
858 972 7913723765889896 Modules/delay/libdelay.a fa50f3f1c7df37b
|
||||||
|
649 1018 7913723763804771 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c.obj 560bfe4b0f4f6bf9
|
||||||
|
966 1042 7913723766974875 Middlewares/logging/liblogging.a df543b4167ac9a8e
|
||||||
|
972 1057 7913723767035389 BSP/libbsp.a fcf7ba39dd15dcd0
|
||||||
|
684 1063 7913723764155281 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c.obj ba7ee8080eb94038
|
||||||
|
691 1068 7913723764225835 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c.obj ca8829d822319459
|
||||||
|
718 1103 7913723764490437 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.c.obj 42cf21cc05a6eb7a
|
||||||
|
1103 1326 7913723768341327 stm32f407vet6_cmake.elf f513187faf41df81
|
||||||
|
2 19 7913734853574881 CMakeFiles/clean.additional a8e8475892b6c694
|
||||||
|
19 36 7913734853743627 clean 48fb0083216ba165
|
||||||
|
23 207 7913734855752654 HAL/CMakeFiles/hal.dir/Src/hal_gpio.c.obj 62b5fd3fc12a56ec
|
||||||
|
44 213 7913734855956143 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4.c.obj ad6d0ca858ff9fd6
|
||||||
|
18 220 7913734855705435 HAL/CMakeFiles/hal.dir/Src/hal.c.obj e4949ba37d831425
|
||||||
|
27 226 7913734855798728 HAL/CMakeFiles/hal.dir/Src/hal_delay.c.obj f7ed58542e885692
|
||||||
|
72 231 7913734856252094 Modules/delay/CMakeFiles/delay.dir/src/delay.c.obj 26bf75277b3a6f97
|
||||||
|
35 235 7913734855876677 HAL/CMakeFiles/hal.dir/Src/hal_spi.c.obj 8a7978fd4bbb8138
|
||||||
|
31 247 7913734855830612 HAL/CMakeFiles/hal.dir/Src/hal_uart.c.obj 9539d7c56f2172a5
|
||||||
|
77 256 7913734856303839 Modules/uart/CMakeFiles/uart.dir/src/uart.c.obj 6e3afd2d96cd96f6
|
||||||
|
88 276 7913734856408820 BSP/CMakeFiles/bsp.dir/Src/bsp_init.c.obj d5eeac43f4ec50ea
|
||||||
|
82 284 7913734856349490 Modules/w25qxx/CMakeFiles/w25qxx.dir/Src/w25qxx.c.obj 822d4b2e91a026bb
|
||||||
|
94 292 7913734856477078 BSP/CMakeFiles/bsp.dir/Src/stm32f407vet6_board.c.obj f1e5fe9bebf9e02
|
||||||
|
101 319 7913734856543507 BSP/CMakeFiles/bsp.dir/Src/bsp_board_manager.c.obj 8f418e92fedc44fd
|
||||||
|
207 385 7913734857605566 BSP/CMakeFiles/bsp.dir/Src/bsp_w25qxx.c.obj 2bcc927ced55ce7e
|
||||||
|
226 389 7913734857799043 Modules/led/CMakeFiles/led.dir/src/led.c.obj 361c0065047668c7
|
||||||
|
48 393 7913734856006364 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_gpio.c.obj b338571a161a0c05
|
||||||
|
63 410 7913734856165586 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_spi.c.obj 2876067dae4cbc08
|
||||||
|
220 430 7913734857729739 BSP/CMakeFiles/bsp.dir/Src/bsp_eth.c.obj b6a0078da5412305
|
||||||
|
213 435 7913734857661332 BSP/CMakeFiles/bsp.dir/Src/bsp_key.c.obj 9e57a4dd4022963a
|
||||||
|
58 449 7913734856113804 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_delay.c.obj d88822697976a923
|
||||||
|
40 463 7913734855924988 HAL/CMakeFiles/hal.dir/Src/hal_eth.c.obj ac57850a3bab3ec7
|
||||||
|
292 467 7913734858447157 CMakeFiles/stm32f407vet6_cmake.dir/startup_stm32f407xx.s.obj 3352bb6321aecc50
|
||||||
|
277 479 7913734858296668 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/sysmem.c.obj cb5c7263e77f8f30
|
||||||
|
52 483 7913734856051773 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_uart.c.obj 959718d65736c9b8
|
||||||
|
231 488 7913734857834559 Middlewares/logging/CMakeFiles/logging.dir/src/logging.c.obj 86b0f61c89236124
|
||||||
|
68 521 7913734856208283 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_eth.c.obj 1cb29b3f591666fd
|
||||||
|
284 539 7913734858370056 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/syscalls.c.obj 1cc09fc1ce7816fd
|
||||||
|
257 700 7913734858091103 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/stm32f4xx_hal_msp.c.obj c3bbce33b0b94778
|
||||||
|
247 709 7913734858001904 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/stm32f4xx_it.c.obj 9611a8c19b40aae4
|
||||||
|
235 742 7913734857885033 CMakeFiles/stm32f407vet6_cmake.dir/APP/Src/main.c.obj ac82fd5b4b4de416
|
||||||
|
319 801 7913734858719124 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Core/Src/system_stm32f4xx.c.obj 2fecb60abe437fd4
|
||||||
|
410 819 7913734859632492 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c.obj 6808052da57aca4
|
||||||
|
394 829 7913734859461645 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c.obj 2a91ea98adea2812
|
||||||
|
435 833 7913734859881657 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c.obj f8f0c6839c7ab1ce
|
||||||
|
431 843 7913734859839297 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c.obj 893450a2eac32131
|
||||||
|
385 843 7913734859375162 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c.obj c501785e017c114f
|
||||||
|
389 846 7913734859414694 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c.obj 218cb40779246324
|
||||||
|
467 849 7913734860201383 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c.obj e4f00c48fc0b0584
|
||||||
|
488 861 7913734860406783 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c.obj 52aa8800389330b7
|
||||||
|
463 899 7913734860152635 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c.obj 4cff397e5a4886f8
|
||||||
|
479 901 7913734860316313 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c.obj 76711d5ea0da574a
|
||||||
|
449 914 7913734860017215 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c.obj 22b8b5194dc4de2
|
||||||
|
483 921 7913734860348062 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c.obj 9a176c76dab639f
|
||||||
|
521 931 7913734860730309 HAL/libhal.a 828bea71b532158c
|
||||||
|
539 959 7913734860920524 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c.obj 560bfe4b0f4f6bf9
|
||||||
|
931 1011 7913734864833170 Modules/delay/libdelay.a fa50f3f1c7df37b
|
||||||
|
948 1015 7913734865004492 Modules/led/libled.a 4975295d4e0f5144
|
||||||
|
942 1015 7913734864942469 Modules/w25qxx/libw25qxx.a 6740ff1d64083f6c
|
||||||
|
937 1022 7913734864895392 Modules/uart/libuart.a f980800b2f79773c
|
||||||
|
1015 1086 7913734865683085 BSP/libbsp.a fcf7ba39dd15dcd0
|
||||||
|
700 1093 7913734862539109 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c.obj ba7ee8080eb94038
|
||||||
|
1022 1094 7913734865753971 Middlewares/logging/liblogging.a df543b4167ac9a8e
|
||||||
|
709 1098 7913734862620402 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c.obj ca8829d822319459
|
||||||
|
742 1116 7913734862950127 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.c.obj 42cf21cc05a6eb7a
|
||||||
|
1116 1353 7913734866691139 stm32f407vet6_cmake.elf f513187faf41df81
|
||||||
|
|||||||
@ -217,8 +217,8 @@ CMAKE_STRIP:FILEPATH=D:/ARM_GCC/bin/arm-none-eabi-strip.exe
|
|||||||
//Path to a program.
|
//Path to a program.
|
||||||
CMAKE_TAPI:FILEPATH=CMAKE_TAPI-NOTFOUND
|
CMAKE_TAPI:FILEPATH=CMAKE_TAPI-NOTFOUND
|
||||||
|
|
||||||
//No help, variable specified on the command line.
|
//The CMake toolchain file
|
||||||
CMAKE_TOOLCHAIN_FILE:UNINITIALIZED=E:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/cmake/gcc-arm-none-eabi.cmake
|
CMAKE_TOOLCHAIN_FILE:FILEPATH=E:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/cmake/gcc-arm-none-eabi.cmake
|
||||||
|
|
||||||
//If this value is on, makefiles will be generated without the
|
//If this value is on, makefiles will be generated without the
|
||||||
// .SILENT directive, and all commands will be echoed to the console
|
// .SILENT directive, and all commands will be echoed to the console
|
||||||
|
|||||||
@ -102,8 +102,8 @@ events:
|
|||||||
checks:
|
checks:
|
||||||
- "Detecting C compiler ABI info"
|
- "Detecting C compiler ABI info"
|
||||||
directories:
|
directories:
|
||||||
source: "E:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/build/Debug/CMakeFiles/CMakeScratch/TryCompile-3vh8ir"
|
source: "E:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/build/Debug/CMakeFiles/CMakeScratch/TryCompile-6bi9ia"
|
||||||
binary: "E:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/build/Debug/CMakeFiles/CMakeScratch/TryCompile-3vh8ir"
|
binary: "E:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/build/Debug/CMakeFiles/CMakeScratch/TryCompile-6bi9ia"
|
||||||
cmakeVariables:
|
cmakeVariables:
|
||||||
CMAKE_C_FLAGS: " -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections"
|
CMAKE_C_FLAGS: " -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections"
|
||||||
CMAKE_C_FLAGS_DEBUG: "-O0 -g3"
|
CMAKE_C_FLAGS_DEBUG: "-O0 -g3"
|
||||||
@ -112,10 +112,10 @@ events:
|
|||||||
variable: "CMAKE_C_ABI_COMPILED"
|
variable: "CMAKE_C_ABI_COMPILED"
|
||||||
cached: true
|
cached: true
|
||||||
stdout: |
|
stdout: |
|
||||||
Change Dir: 'E:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/build/Debug/CMakeFiles/CMakeScratch/TryCompile-3vh8ir'
|
Change Dir: 'E:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/build/Debug/CMakeFiles/CMakeScratch/TryCompile-6bi9ia'
|
||||||
|
|
||||||
Run Build Command(s): C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Scripts/ninja.exe -v cmTC_de4c5
|
Run Build Command(s): C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Scripts/ninja.exe -v cmTC_8d4e9
|
||||||
[1/2] D:\\ARM_GCC\\bin\\arm-none-eabi-gcc.exe -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -std=gnu11 -v -o CMakeFiles/cmTC_de4c5.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 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -std=gnu11 -v -o CMakeFiles/cmTC_8d4e9.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
|
||||||
@ -123,8 +123,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='-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-mcpu=cortex-m4' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-std=gnu11' '-v' '-o' 'CMakeFiles/cmTC_de4c5.dir/CMakeCCompilerABI.c.obj' '-c' '-mthumb' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp'
|
COLLECT_GCC_OPTIONS='-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-mcpu=cortex-m4' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-std=gnu11' '-v' '-o' 'CMakeFiles/cmTC_8d4e9.dir/CMakeCCompilerABI.c.obj' '-c' '-mthumb' '-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 -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 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -mlibarch=armv7e-m+fp -march=armv7e-m+fp -auxbase-strip CMakeFiles/cmTC_de4c5.dir/CMakeCCompilerABI.c.obj -Wall -Wextra -Wpedantic -std=gnu11 -version -fdata-sections -ffunction-sections -o C:\\Users\\ZHIZHA~1\\AppData\\Local\\Temp\\cc6HH2mf.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 -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 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -mlibarch=armv7e-m+fp -march=armv7e-m+fp -auxbase-strip CMakeFiles/cmTC_8d4e9.dir/CMakeCCompilerABI.c.obj -Wall -Wextra -Wpedantic -std=gnu11 -version -fdata-sections -ffunction-sections -o C:\\Users\\ZHIZHA~1\\AppData\\Local\\Temp\\ccqHkZgc.s
|
||||||
GNU C11 (GNU Arm Embedded Toolchain 10.3-2021.10) version 10.3.1 20210824 (release) (arm-none-eabi)
|
GNU C11 (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
|
||||||
|
|
||||||
@ -145,13 +145,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='-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-mcpu=cortex-m4' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-std=gnu11' '-v' '-o' 'CMakeFiles/cmTC_de4c5.dir/CMakeCCompilerABI.c.obj' '-c' '-mthumb' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp'
|
COLLECT_GCC_OPTIONS='-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-mcpu=cortex-m4' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-std=gnu11' '-v' '-o' 'CMakeFiles/cmTC_8d4e9.dir/CMakeCCompilerABI.c.obj' '-c' '-mthumb' '-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 -mfloat-abi=hard -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mfpu=fpv4-sp-d16 -mfpu=fpv4-sp-d16 -meabi=5 -o CMakeFiles/cmTC_de4c5.dir/CMakeCCompilerABI.c.obj C:\\Users\\ZHIZHA~1\\AppData\\Local\\Temp\\cc6HH2mf.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 -mfloat-abi=hard -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mfpu=fpv4-sp-d16 -mfpu=fpv4-sp-d16 -meabi=5 -o CMakeFiles/cmTC_8d4e9.dir/CMakeCCompilerABI.c.obj C:\\Users\\ZHIZHA~1\\AppData\\Local\\Temp\\ccqHkZgc.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='-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-mcpu=cortex-m4' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-std=gnu11' '-v' '-o' 'CMakeFiles/cmTC_de4c5.dir/CMakeCCompilerABI.c.obj' '-c' '-mthumb' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp'
|
COLLECT_GCC_OPTIONS='-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-mcpu=cortex-m4' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-std=gnu11' '-v' '-o' 'CMakeFiles/cmTC_8d4e9.dir/CMakeCCompilerABI.c.obj' '-c' '-mthumb' '-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_de4c5.a && D:\\ARM_GCC\\bin\\arm-none-eabi-ar.exe qc libcmTC_de4c5.a CMakeFiles/cmTC_de4c5.dir/CMakeCCompilerABI.c.obj && D:\\ARM_GCC\\bin\\arm-none-eabi-ranlib.exe libcmTC_de4c5.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_8d4e9.a && D:\\ARM_GCC\\bin\\arm-none-eabi-ar.exe qc libcmTC_8d4e9.a CMakeFiles/cmTC_8d4e9.dir/CMakeCCompilerABI.c.obj && D:\\ARM_GCC\\bin\\arm-none-eabi-ranlib.exe libcmTC_8d4e9.a && cd ."
|
||||||
|
|
||||||
exitCode: 0
|
exitCode: 0
|
||||||
-
|
-
|
||||||
@ -184,10 +184,10 @@ events:
|
|||||||
Parsed C implicit link information:
|
Parsed C implicit link information:
|
||||||
link line regex: [^( *|.*[/\\])(arm-none-eabi-g\\+\\+\\.exe|;ld[0-9]*(\\.[a-z]+)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]
|
link line regex: [^( *|.*[/\\])(arm-none-eabi-g\\+\\+\\.exe|;ld[0-9]*(\\.[a-z]+)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]
|
||||||
linker tool regex: [^[ ]*(->|")?[ ]*(([^"]*[/\\])?(arm-none-eabi-g\\+\\+\\.exe|;ld[0-9]*(\\.[a-z]+)?))("|,| |$)]
|
linker tool regex: [^[ ]*(->|")?[ ]*(([^"]*[/\\])?(arm-none-eabi-g\\+\\+\\.exe|;ld[0-9]*(\\.[a-z]+)?))("|,| |$)]
|
||||||
ignore line: [Change Dir: 'E:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/build/Debug/CMakeFiles/CMakeScratch/TryCompile-3vh8ir']
|
ignore line: [Change Dir: 'E:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/build/Debug/CMakeFiles/CMakeScratch/TryCompile-6bi9ia']
|
||||||
ignore line: []
|
ignore line: []
|
||||||
ignore line: [Run Build Command(s): C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Scripts/ninja.exe -v cmTC_de4c5]
|
ignore line: [Run Build Command(s): C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Scripts/ninja.exe -v cmTC_8d4e9]
|
||||||
ignore line: [[1/2] D:\\ARM_GCC\\bin\\arm-none-eabi-gcc.exe -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -std=gnu11 -v -o CMakeFiles/cmTC_de4c5.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 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -std=gnu11 -v -o CMakeFiles/cmTC_8d4e9.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]
|
||||||
@ -195,8 +195,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='-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-mcpu=cortex-m4' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-std=gnu11' '-v' '-o' 'CMakeFiles/cmTC_de4c5.dir/CMakeCCompilerABI.c.obj' '-c' '-mthumb' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp']
|
ignore line: [COLLECT_GCC_OPTIONS='-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-mcpu=cortex-m4' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-std=gnu11' '-v' '-o' 'CMakeFiles/cmTC_8d4e9.dir/CMakeCCompilerABI.c.obj' '-c' '-mthumb' '-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 -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 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -mlibarch=armv7e-m+fp -march=armv7e-m+fp -auxbase-strip CMakeFiles/cmTC_de4c5.dir/CMakeCCompilerABI.c.obj -Wall -Wextra -Wpedantic -std=gnu11 -version -fdata-sections -ffunction-sections -o C:\\Users\\ZHIZHA~1\\AppData\\Local\\Temp\\cc6HH2mf.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 -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 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -mlibarch=armv7e-m+fp -march=armv7e-m+fp -auxbase-strip CMakeFiles/cmTC_8d4e9.dir/CMakeCCompilerABI.c.obj -Wall -Wextra -Wpedantic -std=gnu11 -version -fdata-sections -ffunction-sections -o C:\\Users\\ZHIZHA~1\\AppData\\Local\\Temp\\ccqHkZgc.s]
|
||||||
ignore line: [GNU C11 (GNU Arm Embedded Toolchain 10.3-2021.10) version 10.3.1 20210824 (release) (arm-none-eabi)]
|
ignore line: [GNU C11 (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: []
|
||||||
@ -217,8 +217,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='-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-mcpu=cortex-m4' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-std=gnu11' '-v' '-o' 'CMakeFiles/cmTC_de4c5.dir/CMakeCCompilerABI.c.obj' '-c' '-mthumb' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp']
|
ignore line: [COLLECT_GCC_OPTIONS='-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-mcpu=cortex-m4' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-std=gnu11' '-v' '-o' 'CMakeFiles/cmTC_8d4e9.dir/CMakeCCompilerABI.c.obj' '-c' '-mthumb' '-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 -mfloat-abi=hard -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mfpu=fpv4-sp-d16 -mfpu=fpv4-sp-d16 -meabi=5 -o CMakeFiles/cmTC_de4c5.dir/CMakeCCompilerABI.c.obj C:\\Users\\ZHIZHA~1\\AppData\\Local\\Temp\\cc6HH2mf.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 -mfloat-abi=hard -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mfpu=fpv4-sp-d16 -mfpu=fpv4-sp-d16 -meabi=5 -o CMakeFiles/cmTC_8d4e9.dir/CMakeCCompilerABI.c.obj C:\\Users\\ZHIZHA~1\\AppData\\Local\\Temp\\ccqHkZgc.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/]
|
||||||
@ -230,8 +230,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='-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-mcpu=cortex-m4' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-std=gnu11' '-v' '-o' 'CMakeFiles/cmTC_de4c5.dir/CMakeCCompilerABI.c.obj' '-c' '-mthumb' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp']
|
ignore line: [COLLECT_GCC_OPTIONS='-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-mcpu=cortex-m4' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-std=gnu11' '-v' '-o' 'CMakeFiles/cmTC_8d4e9.dir/CMakeCCompilerABI.c.obj' '-c' '-mthumb' '-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_de4c5.a && D:\\ARM_GCC\\bin\\arm-none-eabi-ar.exe qc libcmTC_de4c5.a CMakeFiles/cmTC_de4c5.dir/CMakeCCompilerABI.c.obj && D:\\ARM_GCC\\bin\\arm-none-eabi-ranlib.exe libcmTC_de4c5.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_8d4e9.a && D:\\ARM_GCC\\bin\\arm-none-eabi-ar.exe qc libcmTC_8d4e9.a CMakeFiles/cmTC_8d4e9.dir/CMakeCCompilerABI.c.obj && D:\\ARM_GCC\\bin\\arm-none-eabi-ranlib.exe libcmTC_8d4e9.a && cd ."]
|
||||||
ignore line: []
|
ignore line: []
|
||||||
ignore line: []
|
ignore line: []
|
||||||
implicit libs: []
|
implicit libs: []
|
||||||
@ -249,8 +249,8 @@ events:
|
|||||||
checks:
|
checks:
|
||||||
- "Detecting CXX compiler ABI info"
|
- "Detecting CXX compiler ABI info"
|
||||||
directories:
|
directories:
|
||||||
source: "E:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/build/Debug/CMakeFiles/CMakeScratch/TryCompile-c78xx8"
|
source: "E:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/build/Debug/CMakeFiles/CMakeScratch/TryCompile-syypm0"
|
||||||
binary: "E:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/build/Debug/CMakeFiles/CMakeScratch/TryCompile-c78xx8"
|
binary: "E:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/build/Debug/CMakeFiles/CMakeScratch/TryCompile-syypm0"
|
||||||
cmakeVariables:
|
cmakeVariables:
|
||||||
CMAKE_CXX_FLAGS: "-mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -fno-rtti -fno-exceptions -fno-threadsafe-statics"
|
CMAKE_CXX_FLAGS: "-mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -fno-rtti -fno-exceptions -fno-threadsafe-statics"
|
||||||
CMAKE_CXX_FLAGS_DEBUG: "-O0 -g3"
|
CMAKE_CXX_FLAGS_DEBUG: "-O0 -g3"
|
||||||
@ -260,10 +260,10 @@ events:
|
|||||||
variable: "CMAKE_CXX_ABI_COMPILED"
|
variable: "CMAKE_CXX_ABI_COMPILED"
|
||||||
cached: true
|
cached: true
|
||||||
stdout: |
|
stdout: |
|
||||||
Change Dir: 'E:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/build/Debug/CMakeFiles/CMakeScratch/TryCompile-c78xx8'
|
Change Dir: 'E:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/build/Debug/CMakeFiles/CMakeScratch/TryCompile-syypm0'
|
||||||
|
|
||||||
Run Build Command(s): C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Scripts/ninja.exe -v cmTC_73626
|
Run Build Command(s): C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Scripts/ninja.exe -v cmTC_31d71
|
||||||
[1/2] D:\\ARM_GCC\\bin\\arm-none-eabi-g++.exe -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -fno-rtti -fno-exceptions -fno-threadsafe-statics -v -o CMakeFiles/cmTC_73626.dir/CMakeCXXCompilerABI.cpp.obj -c C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Lib/site-packages/cmake/data/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp
|
[1/2] D:\\ARM_GCC\\bin\\arm-none-eabi-g++.exe -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -fno-rtti -fno-exceptions -fno-threadsafe-statics -v -o CMakeFiles/cmTC_31d71.dir/CMakeCXXCompilerABI.cpp.obj -c C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Lib/site-packages/cmake/data/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp
|
||||||
Using built-in specs.
|
Using built-in specs.
|
||||||
COLLECT_GCC=D:\\ARM_GCC\\bin\\arm-none-eabi-g++.exe
|
COLLECT_GCC=D:\\ARM_GCC\\bin\\arm-none-eabi-g++.exe
|
||||||
Target: arm-none-eabi
|
Target: arm-none-eabi
|
||||||
@ -271,8 +271,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' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-fno-rtti' '-fno-exceptions' '-fno-threadsafe-statics' '-v' '-o' 'CMakeFiles/cmTC_73626.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-mthumb' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp'
|
COLLECT_GCC_OPTIONS='-mcpu=cortex-m4' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-fno-rtti' '-fno-exceptions' '-fno-threadsafe-statics' '-v' '-o' 'CMakeFiles/cmTC_31d71.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-mthumb' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp'
|
||||||
d:/arm_gcc/bin/../lib/gcc/arm-none-eabi/10.3.1/cc1plus.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 -D__USES_INITFINI__ C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Lib/site-packages/cmake/data/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpbase CMakeCXXCompilerABI.cpp -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -mlibarch=armv7e-m+fp -march=armv7e-m+fp -auxbase-strip CMakeFiles/cmTC_73626.dir/CMakeCXXCompilerABI.cpp.obj -Wall -Wextra -Wpedantic -version -fdata-sections -ffunction-sections -fno-rtti -fno-exceptions -fno-threadsafe-statics -o C:\\Users\\ZHIZHA~1\\AppData\\Local\\Temp\\ccNheq1x.s
|
d:/arm_gcc/bin/../lib/gcc/arm-none-eabi/10.3.1/cc1plus.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 -D__USES_INITFINI__ C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Lib/site-packages/cmake/data/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpbase CMakeCXXCompilerABI.cpp -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -mlibarch=armv7e-m+fp -march=armv7e-m+fp -auxbase-strip CMakeFiles/cmTC_31d71.dir/CMakeCXXCompilerABI.cpp.obj -Wall -Wextra -Wpedantic -version -fdata-sections -ffunction-sections -fno-rtti -fno-exceptions -fno-threadsafe-statics -o C:\\Users\\ZHIZHA~1\\AppData\\Local\\Temp\\cc3kUavn.s
|
||||||
GNU C++14 (GNU Arm Embedded Toolchain 10.3-2021.10) version 10.3.1 20210824 (release) (arm-none-eabi)
|
GNU C++14 (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
|
||||||
|
|
||||||
@ -299,13 +299,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: f8787892a7c5aa84cea58dce52be7118
|
Compiler executable checksum: f8787892a7c5aa84cea58dce52be7118
|
||||||
COLLECT_GCC_OPTIONS='-mcpu=cortex-m4' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-fno-rtti' '-fno-exceptions' '-fno-threadsafe-statics' '-v' '-o' 'CMakeFiles/cmTC_73626.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-mthumb' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp'
|
COLLECT_GCC_OPTIONS='-mcpu=cortex-m4' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-fno-rtti' '-fno-exceptions' '-fno-threadsafe-statics' '-v' '-o' 'CMakeFiles/cmTC_31d71.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-mthumb' '-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_73626.dir/CMakeCXXCompilerABI.cpp.obj C:\\Users\\ZHIZHA~1\\AppData\\Local\\Temp\\ccNheq1x.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_31d71.dir/CMakeCXXCompilerABI.cpp.obj C:\\Users\\ZHIZHA~1\\AppData\\Local\\Temp\\cc3kUavn.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' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-fno-rtti' '-fno-exceptions' '-fno-threadsafe-statics' '-v' '-o' 'CMakeFiles/cmTC_73626.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-mthumb' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp'
|
COLLECT_GCC_OPTIONS='-mcpu=cortex-m4' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-fno-rtti' '-fno-exceptions' '-fno-threadsafe-statics' '-v' '-o' 'CMakeFiles/cmTC_31d71.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-mthumb' '-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_73626.a && D:\\ARM_GCC\\bin\\arm-none-eabi-ar.exe qc libcmTC_73626.a CMakeFiles/cmTC_73626.dir/CMakeCXXCompilerABI.cpp.obj && D:\\ARM_GCC\\bin\\arm-none-eabi-ranlib.exe libcmTC_73626.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_31d71.a && D:\\ARM_GCC\\bin\\arm-none-eabi-ar.exe qc libcmTC_31d71.a CMakeFiles/cmTC_31d71.dir/CMakeCXXCompilerABI.cpp.obj && D:\\ARM_GCC\\bin\\arm-none-eabi-ranlib.exe libcmTC_31d71.a && cd ."
|
||||||
|
|
||||||
exitCode: 0
|
exitCode: 0
|
||||||
-
|
-
|
||||||
@ -344,10 +344,10 @@ events:
|
|||||||
Parsed CXX implicit link information:
|
Parsed CXX implicit link information:
|
||||||
link line regex: [^( *|.*[/\\])(arm-none-eabi-g\\+\\+\\.exe|;ld[0-9]*(\\.[a-z]+)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]
|
link line regex: [^( *|.*[/\\])(arm-none-eabi-g\\+\\+\\.exe|;ld[0-9]*(\\.[a-z]+)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]
|
||||||
linker tool regex: [^[ ]*(->|")?[ ]*(([^"]*[/\\])?(arm-none-eabi-g\\+\\+\\.exe|;ld[0-9]*(\\.[a-z]+)?))("|,| |$)]
|
linker tool regex: [^[ ]*(->|")?[ ]*(([^"]*[/\\])?(arm-none-eabi-g\\+\\+\\.exe|;ld[0-9]*(\\.[a-z]+)?))("|,| |$)]
|
||||||
ignore line: [Change Dir: 'E:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/build/Debug/CMakeFiles/CMakeScratch/TryCompile-c78xx8']
|
ignore line: [Change Dir: 'E:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/build/Debug/CMakeFiles/CMakeScratch/TryCompile-syypm0']
|
||||||
ignore line: []
|
ignore line: []
|
||||||
ignore line: [Run Build Command(s): C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Scripts/ninja.exe -v cmTC_73626]
|
ignore line: [Run Build Command(s): C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Scripts/ninja.exe -v cmTC_31d71]
|
||||||
ignore line: [[1/2] D:\\ARM_GCC\\bin\\arm-none-eabi-g++.exe -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -fno-rtti -fno-exceptions -fno-threadsafe-statics -v -o CMakeFiles/cmTC_73626.dir/CMakeCXXCompilerABI.cpp.obj -c C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Lib/site-packages/cmake/data/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp]
|
ignore line: [[1/2] D:\\ARM_GCC\\bin\\arm-none-eabi-g++.exe -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -fno-rtti -fno-exceptions -fno-threadsafe-statics -v -o CMakeFiles/cmTC_31d71.dir/CMakeCXXCompilerABI.cpp.obj -c C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Lib/site-packages/cmake/data/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp]
|
||||||
ignore line: [Using built-in specs.]
|
ignore line: [Using built-in specs.]
|
||||||
ignore line: [COLLECT_GCC=D:\\ARM_GCC\\bin\\arm-none-eabi-g++.exe]
|
ignore line: [COLLECT_GCC=D:\\ARM_GCC\\bin\\arm-none-eabi-g++.exe]
|
||||||
ignore line: [Target: arm-none-eabi]
|
ignore line: [Target: arm-none-eabi]
|
||||||
@ -355,8 +355,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' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-fno-rtti' '-fno-exceptions' '-fno-threadsafe-statics' '-v' '-o' 'CMakeFiles/cmTC_73626.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-mthumb' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp']
|
ignore line: [COLLECT_GCC_OPTIONS='-mcpu=cortex-m4' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-fno-rtti' '-fno-exceptions' '-fno-threadsafe-statics' '-v' '-o' 'CMakeFiles/cmTC_31d71.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-mthumb' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp']
|
||||||
ignore line: [ d:/arm_gcc/bin/../lib/gcc/arm-none-eabi/10.3.1/cc1plus.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 -D__USES_INITFINI__ C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Lib/site-packages/cmake/data/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpbase CMakeCXXCompilerABI.cpp -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -mlibarch=armv7e-m+fp -march=armv7e-m+fp -auxbase-strip CMakeFiles/cmTC_73626.dir/CMakeCXXCompilerABI.cpp.obj -Wall -Wextra -Wpedantic -version -fdata-sections -ffunction-sections -fno-rtti -fno-exceptions -fno-threadsafe-statics -o C:\\Users\\ZHIZHA~1\\AppData\\Local\\Temp\\ccNheq1x.s]
|
ignore line: [ d:/arm_gcc/bin/../lib/gcc/arm-none-eabi/10.3.1/cc1plus.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 -D__USES_INITFINI__ C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Lib/site-packages/cmake/data/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpbase CMakeCXXCompilerABI.cpp -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -mlibarch=armv7e-m+fp -march=armv7e-m+fp -auxbase-strip CMakeFiles/cmTC_31d71.dir/CMakeCXXCompilerABI.cpp.obj -Wall -Wextra -Wpedantic -version -fdata-sections -ffunction-sections -fno-rtti -fno-exceptions -fno-threadsafe-statics -o C:\\Users\\ZHIZHA~1\\AppData\\Local\\Temp\\cc3kUavn.s]
|
||||||
ignore line: [GNU C++14 (GNU Arm Embedded Toolchain 10.3-2021.10) version 10.3.1 20210824 (release) (arm-none-eabi)]
|
ignore line: [GNU C++14 (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: []
|
||||||
@ -383,8 +383,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: f8787892a7c5aa84cea58dce52be7118]
|
ignore line: [Compiler executable checksum: f8787892a7c5aa84cea58dce52be7118]
|
||||||
ignore line: [COLLECT_GCC_OPTIONS='-mcpu=cortex-m4' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-fno-rtti' '-fno-exceptions' '-fno-threadsafe-statics' '-v' '-o' 'CMakeFiles/cmTC_73626.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-mthumb' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp']
|
ignore line: [COLLECT_GCC_OPTIONS='-mcpu=cortex-m4' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-fno-rtti' '-fno-exceptions' '-fno-threadsafe-statics' '-v' '-o' 'CMakeFiles/cmTC_31d71.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-mthumb' '-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_73626.dir/CMakeCXXCompilerABI.cpp.obj C:\\Users\\ZHIZHA~1\\AppData\\Local\\Temp\\ccNheq1x.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_31d71.dir/CMakeCXXCompilerABI.cpp.obj C:\\Users\\ZHIZHA~1\\AppData\\Local\\Temp\\cc3kUavn.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/]
|
||||||
@ -396,8 +396,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' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-fno-rtti' '-fno-exceptions' '-fno-threadsafe-statics' '-v' '-o' 'CMakeFiles/cmTC_73626.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-mthumb' '-mlibarch=armv7e-m+fp' '-march=armv7e-m+fp']
|
ignore line: [COLLECT_GCC_OPTIONS='-mcpu=cortex-m4' '-mfpu=fpv4-sp-d16' '-mfloat-abi=hard' '-Wall' '-Wextra' '-Wpedantic' '-fdata-sections' '-ffunction-sections' '-fno-rtti' '-fno-exceptions' '-fno-threadsafe-statics' '-v' '-o' 'CMakeFiles/cmTC_31d71.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-mthumb' '-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_73626.a && D:\\ARM_GCC\\bin\\arm-none-eabi-ar.exe qc libcmTC_73626.a CMakeFiles/cmTC_73626.dir/CMakeCXXCompilerABI.cpp.obj && D:\\ARM_GCC\\bin\\arm-none-eabi-ranlib.exe libcmTC_73626.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_31d71.a && D:\\ARM_GCC\\bin\\arm-none-eabi-ar.exe qc libcmTC_31d71.a CMakeFiles/cmTC_31d71.dir/CMakeCXXCompilerABI.cpp.obj && D:\\ARM_GCC\\bin\\arm-none-eabi-ranlib.exe libcmTC_31d71.a && cd ."]
|
||||||
ignore line: []
|
ignore line: []
|
||||||
ignore line: []
|
ignore line: []
|
||||||
linker tool for 'CXX': [1/2] D:/ARM_GCC/bin/arm-none-eabi-g++.exe
|
linker tool for 'CXX': [1/2] D:/ARM_GCC/bin/arm-none-eabi-g++.exe
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -105,7 +105,7 @@ build CMakeFiles/stm32f407vet6_cmake.dir/startup_stm32f407xx.s.obj: ASM_COMPILER
|
|||||||
#############################################
|
#############################################
|
||||||
# Link the executable stm32f407vet6_cmake.elf
|
# Link the executable stm32f407vet6_cmake.elf
|
||||||
|
|
||||||
build stm32f407vet6_cmake.elf: C_EXECUTABLE_LINKER__stm32f407vet6_cmake_Debug cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Core/Src/system_stm32f4xx.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c.obj CMakeFiles/stm32f407vet6_cmake.dir/APP/Src/main.c.obj CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/stm32f4xx_it.c.obj CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/stm32f4xx_hal_msp.c.obj CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/sysmem.c.obj CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/syscalls.c.obj CMakeFiles/stm32f407vet6_cmake.dir/startup_stm32f407xx.s.obj | BSP/libbsp.a HAL/libhal.a Modules/led/libled.a Modules/delay/libdelay.a Modules/uart/libuart.a Middlewares/logging/liblogging.a Modules/w25qxx/libw25qxx.a Modules/uart/libuart.a HAL/libhal.a || BSP/libbsp.a HAL/libhal.a Middlewares/logging/liblogging.a Modules/delay/libdelay.a Modules/led/libled.a Modules/uart/libuart.a Modules/w25qxx/libw25qxx.a cmake/stm32cubemx/STM32_Drivers
|
build stm32f407vet6_cmake.elf: C_EXECUTABLE_LINKER__stm32f407vet6_cmake_Debug cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Core/Src/system_stm32f4xx.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.c.obj CMakeFiles/stm32f407vet6_cmake.dir/APP/Src/main.c.obj CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/stm32f4xx_it.c.obj CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/stm32f4xx_hal_msp.c.obj CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/sysmem.c.obj CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/syscalls.c.obj CMakeFiles/stm32f407vet6_cmake.dir/startup_stm32f407xx.s.obj | BSP/libbsp.a HAL/libhal.a Modules/led/libled.a Modules/delay/libdelay.a Modules/uart/libuart.a Middlewares/logging/liblogging.a Modules/w25qxx/libw25qxx.a Modules/uart/libuart.a HAL/libhal.a || BSP/libbsp.a HAL/libhal.a Middlewares/logging/liblogging.a Modules/delay/libdelay.a Modules/led/libled.a Modules/uart/libuart.a Modules/w25qxx/libw25qxx.a cmake/stm32cubemx/STM32_Drivers
|
||||||
FLAGS = -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -O0 -g3
|
FLAGS = -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -O0 -g3
|
||||||
LINK_LIBRARIES = BSP/libbsp.a HAL/libhal.a Modules/led/libled.a Modules/delay/libdelay.a Modules/uart/libuart.a Middlewares/logging/liblogging.a Modules/w25qxx/libw25qxx.a Modules/uart/libuart.a HAL/libhal.a
|
LINK_LIBRARIES = BSP/libbsp.a HAL/libhal.a Modules/led/libled.a Modules/delay/libdelay.a Modules/uart/libuart.a Middlewares/logging/liblogging.a Modules/w25qxx/libw25qxx.a Modules/uart/libuart.a HAL/libhal.a
|
||||||
OBJECT_DIR = CMakeFiles\stm32f407vet6_cmake.dir
|
OBJECT_DIR = CMakeFiles\stm32f407vet6_cmake.dir
|
||||||
@ -280,12 +280,20 @@ build cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL
|
|||||||
OBJECT_DIR = cmake\stm32cubemx\CMakeFiles\STM32_Drivers.dir
|
OBJECT_DIR = cmake\stm32cubemx\CMakeFiles\STM32_Drivers.dir
|
||||||
OBJECT_FILE_DIR = cmake\stm32cubemx\CMakeFiles\STM32_Drivers.dir\__\__\Drivers\STM32F4xx_HAL_Driver\Src
|
OBJECT_FILE_DIR = cmake\stm32cubemx\CMakeFiles\STM32_Drivers.dir\__\__\Drivers\STM32F4xx_HAL_Driver\Src
|
||||||
|
|
||||||
|
build cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.c.obj: C_COMPILER__STM32_Drivers_unscanned_Debug E$:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.c || cmake_object_order_depends_target_STM32_Drivers
|
||||||
|
DEFINES = -DDEBUG -DSTM32F407xx -DUSE_HAL_DRIVER
|
||||||
|
DEP_FILE = cmake\stm32cubemx\CMakeFiles\STM32_Drivers.dir\__\__\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_eth.c.obj.d
|
||||||
|
FLAGS = -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11
|
||||||
|
INCLUDES = -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/APP/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Core/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/CMSIS/Device/ST/STM32F4xx/Include -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/CMSIS/Include
|
||||||
|
OBJECT_DIR = cmake\stm32cubemx\CMakeFiles\STM32_Drivers.dir
|
||||||
|
OBJECT_FILE_DIR = cmake\stm32cubemx\CMakeFiles\STM32_Drivers.dir\__\__\Drivers\STM32F4xx_HAL_Driver\Src
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
#############################################
|
||||||
# Object library STM32_Drivers
|
# Object library STM32_Drivers
|
||||||
|
|
||||||
build cmake/stm32cubemx/STM32_Drivers: phony cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Core/Src/system_stm32f4xx.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c.obj
|
build cmake/stm32cubemx/STM32_Drivers: phony cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Core/Src/system_stm32f4xx.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c.obj cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.c.obj
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
#############################################
|
||||||
@ -365,6 +373,14 @@ build HAL/CMakeFiles/hal.dir/Src/hal_spi.c.obj: C_COMPILER__hal_unscanned_Debug
|
|||||||
OBJECT_DIR = HAL\CMakeFiles\hal.dir
|
OBJECT_DIR = HAL\CMakeFiles\hal.dir
|
||||||
OBJECT_FILE_DIR = HAL\CMakeFiles\hal.dir\Src
|
OBJECT_FILE_DIR = HAL\CMakeFiles\hal.dir\Src
|
||||||
|
|
||||||
|
build HAL/CMakeFiles/hal.dir/Src/hal_eth.c.obj: C_COMPILER__hal_unscanned_Debug E$:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/HAL/Src/hal_eth.c || cmake_object_order_depends_target_hal
|
||||||
|
DEFINES = -DDEBUG -DSTM32F407xx -DUSE_HAL_DRIVER
|
||||||
|
DEP_FILE = HAL\CMakeFiles\hal.dir\Src\hal_eth.c.obj.d
|
||||||
|
FLAGS = -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11
|
||||||
|
INCLUDES = -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/HAL/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/HAL/Inc/arch/stm32f4 -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/APP/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Core/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/CMSIS/Device/ST/STM32F4xx/Include -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/CMSIS/Include
|
||||||
|
OBJECT_DIR = HAL\CMakeFiles\hal.dir
|
||||||
|
OBJECT_FILE_DIR = HAL\CMakeFiles\hal.dir\Src
|
||||||
|
|
||||||
build HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4.c.obj: C_COMPILER__hal_unscanned_Debug E$:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/HAL/Src/arch/stm32f4/hal_stm32f4.c || cmake_object_order_depends_target_hal
|
build HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4.c.obj: C_COMPILER__hal_unscanned_Debug E$:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/HAL/Src/arch/stm32f4/hal_stm32f4.c || cmake_object_order_depends_target_hal
|
||||||
DEFINES = -DDEBUG -DSTM32F407xx -DUSE_HAL_DRIVER
|
DEFINES = -DDEBUG -DSTM32F407xx -DUSE_HAL_DRIVER
|
||||||
DEP_FILE = HAL\CMakeFiles\hal.dir\Src\arch\stm32f4\hal_stm32f4.c.obj.d
|
DEP_FILE = HAL\CMakeFiles\hal.dir\Src\arch\stm32f4\hal_stm32f4.c.obj.d
|
||||||
@ -405,6 +421,14 @@ build HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_spi.c.obj: C_COMPILER_
|
|||||||
OBJECT_DIR = HAL\CMakeFiles\hal.dir
|
OBJECT_DIR = HAL\CMakeFiles\hal.dir
|
||||||
OBJECT_FILE_DIR = HAL\CMakeFiles\hal.dir\Src\arch\stm32f4
|
OBJECT_FILE_DIR = HAL\CMakeFiles\hal.dir\Src\arch\stm32f4
|
||||||
|
|
||||||
|
build HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_eth.c.obj: C_COMPILER__hal_unscanned_Debug E$:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/HAL/Src/arch/stm32f4/hal_stm32f4_eth.c || cmake_object_order_depends_target_hal
|
||||||
|
DEFINES = -DDEBUG -DSTM32F407xx -DUSE_HAL_DRIVER
|
||||||
|
DEP_FILE = HAL\CMakeFiles\hal.dir\Src\arch\stm32f4\hal_stm32f4_eth.c.obj.d
|
||||||
|
FLAGS = -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11
|
||||||
|
INCLUDES = -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/HAL/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/HAL/Inc/arch/stm32f4 -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/APP/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Core/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/CMSIS/Device/ST/STM32F4xx/Include -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/CMSIS/Include
|
||||||
|
OBJECT_DIR = HAL\CMakeFiles\hal.dir
|
||||||
|
OBJECT_FILE_DIR = HAL\CMakeFiles\hal.dir\Src\arch\stm32f4
|
||||||
|
|
||||||
|
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
# Link build statements for STATIC_LIBRARY target hal
|
# Link build statements for STATIC_LIBRARY target hal
|
||||||
@ -413,7 +437,7 @@ build HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_spi.c.obj: C_COMPILER_
|
|||||||
#############################################
|
#############################################
|
||||||
# Link the static library HAL\libhal.a
|
# Link the static library HAL\libhal.a
|
||||||
|
|
||||||
build HAL/libhal.a: C_STATIC_LIBRARY_LINKER__hal_Debug HAL/CMakeFiles/hal.dir/Src/hal.c.obj HAL/CMakeFiles/hal.dir/Src/hal_gpio.c.obj HAL/CMakeFiles/hal.dir/Src/hal_delay.c.obj HAL/CMakeFiles/hal.dir/Src/hal_uart.c.obj HAL/CMakeFiles/hal.dir/Src/hal_spi.c.obj HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4.c.obj HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_gpio.c.obj HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_uart.c.obj HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_delay.c.obj HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_spi.c.obj
|
build HAL/libhal.a: C_STATIC_LIBRARY_LINKER__hal_Debug HAL/CMakeFiles/hal.dir/Src/hal.c.obj HAL/CMakeFiles/hal.dir/Src/hal_gpio.c.obj HAL/CMakeFiles/hal.dir/Src/hal_delay.c.obj HAL/CMakeFiles/hal.dir/Src/hal_uart.c.obj HAL/CMakeFiles/hal.dir/Src/hal_spi.c.obj HAL/CMakeFiles/hal.dir/Src/hal_eth.c.obj HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4.c.obj HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_gpio.c.obj HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_uart.c.obj HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_delay.c.obj HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_spi.c.obj HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_eth.c.obj
|
||||||
LANGUAGE_COMPILE_FLAGS = -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -O0 -g3
|
LANGUAGE_COMPILE_FLAGS = -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -O0 -g3
|
||||||
OBJECT_DIR = HAL\CMakeFiles\hal.dir
|
OBJECT_DIR = HAL\CMakeFiles\hal.dir
|
||||||
POST_BUILD = cd .
|
POST_BUILD = cd .
|
||||||
@ -499,6 +523,14 @@ build BSP/CMakeFiles/bsp.dir/Src/bsp_key.c.obj: C_COMPILER__bsp_unscanned_Debug
|
|||||||
OBJECT_DIR = BSP\CMakeFiles\bsp.dir
|
OBJECT_DIR = BSP\CMakeFiles\bsp.dir
|
||||||
OBJECT_FILE_DIR = BSP\CMakeFiles\bsp.dir\Src
|
OBJECT_FILE_DIR = BSP\CMakeFiles\bsp.dir\Src
|
||||||
|
|
||||||
|
build BSP/CMakeFiles/bsp.dir/Src/bsp_eth.c.obj: C_COMPILER__bsp_unscanned_Debug E$:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/BSP/Src/bsp_eth.c || cmake_object_order_depends_target_bsp
|
||||||
|
DEFINES = -DDEBUG -DSTM32F407xx -DUSE_HAL_DRIVER
|
||||||
|
DEP_FILE = BSP\CMakeFiles\bsp.dir\Src\bsp_eth.c.obj.d
|
||||||
|
FLAGS = -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11
|
||||||
|
INCLUDES = -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/BSP/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/APP/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Core/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/CMSIS/Device/ST/STM32F4xx/Include -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/CMSIS/Include -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/HAL/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/HAL/Inc/arch/stm32f4 -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Modules/w25qxx/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Modules/delay/inc
|
||||||
|
OBJECT_DIR = BSP\CMakeFiles\bsp.dir
|
||||||
|
OBJECT_FILE_DIR = BSP\CMakeFiles\bsp.dir\Src
|
||||||
|
|
||||||
|
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
# Link build statements for STATIC_LIBRARY target bsp
|
# Link build statements for STATIC_LIBRARY target bsp
|
||||||
@ -507,7 +539,7 @@ build BSP/CMakeFiles/bsp.dir/Src/bsp_key.c.obj: C_COMPILER__bsp_unscanned_Debug
|
|||||||
#############################################
|
#############################################
|
||||||
# Link the static library BSP\libbsp.a
|
# Link the static library BSP\libbsp.a
|
||||||
|
|
||||||
build BSP/libbsp.a: C_STATIC_LIBRARY_LINKER__bsp_Debug BSP/CMakeFiles/bsp.dir/Src/bsp_init.c.obj BSP/CMakeFiles/bsp.dir/Src/stm32f407vet6_board.c.obj BSP/CMakeFiles/bsp.dir/Src/bsp_board_manager.c.obj BSP/CMakeFiles/bsp.dir/Src/bsp_w25qxx.c.obj BSP/CMakeFiles/bsp.dir/Src/bsp_key.c.obj || HAL/libhal.a Modules/delay/libdelay.a Modules/w25qxx/libw25qxx.a
|
build BSP/libbsp.a: C_STATIC_LIBRARY_LINKER__bsp_Debug BSP/CMakeFiles/bsp.dir/Src/bsp_init.c.obj BSP/CMakeFiles/bsp.dir/Src/stm32f407vet6_board.c.obj BSP/CMakeFiles/bsp.dir/Src/bsp_board_manager.c.obj BSP/CMakeFiles/bsp.dir/Src/bsp_w25qxx.c.obj BSP/CMakeFiles/bsp.dir/Src/bsp_key.c.obj BSP/CMakeFiles/bsp.dir/Src/bsp_eth.c.obj || HAL/libhal.a Modules/delay/libdelay.a Modules/w25qxx/libw25qxx.a
|
||||||
LANGUAGE_COMPILE_FLAGS = -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -O0 -g3
|
LANGUAGE_COMPILE_FLAGS = -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -O0 -g3
|
||||||
OBJECT_DIR = BSP\CMakeFiles\bsp.dir
|
OBJECT_DIR = BSP\CMakeFiles\bsp.dir
|
||||||
POST_BUILD = cd .
|
POST_BUILD = cd .
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -131,6 +131,12 @@
|
|||||||
"file": "E:\\Jfen_work\\local_git_code\\test_port\\stm32f407vet6_cmake\\Drivers\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_spi.c",
|
"file": "E:\\Jfen_work\\local_git_code\\test_port\\stm32f407vet6_cmake\\Drivers\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_spi.c",
|
||||||
"output": "cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\Drivers\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_spi.c.obj"
|
"output": "cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\Drivers\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_spi.c.obj"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"directory": "E:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/build/Debug",
|
||||||
|
"command": "D:\\ARM_GCC\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F407xx -DUSE_HAL_DRIVER -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/APP/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Core/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/CMSIS/Device/ST/STM32F4xx/Include -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/CMSIS/Include -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\Drivers\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_eth.c.obj -c E:\\Jfen_work\\local_git_code\\test_port\\stm32f407vet6_cmake\\Drivers\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_eth.c",
|
||||||
|
"file": "E:\\Jfen_work\\local_git_code\\test_port\\stm32f407vet6_cmake\\Drivers\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_eth.c",
|
||||||
|
"output": "cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\Drivers\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_eth.c.obj"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"directory": "E:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/build/Debug",
|
"directory": "E:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/build/Debug",
|
||||||
"command": "D:\\ARM_GCC\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F407xx -DUSE_HAL_DRIVER -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/HAL/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/HAL/Inc/arch/stm32f4 -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/APP/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Core/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/CMSIS/Device/ST/STM32F4xx/Include -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/CMSIS/Include -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o HAL\\CMakeFiles\\hal.dir\\Src\\hal.c.obj -c E:\\Jfen_work\\local_git_code\\test_port\\stm32f407vet6_cmake\\HAL\\Src\\hal.c",
|
"command": "D:\\ARM_GCC\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F407xx -DUSE_HAL_DRIVER -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/HAL/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/HAL/Inc/arch/stm32f4 -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/APP/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Core/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/CMSIS/Device/ST/STM32F4xx/Include -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/CMSIS/Include -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o HAL\\CMakeFiles\\hal.dir\\Src\\hal.c.obj -c E:\\Jfen_work\\local_git_code\\test_port\\stm32f407vet6_cmake\\HAL\\Src\\hal.c",
|
||||||
@ -161,6 +167,12 @@
|
|||||||
"file": "E:\\Jfen_work\\local_git_code\\test_port\\stm32f407vet6_cmake\\HAL\\Src\\hal_spi.c",
|
"file": "E:\\Jfen_work\\local_git_code\\test_port\\stm32f407vet6_cmake\\HAL\\Src\\hal_spi.c",
|
||||||
"output": "HAL\\CMakeFiles\\hal.dir\\Src\\hal_spi.c.obj"
|
"output": "HAL\\CMakeFiles\\hal.dir\\Src\\hal_spi.c.obj"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"directory": "E:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/build/Debug",
|
||||||
|
"command": "D:\\ARM_GCC\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F407xx -DUSE_HAL_DRIVER -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/HAL/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/HAL/Inc/arch/stm32f4 -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/APP/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Core/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/CMSIS/Device/ST/STM32F4xx/Include -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/CMSIS/Include -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o HAL\\CMakeFiles\\hal.dir\\Src\\hal_eth.c.obj -c E:\\Jfen_work\\local_git_code\\test_port\\stm32f407vet6_cmake\\HAL\\Src\\hal_eth.c",
|
||||||
|
"file": "E:\\Jfen_work\\local_git_code\\test_port\\stm32f407vet6_cmake\\HAL\\Src\\hal_eth.c",
|
||||||
|
"output": "HAL\\CMakeFiles\\hal.dir\\Src\\hal_eth.c.obj"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"directory": "E:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/build/Debug",
|
"directory": "E:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/build/Debug",
|
||||||
"command": "D:\\ARM_GCC\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F407xx -DUSE_HAL_DRIVER -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/HAL/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/HAL/Inc/arch/stm32f4 -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/APP/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Core/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/CMSIS/Device/ST/STM32F4xx/Include -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/CMSIS/Include -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o HAL\\CMakeFiles\\hal.dir\\Src\\arch\\stm32f4\\hal_stm32f4.c.obj -c E:\\Jfen_work\\local_git_code\\test_port\\stm32f407vet6_cmake\\HAL\\Src\\arch\\stm32f4\\hal_stm32f4.c",
|
"command": "D:\\ARM_GCC\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F407xx -DUSE_HAL_DRIVER -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/HAL/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/HAL/Inc/arch/stm32f4 -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/APP/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Core/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/CMSIS/Device/ST/STM32F4xx/Include -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/CMSIS/Include -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o HAL\\CMakeFiles\\hal.dir\\Src\\arch\\stm32f4\\hal_stm32f4.c.obj -c E:\\Jfen_work\\local_git_code\\test_port\\stm32f407vet6_cmake\\HAL\\Src\\arch\\stm32f4\\hal_stm32f4.c",
|
||||||
@ -191,6 +203,12 @@
|
|||||||
"file": "E:\\Jfen_work\\local_git_code\\test_port\\stm32f407vet6_cmake\\HAL\\Src\\arch\\stm32f4\\hal_stm32f4_spi.c",
|
"file": "E:\\Jfen_work\\local_git_code\\test_port\\stm32f407vet6_cmake\\HAL\\Src\\arch\\stm32f4\\hal_stm32f4_spi.c",
|
||||||
"output": "HAL\\CMakeFiles\\hal.dir\\Src\\arch\\stm32f4\\hal_stm32f4_spi.c.obj"
|
"output": "HAL\\CMakeFiles\\hal.dir\\Src\\arch\\stm32f4\\hal_stm32f4_spi.c.obj"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"directory": "E:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/build/Debug",
|
||||||
|
"command": "D:\\ARM_GCC\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F407xx -DUSE_HAL_DRIVER -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/HAL/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/HAL/Inc/arch/stm32f4 -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/APP/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Core/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/CMSIS/Device/ST/STM32F4xx/Include -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/CMSIS/Include -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o HAL\\CMakeFiles\\hal.dir\\Src\\arch\\stm32f4\\hal_stm32f4_eth.c.obj -c E:\\Jfen_work\\local_git_code\\test_port\\stm32f407vet6_cmake\\HAL\\Src\\arch\\stm32f4\\hal_stm32f4_eth.c",
|
||||||
|
"file": "E:\\Jfen_work\\local_git_code\\test_port\\stm32f407vet6_cmake\\HAL\\Src\\arch\\stm32f4\\hal_stm32f4_eth.c",
|
||||||
|
"output": "HAL\\CMakeFiles\\hal.dir\\Src\\arch\\stm32f4\\hal_stm32f4_eth.c.obj"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"directory": "E:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/build/Debug",
|
"directory": "E:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/build/Debug",
|
||||||
"command": "D:\\ARM_GCC\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F407xx -DUSE_HAL_DRIVER -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/BSP/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/APP/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Core/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/CMSIS/Device/ST/STM32F4xx/Include -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/CMSIS/Include -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/HAL/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/HAL/Inc/arch/stm32f4 -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Modules/w25qxx/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Modules/delay/inc -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o BSP\\CMakeFiles\\bsp.dir\\Src\\bsp_init.c.obj -c E:\\Jfen_work\\local_git_code\\test_port\\stm32f407vet6_cmake\\BSP\\Src\\bsp_init.c",
|
"command": "D:\\ARM_GCC\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F407xx -DUSE_HAL_DRIVER -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/BSP/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/APP/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Core/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/CMSIS/Device/ST/STM32F4xx/Include -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/CMSIS/Include -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/HAL/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/HAL/Inc/arch/stm32f4 -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Modules/w25qxx/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Modules/delay/inc -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o BSP\\CMakeFiles\\bsp.dir\\Src\\bsp_init.c.obj -c E:\\Jfen_work\\local_git_code\\test_port\\stm32f407vet6_cmake\\BSP\\Src\\bsp_init.c",
|
||||||
@ -221,6 +239,12 @@
|
|||||||
"file": "E:\\Jfen_work\\local_git_code\\test_port\\stm32f407vet6_cmake\\BSP\\Src\\bsp_key.c",
|
"file": "E:\\Jfen_work\\local_git_code\\test_port\\stm32f407vet6_cmake\\BSP\\Src\\bsp_key.c",
|
||||||
"output": "BSP\\CMakeFiles\\bsp.dir\\Src\\bsp_key.c.obj"
|
"output": "BSP\\CMakeFiles\\bsp.dir\\Src\\bsp_key.c.obj"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"directory": "E:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/build/Debug",
|
||||||
|
"command": "D:\\ARM_GCC\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F407xx -DUSE_HAL_DRIVER -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/BSP/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/APP/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Core/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/CMSIS/Device/ST/STM32F4xx/Include -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/CMSIS/Include -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/HAL/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/HAL/Inc/arch/stm32f4 -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Modules/w25qxx/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Modules/delay/inc -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o BSP\\CMakeFiles\\bsp.dir\\Src\\bsp_eth.c.obj -c E:\\Jfen_work\\local_git_code\\test_port\\stm32f407vet6_cmake\\BSP\\Src\\bsp_eth.c",
|
||||||
|
"file": "E:\\Jfen_work\\local_git_code\\test_port\\stm32f407vet6_cmake\\BSP\\Src\\bsp_eth.c",
|
||||||
|
"output": "BSP\\CMakeFiles\\bsp.dir\\Src\\bsp_eth.c.obj"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"directory": "E:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/build/Debug",
|
"directory": "E:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/build/Debug",
|
||||||
"command": "D:\\ARM_GCC\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F407xx -DUSE_HAL_DRIVER -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Modules/led/inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/APP/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Core/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/CMSIS/Device/ST/STM32F4xx/Include -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/CMSIS/Include -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/HAL/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/HAL/Inc/arch/stm32f4 -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o Modules\\led\\CMakeFiles\\led.dir\\src\\led.c.obj -c E:\\Jfen_work\\local_git_code\\test_port\\stm32f407vet6_cmake\\Modules\\led\\src\\led.c",
|
"command": "D:\\ARM_GCC\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F407xx -DUSE_HAL_DRIVER -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Modules/led/inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/APP/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Core/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/CMSIS/Device/ST/STM32F4xx/Include -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/Drivers/CMSIS/Include -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/HAL/Inc -IE:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/HAL/Inc/arch/stm32f4 -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o Modules\\led\\CMakeFiles\\led.dir\\src\\led.c.obj -c E:\\Jfen_work\\local_git_code\\test_port\\stm32f407vet6_cmake\\Modules\\led\\src\\led.c",
|
||||||
|
|||||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -46,6 +46,7 @@ set(STM32_Drivers_Src
|
|||||||
${CMAKE_SOURCE_DIR}/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c
|
${CMAKE_SOURCE_DIR}/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c
|
||||||
${CMAKE_SOURCE_DIR}/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c
|
${CMAKE_SOURCE_DIR}/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c
|
||||||
${CMAKE_SOURCE_DIR}/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c
|
${CMAKE_SOURCE_DIR}/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c
|
||||||
|
${CMAKE_SOURCE_DIR}/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.c
|
||||||
)
|
)
|
||||||
|
|
||||||
# Drivers Midllewares
|
# Drivers Midllewares
|
||||||
|
|||||||
Reference in New Issue
Block a user