准备驱动移植适配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",
|
||||
"armToolchainPath": "D:/ARM_GCC/bin",
|
||||
"gdbPath": "D:/ARM_GCC/bin/arm-none-eabi-gdb.exe",
|
||||
"serverpath": "D:/SEGGER/JLink_V898/JLinkGDBServerCL.exe",
|
||||
"serverpath": "D:/SEGGER/JLink/JLinkGDBServerCL.exe",
|
||||
"serverArgs": [
|
||||
"-device", "STM32F407VE",
|
||||
"-if", "SWD",
|
||||
|
||||
@ -29,6 +29,7 @@
|
||||
#include "bsp_config.h"
|
||||
#include "bsp_w25qxx.h"
|
||||
#include "bsp_key.h"
|
||||
#include "bsp_eth.h"
|
||||
/* USER CODE END Includes */
|
||||
|
||||
/* Private typedef -----------------------------------------------------------*/
|
||||
@ -102,8 +103,36 @@ int main(void)
|
||||
delay_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();
|
||||
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 = {
|
||||
.gpio_port = board_config->leds.leds[0].port,
|
||||
.gpio_pin = board_config->leds.leds[0].pin
|
||||
@ -214,6 +243,28 @@ int main(void)
|
||||
log_debug("LED toggled\r\n");
|
||||
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 BEGIN 3 */
|
||||
@ -296,6 +347,6 @@ void assert_failed(uint8_t *file, uint32_t line)
|
||||
/* USER CODE BEGIN 6 */
|
||||
/* 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) */
|
||||
/* USER CODE END 6 */
|
||||
/* USER CODE END 6 */jn
|
||||
}
|
||||
#endif /* USE_FULL_ASSERT */
|
||||
|
||||
@ -10,6 +10,7 @@ target_sources(bsp PRIVATE
|
||||
Src/bsp_board_manager.c
|
||||
Src/bsp_w25qxx.c
|
||||
Src/bsp_key.c
|
||||
Src/bsp_eth.c
|
||||
)
|
||||
|
||||
# Add BSP include directories
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file : bsp_board.h
|
||||
* @brief : Board support package board abstraction header file
|
||||
* @brief : 板级支持包板级抽象头文件
|
||||
******************************************************************************
|
||||
*/
|
||||
/* USER CODE END Header */
|
||||
@ -18,9 +18,11 @@
|
||||
#include "hal_i2c.h"
|
||||
#include "hal_can.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_MINOR 0
|
||||
@ -28,49 +30,49 @@
|
||||
#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 {
|
||||
uint8_t enable; /*!< LED enable flag */
|
||||
hal_gpio_port_t port; /*!< LED GPIO port */
|
||||
hal_gpio_pin_t pin; /*!< LED GPIO pin */
|
||||
hal_gpio_mode_t mode; /*!< LED GPIO mode */
|
||||
hal_gpio_speed_t speed; /*!< LED GPIO speed */
|
||||
hal_gpio_pull_t pull; /*!< LED GPIO pull configuration */
|
||||
uint8_t enable; /*!< LED 使能标志 */
|
||||
hal_gpio_port_t port; /*!< LED GPIO 端口 */
|
||||
hal_gpio_pin_t pin; /*!< LED GPIO 引脚 */
|
||||
hal_gpio_mode_t mode; /*!< LED GPIO 模式 */
|
||||
hal_gpio_speed_t speed; /*!< LED GPIO 速度 */
|
||||
hal_gpio_pull_t pull; /*!< LED GPIO 上拉配置 */
|
||||
} bsp_led_config_t;
|
||||
|
||||
/**
|
||||
* @brief Board LEDs configuration structure
|
||||
* @brief 板级 LEDs 配置结构体
|
||||
*/
|
||||
typedef struct {
|
||||
uint8_t enable; /*!< LEDs enable flag */
|
||||
uint8_t count; /*!< Number of LEDs */
|
||||
const bsp_led_config_t* leds; /*!< Pointer to LEDs configuration array */
|
||||
uint8_t enable; /*!< LEDs 使能标志 */
|
||||
uint8_t count; /*!< LED 数量 */
|
||||
const bsp_led_config_t* leds; /*!< 指向 LEDs 配置数组的指针 */
|
||||
} bsp_leds_config_t;
|
||||
|
||||
/**
|
||||
* @brief Board button configuration structure
|
||||
* @brief 板级按键配置结构体
|
||||
*/
|
||||
typedef struct {
|
||||
hal_gpio_port_t port; /*!< Button GPIO port */
|
||||
hal_gpio_pin_t pin; /*!< Button GPIO pin */
|
||||
hal_gpio_mode_t mode; /*!< Button GPIO mode */
|
||||
hal_gpio_speed_t speed; /*!< Button GPIO speed */
|
||||
hal_gpio_pull_t pull; /*!< Button GPIO pull configuration */
|
||||
uint8_t active_high; /*!< Button active high flag */
|
||||
hal_gpio_port_t port; /*!< 按键 GPIO 端口 */
|
||||
hal_gpio_pin_t pin; /*!< 按键 GPIO 引脚 */
|
||||
hal_gpio_mode_t mode; /*!< 按键 GPIO 模式 */
|
||||
hal_gpio_speed_t speed; /*!< 按键 GPIO 速度 */
|
||||
hal_gpio_pull_t pull; /*!< 按键 GPIO 上拉配置 */
|
||||
uint8_t active_high; /*!< 按键高电平有效标志 */
|
||||
} bsp_button_config_t;
|
||||
|
||||
/**
|
||||
* @brief Board buttons configuration structure
|
||||
* @brief 板级按键组配置结构体
|
||||
*/
|
||||
typedef struct {
|
||||
uint8_t enable; /*!< Buttons enable flag */
|
||||
uint8_t count; /*!< Number of buttons */
|
||||
const bsp_button_config_t* buttons; /*!< Pointer to buttons configuration array */
|
||||
uint8_t enable; /*!< 按键使能标志 */
|
||||
uint8_t count; /*!< 按键数量 */
|
||||
const bsp_button_config_t* buttons; /*!< 指向按键配置数组的指针 */
|
||||
} bsp_buttons_config_t;
|
||||
|
||||
/**
|
||||
* @brief UART instance identifier definitions
|
||||
* @brief UART 实例标识符定义
|
||||
*/
|
||||
typedef enum {
|
||||
BSP_UART_INSTANCE_1 = 0,
|
||||
@ -83,251 +85,258 @@ typedef enum {
|
||||
} bsp_uart_instance_t;
|
||||
|
||||
/**
|
||||
* @brief Board UART configuration structure
|
||||
* @brief 板级 UART 配置结构体
|
||||
*/
|
||||
typedef struct {
|
||||
uint8_t enable; /*!< UART enable flag */
|
||||
bsp_uart_instance_t instance; /*!< UART instance */
|
||||
uint32_t baudrate; /*!< UART baudrate */
|
||||
hal_uart_parity_t parity; /*!< UART parity */
|
||||
hal_uart_stopbits_t stopbits; /*!< UART stop bits */
|
||||
hal_uart_databits_t databits; /*!< UART data bits */
|
||||
hal_gpio_port_t tx_port; /*!< UART TX port */
|
||||
hal_gpio_pin_t tx_pin; /*!< UART TX pin */
|
||||
hal_gpio_port_t rx_port; /*!< UART RX port */
|
||||
hal_gpio_pin_t rx_pin; /*!< UART RX pin */
|
||||
uint8_t enable; /*!< UART 使能标志 */
|
||||
bsp_uart_instance_t instance; /*!< UART 实例 */
|
||||
uint32_t baudrate; /*!< UART 波特率 */
|
||||
hal_uart_parity_t parity; /*!< UART 校验位 */
|
||||
hal_uart_stopbits_t stopbits; /*!< UART 停止位 */
|
||||
hal_uart_databits_t databits; /*!< UART 数据位 */
|
||||
hal_gpio_port_t tx_port; /*!< UART TX 端口 */
|
||||
hal_gpio_pin_t tx_pin; /*!< UART TX 引脚 */
|
||||
hal_gpio_port_t rx_port; /*!< UART RX 端口 */
|
||||
hal_gpio_pin_t rx_pin; /*!< UART RX 引脚 */
|
||||
} bsp_uart_config_t;
|
||||
|
||||
/**
|
||||
* @brief Board SPI configuration structure
|
||||
* @brief 板级 SPI 配置结构体
|
||||
*/
|
||||
typedef struct {
|
||||
uint8_t enable; /*!< SPI enable flag */
|
||||
hal_spi_instance_t instance; /*!< SPI instance */
|
||||
hal_spi_mode_t mode; /*!< SPI mode */
|
||||
uint32_t baudrate; /*!< SPI baudrate */
|
||||
hal_spi_polarity_t polarity; /*!< SPI clock polarity */
|
||||
hal_spi_phase_t phase; /*!< SPI clock phase */
|
||||
hal_spi_databits_t databits; /*!< SPI data bits */
|
||||
hal_gpio_port_t sck_port; /*!< SPI SCK port */
|
||||
hal_gpio_pin_t sck_pin; /*!< SPI SCK pin */
|
||||
hal_gpio_port_t miso_port; /*!< SPI MISO port */
|
||||
hal_gpio_pin_t miso_pin; /*!< SPI MISO pin */
|
||||
hal_gpio_port_t mosi_port; /*!< SPI MOSI port */
|
||||
hal_gpio_pin_t mosi_pin; /*!< SPI MOSI pin */
|
||||
uint8_t enable; /*!< SPI 使能标志 */
|
||||
hal_spi_instance_t instance; /*!< SPI 实例 */
|
||||
hal_spi_mode_t mode; /*!< SPI 模式 */
|
||||
uint32_t baudrate; /*!< SPI 波特率 */
|
||||
hal_spi_polarity_t polarity; /*!< SPI 时钟极性 */
|
||||
hal_spi_phase_t phase; /*!< SPI 时钟相位 */
|
||||
hal_spi_databits_t databits; /*!< SPI 数据位 */
|
||||
hal_gpio_port_t sck_port; /*!< SPI SCK 端口 */
|
||||
hal_gpio_pin_t sck_pin; /*!< SPI SCK 引脚 */
|
||||
hal_gpio_port_t miso_port; /*!< SPI MISO 端口 */
|
||||
hal_gpio_pin_t miso_pin; /*!< SPI MISO 引脚 */
|
||||
hal_gpio_port_t mosi_port; /*!< SPI MOSI 端口 */
|
||||
hal_gpio_pin_t mosi_pin; /*!< SPI MOSI 引脚 */
|
||||
} bsp_spi_config_t;
|
||||
|
||||
/**
|
||||
* @brief Board I2C configuration structure
|
||||
* @brief 板级 I2C 配置结构体
|
||||
*/
|
||||
typedef struct {
|
||||
uint8_t enable; /*!< I2C enable flag */
|
||||
hal_i2c_instance_t instance; /*!< I2C instance */
|
||||
hal_i2c_speed_t speed; /*!< I2C speed */
|
||||
hal_i2c_address_mode_t address_mode; /*!< I2C address mode */
|
||||
hal_i2c_dutycycle_t dutycycle; /*!< I2C duty cycle */
|
||||
uint16_t own_address1; /*!< I2C own address 1 */
|
||||
hal_gpio_port_t scl_port; /*!< I2C SCL port */
|
||||
hal_gpio_pin_t scl_pin; /*!< I2C SCL pin */
|
||||
hal_gpio_port_t sda_port; /*!< I2C SDA port */
|
||||
hal_gpio_pin_t sda_pin; /*!< I2C SDA pin */
|
||||
uint8_t enable; /*!< I2C 使能标志 */
|
||||
hal_i2c_instance_t instance; /*!< I2C 实例 */
|
||||
hal_i2c_speed_t speed; /*!< I2C 速度 */
|
||||
hal_i2c_address_mode_t address_mode; /*!< I2C 地址模式 */
|
||||
hal_i2c_dutycycle_t dutycycle; /*!< I2C 占空比 */
|
||||
uint16_t own_address1; /*!< I2C 自身地址 1 */
|
||||
hal_gpio_port_t scl_port; /*!< I2C SCL 端口 */
|
||||
hal_gpio_pin_t scl_pin; /*!< I2C SCL 引脚 */
|
||||
hal_gpio_port_t sda_port; /*!< I2C SDA 端口 */
|
||||
hal_gpio_pin_t sda_pin; /*!< I2C SDA 引脚 */
|
||||
} bsp_i2c_config_t;
|
||||
|
||||
/**
|
||||
* @brief Board CAN configuration structure
|
||||
* @brief 板级 CAN 配置结构体
|
||||
*/
|
||||
typedef struct {
|
||||
uint8_t enable; /*!< CAN enable flag */
|
||||
hal_can_instance_t instance; /*!< CAN instance */
|
||||
hal_can_mode_t mode; /*!< CAN mode */
|
||||
uint32_t prescaler; /*!< CAN prescaler */
|
||||
uint8_t sync_jump_width; /*!< CAN sync jump width */
|
||||
uint8_t time_segment1; /*!< CAN time segment 1 */
|
||||
uint8_t time_segment2; /*!< CAN time segment 2 */
|
||||
hal_gpio_port_t rx_port; /*!< CAN RX port */
|
||||
hal_gpio_pin_t rx_pin; /*!< CAN RX pin */
|
||||
hal_gpio_port_t tx_port; /*!< CAN TX port */
|
||||
hal_gpio_pin_t tx_pin; /*!< CAN TX pin */
|
||||
uint8_t enable; /*!< CAN 使能标志 */
|
||||
hal_can_instance_t instance; /*!< CAN 实例 */
|
||||
hal_can_mode_t mode; /*!< CAN 模式 */
|
||||
uint32_t prescaler; /*!< CAN 预分频器 */
|
||||
uint8_t sync_jump_width; /*!< CAN 同步跳转宽度 */
|
||||
uint8_t time_segment1; /*!< CAN 时间段 1 */
|
||||
uint8_t time_segment2; /*!< CAN 时间段 2 */
|
||||
hal_gpio_port_t rx_port; /*!< CAN RX 端口 */
|
||||
hal_gpio_pin_t rx_pin; /*!< CAN RX 引脚 */
|
||||
hal_gpio_port_t tx_port; /*!< CAN TX 端口 */
|
||||
hal_gpio_pin_t tx_pin; /*!< CAN TX 引脚 */
|
||||
} bsp_can_config_t;
|
||||
|
||||
/**
|
||||
* @brief Board ADC channel configuration structure
|
||||
* @brief 板级 ADC 通道配置结构体
|
||||
*/
|
||||
typedef struct {
|
||||
uint8_t enable; /*!< ADC channel enable flag */
|
||||
hal_adc_channel_t channel; /*!< ADC channel */
|
||||
hal_adc_sampletime_t sampletime; /*!< ADC sample time */
|
||||
uint8_t rank; /*!< ADC channel rank */
|
||||
uint8_t enable; /*!< ADC 通道使能标志 */
|
||||
hal_adc_channel_t channel; /*!< ADC 通道 */
|
||||
hal_adc_sampletime_t sampletime; /*!< ADC 采样时间 */
|
||||
uint8_t rank; /*!< ADC 通道优先级 */
|
||||
} bsp_adc_channel_config_t;
|
||||
|
||||
/**
|
||||
* @brief Board ADC configuration structure
|
||||
* @brief 板级 ADC 配置结构体
|
||||
*/
|
||||
typedef struct {
|
||||
uint8_t enable; /*!< ADC enable flag */
|
||||
hal_adc_instance_t instance; /*!< ADC instance */
|
||||
hal_adc_resolution_t resolution; /*!< ADC resolution */
|
||||
uint8_t scan_conversion_mode; /*!< ADC scan conversion mode */
|
||||
uint8_t continuous_conversion_mode; /*!< ADC continuous conversion mode */
|
||||
uint8_t channel_count; /*!< Number of ADC channels */
|
||||
const bsp_adc_channel_config_t* channels; /*!< Pointer to ADC channels configuration array */
|
||||
uint8_t enable; /*!< ADC 使能标志 */
|
||||
hal_adc_instance_t instance; /*!< ADC 实例 */
|
||||
hal_adc_resolution_t resolution; /*!< ADC 分辨率 */
|
||||
uint8_t scan_conversion_mode; /*!< ADC 扫描转换模式 */
|
||||
uint8_t continuous_conversion_mode; /*!< ADC 连续转换模式 */
|
||||
uint8_t channel_count; /*!< ADC 通道数量 */
|
||||
const bsp_adc_channel_config_t* channels; /*!< 指向 ADC 通道配置数组的指针 */
|
||||
} bsp_adc_config_t;
|
||||
|
||||
/**
|
||||
* @brief Board W25QXX configuration structure
|
||||
* @brief 板级 W25QXX 配置结构体
|
||||
*/
|
||||
typedef struct {
|
||||
uint8_t enable; /*!< W25QXX enable flag */
|
||||
hal_gpio_port_t cs_port; /*!< W25QXX CS port */
|
||||
hal_gpio_pin_t cs_pin; /*!< W25QXX CS pin */
|
||||
uint8_t spi_instance; /*!< SPI instance used by W25QXX */
|
||||
uint8_t enable; /*!< W25QXX 使能标志 */
|
||||
hal_gpio_port_t cs_port; /*!< W25QXX CS 端口 */
|
||||
hal_gpio_pin_t cs_pin; /*!< W25QXX CS 引脚 */
|
||||
uint8_t spi_instance; /*!< W25QXX 使用的 SPI 实例 */
|
||||
} bsp_w25qxx_config_t;
|
||||
|
||||
/**
|
||||
* @brief Board peripheral initialization function type
|
||||
* @brief 板级外设初始化函数类型
|
||||
*/
|
||||
typedef hal_ret_t (*bsp_periph_init_func_t)(const void* config);
|
||||
|
||||
/**
|
||||
* @brief Board ID structure
|
||||
* @brief 板级 ID 结构体
|
||||
*/
|
||||
typedef struct {
|
||||
uint16_t vendor_id; /*!< Board vendor ID */
|
||||
uint16_t product_id; /*!< Board product ID */
|
||||
uint32_t serial_number; /*!< Board serial number */
|
||||
uint16_t vendor_id; /*!< 板级厂商 ID */
|
||||
uint16_t product_id; /*!< 板级产品 ID */
|
||||
uint32_t serial_number; /*!< 板级序列号 */
|
||||
} bsp_board_id_t;
|
||||
|
||||
/**
|
||||
* @brief Board feature flags
|
||||
* @brief 板级特性标志
|
||||
*/
|
||||
typedef enum {
|
||||
BSP_BOARD_FEATURE_LED = (1 << 0), /*!< Board has LED support */
|
||||
BSP_BOARD_FEATURE_BUTTON = (1 << 1), /*!< Board has button support */
|
||||
BSP_BOARD_FEATURE_UART = (1 << 2), /*!< Board has UART support */
|
||||
BSP_BOARD_FEATURE_SPI = (1 << 3), /*!< Board has SPI support */
|
||||
BSP_BOARD_FEATURE_I2C = (1 << 4), /*!< Board has I2C support */
|
||||
BSP_BOARD_FEATURE_CAN = (1 << 5), /*!< Board has CAN support */
|
||||
BSP_BOARD_FEATURE_ADC = (1 << 6), /*!< Board has ADC support */
|
||||
BSP_BOARD_FEATURE_DAC = (1 << 7), /*!< Board has DAC support */
|
||||
BSP_BOARD_FEATURE_TIMER = (1 << 8), /*!< Board has TIMER support */
|
||||
BSP_BOARD_FEATURE_RTC = (1 << 9), /*!< Board has RTC support */
|
||||
BSP_BOARD_FEATURE_W25QXX = (1 << 10), /*!< Board has W25QXX support */
|
||||
BSP_BOARD_FEATURE_DMA = (1 << 11), /*!< Board has DMA support */
|
||||
BSP_BOARD_FEATURE_ETH = (1 << 12), /*!< Board has ETH support */
|
||||
BSP_BOARD_FEATURE_USB = (1 << 13), /*!< Board has USB support */
|
||||
BSP_BOARD_FEATURE_SDIO = (1 << 14), /*!< Board has SDIO support */
|
||||
BSP_BOARD_FEATURE_FSMC = (1 << 15), /*!< Board has FSMC support */
|
||||
BSP_BOARD_FEATURE_LED = (1 << 0), /*!< 板级支持 LED */
|
||||
BSP_BOARD_FEATURE_BUTTON = (1 << 1), /*!< 板级支持按键 */
|
||||
BSP_BOARD_FEATURE_UART = (1 << 2), /*!< 板级支持 UART */
|
||||
BSP_BOARD_FEATURE_SPI = (1 << 3), /*!< 板级支持 SPI */
|
||||
BSP_BOARD_FEATURE_I2C = (1 << 4), /*!< 板级支持 I2C */
|
||||
BSP_BOARD_FEATURE_CAN = (1 << 5), /*!< 板级支持 CAN */
|
||||
BSP_BOARD_FEATURE_ADC = (1 << 6), /*!< 板级支持 ADC */
|
||||
BSP_BOARD_FEATURE_DAC = (1 << 7), /*!< 板级支持 DAC */
|
||||
BSP_BOARD_FEATURE_TIMER = (1 << 8), /*!< 板级支持 TIMER */
|
||||
BSP_BOARD_FEATURE_RTC = (1 << 9), /*!< 板级支持 RTC */
|
||||
BSP_BOARD_FEATURE_W25QXX = (1 << 10), /*!< 板级支持 W25QXX */
|
||||
BSP_BOARD_FEATURE_DMA = (1 << 11), /*!< 板级支持 DMA */
|
||||
BSP_BOARD_FEATURE_ETH = (1 << 12), /*!< 板级支持 ETH */
|
||||
BSP_BOARD_FEATURE_USB = (1 << 13), /*!< 板级支持 USB */
|
||||
BSP_BOARD_FEATURE_SDIO = (1 << 14), /*!< 板级支持 SDIO */
|
||||
BSP_BOARD_FEATURE_FSMC = (1 << 15), /*!< 板级支持 FSMC */
|
||||
} bsp_board_feature_t;
|
||||
|
||||
/**
|
||||
* @brief Board hardware information structure
|
||||
* @brief 板级硬件信息结构体
|
||||
*/
|
||||
typedef struct {
|
||||
uint32_t clock_speed; /*!< Board clock speed */
|
||||
uint32_t flash_size; /*!< Flash size in bytes */
|
||||
uint32_t ram_size; /*!< RAM size in bytes */
|
||||
uint32_t eeprom_size; /*!< EEPROM size in bytes */
|
||||
uint32_t sram_size; /*!< SRAM size in bytes */
|
||||
uint8_t cpu_core; /*!< CPU core type */
|
||||
uint8_t cpu_bits; /*!< CPU bits (32 or 64) */
|
||||
uint32_t clock_speed; /*!< 板级时钟速度 */
|
||||
uint32_t flash_size; /*!< Flash 大小(字节) */
|
||||
uint32_t ram_size; /*!< RAM 大小(字节) */
|
||||
uint32_t eeprom_size; /*!< EEPROM 大小(字节) */
|
||||
uint32_t sram_size; /*!< SRAM 大小(字节) */
|
||||
uint8_t cpu_core; /*!< CPU 核心类型 */
|
||||
uint8_t cpu_bits; /*!< CPU 位数(32 或 64) */
|
||||
} bsp_board_hw_info_t;
|
||||
|
||||
/**
|
||||
* @brief Board peripheral configuration structure
|
||||
* @brief 板级外设配置结构体
|
||||
*/
|
||||
typedef struct {
|
||||
/* UART configurations */
|
||||
uint8_t uart_count; /*!< Number of UARTs */
|
||||
const bsp_uart_config_t* uarts; /*!< Pointer to UARTs configuration array */
|
||||
/* UART 配置 */
|
||||
uint8_t uart_count; /*!< UART 数量 */
|
||||
const bsp_uart_config_t* uarts; /*!< 指向 UART 配置数组的指针 */
|
||||
|
||||
/* SPI configurations */
|
||||
uint8_t spi_count; /*!< Number of SPIs */
|
||||
const bsp_spi_config_t* spis; /*!< Pointer to SPIs configuration array */
|
||||
/* SPI 配置 */
|
||||
uint8_t spi_count; /*!< SPI 数量 */
|
||||
const bsp_spi_config_t* spis; /*!< 指向 SPI 配置数组的指针 */
|
||||
|
||||
/* I2C configurations */
|
||||
uint8_t i2c_count; /*!< Number of I2Cs */
|
||||
const bsp_i2c_config_t* i2cs; /*!< Pointer to I2Cs configuration array */
|
||||
/* I2C 配置 */
|
||||
uint8_t i2c_count; /*!< I2C 数量 */
|
||||
const bsp_i2c_config_t* i2cs; /*!< 指向 I2C 配置数组的指针 */
|
||||
|
||||
/* CAN configurations */
|
||||
uint8_t can_count; /*!< Number of CANs */
|
||||
const bsp_can_config_t* cans; /*!< Pointer to CANs configuration array */
|
||||
/* CAN 配置 */
|
||||
uint8_t can_count; /*!< CAN 数量 */
|
||||
const bsp_can_config_t* cans; /*!< 指向 CAN 配置数组的指针 */
|
||||
|
||||
/* ADC configurations */
|
||||
uint8_t adc_count; /*!< Number of ADCs */
|
||||
const bsp_adc_config_t* adcs; /*!< Pointer to ADCs configuration array */
|
||||
/* ADC 配置 */
|
||||
uint8_t adc_count; /*!< ADC 数量 */
|
||||
const bsp_adc_config_t* adcs; /*!< 指向 ADC 配置数组的指针 */
|
||||
} bsp_board_periph_config_t;
|
||||
|
||||
/**
|
||||
* @brief Board initialization function pointers structure
|
||||
* @brief 板级以太网配置结构体
|
||||
*/
|
||||
// bsp_eth_config_t 在 bsp_eth.h 中定义
|
||||
|
||||
/**
|
||||
* @brief 板级初始化函数指针结构体
|
||||
*/
|
||||
typedef struct {
|
||||
bsp_periph_init_func_t led_init; /*!< LED initialization function */
|
||||
bsp_periph_init_func_t button_init; /*!< Button initialization function */
|
||||
bsp_periph_init_func_t uart_init; /*!< UART initialization function */
|
||||
bsp_periph_init_func_t spi_init; /*!< SPI initialization function */
|
||||
bsp_periph_init_func_t i2c_init; /*!< I2C initialization function */
|
||||
bsp_periph_init_func_t can_init; /*!< CAN initialization function */
|
||||
bsp_periph_init_func_t adc_init; /*!< ADC initialization function */
|
||||
bsp_periph_init_func_t w25qxx_init; /*!< W25QXX initialization function */
|
||||
bsp_periph_init_func_t led_init; /*!< LED 初始化函数 */
|
||||
bsp_periph_init_func_t button_init; /*!< 按键初始化函数 */
|
||||
bsp_periph_init_func_t uart_init; /*!< UART 初始化函数 */
|
||||
bsp_periph_init_func_t spi_init; /*!< SPI 初始化函数 */
|
||||
bsp_periph_init_func_t i2c_init; /*!< I2C 初始化函数 */
|
||||
bsp_periph_init_func_t can_init; /*!< CAN 初始化函数 */
|
||||
bsp_periph_init_func_t adc_init; /*!< ADC 初始化函数 */
|
||||
bsp_periph_init_func_t w25qxx_init; /*!< W25QXX 初始化函数 */
|
||||
bsp_periph_init_func_t eth_init; /*!< 以太网初始化函数 */
|
||||
} bsp_board_init_funcs_t;
|
||||
|
||||
/**
|
||||
* @brief Board configuration structure
|
||||
* @brief 板级配置结构体
|
||||
*/
|
||||
typedef struct {
|
||||
uint32_t version; /*!< Configuration version */
|
||||
const char* name; /*!< Board name */
|
||||
const char* description; /*!< Board description */
|
||||
bsp_board_id_t id; /*!< Board ID information */
|
||||
uint32_t version; /*!< 配置版本 */
|
||||
const char* name; /*!< 板级名称 */
|
||||
const char* description; /*!< 板级描述 */
|
||||
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_buttons_config_t buttons; /*!< Buttons configuration */
|
||||
bsp_w25qxx_config_t w25qxx; /*!< W25QXX configuration */
|
||||
/* 外设配置 */
|
||||
bsp_leds_config_t leds; /*!< LEDs 配置 */
|
||||
bsp_buttons_config_t buttons; /*!< 按键配置 */
|
||||
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 */
|
||||
size_t custom_config_size; /*!< Custom board configuration size */
|
||||
/* 板级特定配置 */
|
||||
void* custom_config; /*!< 自定义板级配置指针 */
|
||||
size_t custom_config_size; /*!< 自定义板级配置大小 */
|
||||
|
||||
/* Board revision information */
|
||||
uint8_t major_rev; /*!< Major revision */
|
||||
uint8_t minor_rev; /*!< Minor revision */
|
||||
uint8_t patch_rev; /*!< Patch revision */
|
||||
const char* revision_desc; /*!< Revision description */
|
||||
/* 板级版本信息 */
|
||||
uint8_t major_rev; /*!< 主版本 */
|
||||
uint8_t minor_rev; /*!< 次版本 */
|
||||
uint8_t patch_rev; /*!< 补丁版本 */
|
||||
const char* revision_desc; /*!< 版本描述 */
|
||||
} bsp_board_config_t;
|
||||
|
||||
/**
|
||||
* @brief STM32F407VET6 board configuration extern declaration
|
||||
* @brief STM32F407VET6 板级配置外部声明
|
||||
*/
|
||||
extern const bsp_board_config_t stm32f407vet6_board_config;
|
||||
|
||||
/**
|
||||
* @brief Board hardware initialization
|
||||
* @retval HAL status code
|
||||
* @brief 板级硬件初始化
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_board_init(void);
|
||||
|
||||
/**
|
||||
* @brief Get board name
|
||||
* @retval Board name string
|
||||
* @brief 获取板级名称
|
||||
* @retval 板级名称字符串
|
||||
*/
|
||||
const char* bsp_board_get_name(void);
|
||||
|
||||
/**
|
||||
* @brief Get board configuration
|
||||
* @retval Pointer to board configuration structure
|
||||
* @brief 获取板级配置
|
||||
* @retval 指向板级配置结构体的指针
|
||||
*/
|
||||
const bsp_board_config_t* bsp_board_get_config(void);
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file : bsp_board_manager.h
|
||||
* @brief : Board support package manager header file
|
||||
* @brief : 板级支持包管理器头文件
|
||||
******************************************************************************
|
||||
*/
|
||||
/* USER CODE END Header */
|
||||
@ -15,48 +15,48 @@
|
||||
#include "bsp_board.h"
|
||||
|
||||
/**
|
||||
* @brief Get number of supported boards
|
||||
* @retval Number of supported boards
|
||||
* @brief 获取支持的板卡数量
|
||||
* @retval 支持的板卡数量
|
||||
*/
|
||||
uint8_t bsp_board_get_count(void);
|
||||
|
||||
/**
|
||||
* @brief Get board configuration by index
|
||||
* @param index: Board configuration index
|
||||
* @retval Pointer to board configuration structure, NULL if invalid index
|
||||
* @brief 通过索引获取板卡配置
|
||||
* @param index: 板卡配置索引
|
||||
* @retval 指向板卡配置结构体的指针,无效索引返回 NULL
|
||||
*/
|
||||
const bsp_board_config_t* bsp_board_get_by_index(uint8_t index);
|
||||
|
||||
/**
|
||||
* @brief Get board configuration by name
|
||||
* @param name: Board name string
|
||||
* @retval Pointer to board configuration structure, NULL if not found
|
||||
* @brief 通过名称获取板卡配置
|
||||
* @param name: 板卡名称字符串
|
||||
* @retval 指向板卡配置结构体的指针,未找到返回 NULL
|
||||
*/
|
||||
const bsp_board_config_t* bsp_board_get_by_name(const char* name);
|
||||
|
||||
/**
|
||||
* @brief Set current board configuration by index
|
||||
* @param index: Board configuration index
|
||||
* @retval HAL status code
|
||||
* @brief 通过索引设置当前板卡配置
|
||||
* @param index: 板卡配置索引
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_board_set_by_index(uint8_t index);
|
||||
|
||||
/**
|
||||
* @brief Set current board configuration by name
|
||||
* @param name: Board name string
|
||||
* @retval HAL status code
|
||||
* @brief 通过名称设置当前板卡配置
|
||||
* @param name: 板卡名称字符串
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_board_set_by_name(const char* name);
|
||||
|
||||
/**
|
||||
* @brief Get current board configuration
|
||||
* @retval Pointer to current board configuration structure
|
||||
* @brief 获取当前板卡配置
|
||||
* @retval 指向当前板卡配置结构体的指针
|
||||
*/
|
||||
const bsp_board_config_t* bsp_board_get_config(void);
|
||||
|
||||
/**
|
||||
* @brief Get current board index
|
||||
* @retval Current board index
|
||||
* @brief 获取当前板卡索引
|
||||
* @retval 当前板卡索引
|
||||
*/
|
||||
uint8_t bsp_board_get_current_index(void);
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file : bsp_config.h
|
||||
* @brief : Board support package configuration file header
|
||||
* @brief : 板级支持包配置文件头文件
|
||||
******************************************************************************
|
||||
*/
|
||||
/* USER CODE END Header */
|
||||
@ -16,7 +16,7 @@
|
||||
#include "hal.h"
|
||||
|
||||
/**
|
||||
* @brief BSP configuration file format definitions
|
||||
* @brief BSP 配置文件格式定义
|
||||
*/
|
||||
#define BSP_CONFIG_FILE_VERSION "1.0.0"
|
||||
#define BSP_CONFIG_MAX_LINE_LENGTH 256
|
||||
@ -25,7 +25,7 @@
|
||||
#define BSP_CONFIG_MAX_VALUE_LENGTH 128
|
||||
|
||||
/**
|
||||
* @brief BSP configuration section type
|
||||
* @brief BSP 配置节类型
|
||||
*/
|
||||
typedef enum {
|
||||
BSP_CONFIG_SECTION_NONE = 0,
|
||||
@ -36,7 +36,7 @@ typedef enum {
|
||||
} bsp_config_section_t;
|
||||
|
||||
/**
|
||||
* @brief BSP configuration entry
|
||||
* @brief BSP 配置条目
|
||||
*/
|
||||
typedef struct {
|
||||
const char* section;
|
||||
@ -45,7 +45,7 @@ typedef struct {
|
||||
} bsp_config_entry_t;
|
||||
|
||||
/**
|
||||
* @brief BSP configuration parser context
|
||||
* @brief BSP 配置解析器上下文
|
||||
*/
|
||||
typedef struct {
|
||||
FILE* file;
|
||||
@ -56,7 +56,7 @@ typedef struct {
|
||||
} bsp_config_parser_t;
|
||||
|
||||
/**
|
||||
* @brief BSP configuration file operations
|
||||
* @brief BSP 配置文件操作
|
||||
*/
|
||||
typedef struct {
|
||||
hal_ret_t (*open)(const char* filename, bsp_config_parser_t* parser);
|
||||
@ -69,115 +69,115 @@ typedef struct {
|
||||
} bsp_config_ops_t;
|
||||
|
||||
/**
|
||||
* @brief Initialize BSP configuration system
|
||||
* @retval HAL status code
|
||||
* @brief 初始化 BSP 配置系统
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_config_init(void);
|
||||
|
||||
/**
|
||||
* @brief Deinitialize BSP configuration system
|
||||
* @retval HAL status code
|
||||
* @brief 反初始化 BSP 配置系统
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_config_deinit(void);
|
||||
|
||||
/**
|
||||
* @brief Load BSP configuration from file
|
||||
* @param filename: Configuration file name
|
||||
* @retval HAL status code
|
||||
* @brief 从文件加载 BSP 配置
|
||||
* @param filename: 配置文件名称
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_config_load(const char* filename);
|
||||
|
||||
/**
|
||||
* @brief Save BSP configuration to file
|
||||
* @param filename: Configuration file name
|
||||
* @retval HAL status code
|
||||
* @brief 保存 BSP 配置到文件
|
||||
* @param filename: 配置文件名称
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_config_save(const char* filename);
|
||||
|
||||
/**
|
||||
* @brief Get configuration value
|
||||
* @param section: Configuration section name
|
||||
* @param key: Configuration key name
|
||||
* @param value: Pointer to store value
|
||||
* @param max_length: Maximum length of value buffer
|
||||
* @retval HAL status code
|
||||
* @brief 获取配置值
|
||||
* @param section: 配置节名称
|
||||
* @param key: 配置键名称
|
||||
* @param value: 存储值的指针
|
||||
* @param max_length: 值缓冲区的最大长度
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_config_get_value(const char* section, const char* key, char* value, size_t max_length);
|
||||
|
||||
/**
|
||||
* @brief Set configuration value
|
||||
* @param section: Configuration section name
|
||||
* @param key: Configuration key name
|
||||
* @param value: Configuration value
|
||||
* @retval HAL status code
|
||||
* @brief 设置配置值
|
||||
* @param section: 配置节名称
|
||||
* @param key: 配置键名称
|
||||
* @param value: 配置值
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_config_set_value(const char* section, const char* key, const char* value);
|
||||
|
||||
/**
|
||||
* @brief Get configuration value as integer
|
||||
* @param section: Configuration section name
|
||||
* @param key: Configuration key name
|
||||
* @param value: Pointer to store integer value
|
||||
* @retval HAL status code
|
||||
* @brief 获取配置值作为整数
|
||||
* @param section: 配置节名称
|
||||
* @param key: 配置键名称
|
||||
* @param value: 存储整数值的指针
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_config_get_int(const char* section, const char* key, int* value);
|
||||
|
||||
/**
|
||||
* @brief Set configuration value as integer
|
||||
* @param section: Configuration section name
|
||||
* @param key: Configuration key name
|
||||
* @param value: Integer value
|
||||
* @retval HAL status code
|
||||
* @brief 设置配置值作为整数
|
||||
* @param section: 配置节名称
|
||||
* @param key: 配置键名称
|
||||
* @param value: 整数值
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_config_set_int(const char* section, const char* key, int value);
|
||||
|
||||
/**
|
||||
* @brief Get configuration value as unsigned integer
|
||||
* @param section: Configuration section name
|
||||
* @param key: Configuration key name
|
||||
* @param value: Pointer to store unsigned integer value
|
||||
* @retval HAL status code
|
||||
* @brief 获取配置值作为无符号整数
|
||||
* @param section: 配置节名称
|
||||
* @param key: 配置键名称
|
||||
* @param value: 存储无符号整数值的指针
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_config_get_uint(const char* section, const char* key, uint32_t* value);
|
||||
|
||||
/**
|
||||
* @brief Set configuration value as unsigned integer
|
||||
* @param section: Configuration section name
|
||||
* @param key: Configuration key name
|
||||
* @param value: Unsigned integer value
|
||||
* @retval HAL status code
|
||||
* @brief 设置配置值作为无符号整数
|
||||
* @param section: 配置节名称
|
||||
* @param key: 配置键名称
|
||||
* @param value: 无符号整数值
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_config_set_uint(const char* section, const char* key, uint32_t value);
|
||||
|
||||
/**
|
||||
* @brief Get configuration value as boolean
|
||||
* @param section: Configuration section name
|
||||
* @param key: Configuration key name
|
||||
* @param value: Pointer to store boolean value
|
||||
* @retval HAL status code
|
||||
* @brief 获取配置值作为布尔值
|
||||
* @param section: 配置节名称
|
||||
* @param key: 配置键名称
|
||||
* @param value: 存储布尔值的指针
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_config_get_bool(const char* section, const char* key, uint8_t* value);
|
||||
|
||||
/**
|
||||
* @brief Set configuration value as boolean
|
||||
* @param section: Configuration section name
|
||||
* @param key: Configuration key name
|
||||
* @param value: Boolean value
|
||||
* @retval HAL status code
|
||||
* @brief 设置配置值作为布尔值
|
||||
* @param section: 配置节名称
|
||||
* @param key: 配置键名称
|
||||
* @param value: 布尔值
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_config_set_bool(const char* section, const char* key, uint8_t value);
|
||||
|
||||
/**
|
||||
* @brief Parse BSP modules from configuration
|
||||
* @param config: Pointer to BSP board configuration structure to fill
|
||||
* @retval HAL status code
|
||||
* @brief 从配置解析 BSP 模块
|
||||
* @param config: 指向要填充的 BSP 板卡配置结构体的指针
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_config_parse_modules(bsp_board_config_t* config);
|
||||
|
||||
/**
|
||||
* @brief Initialize BSP from configuration file
|
||||
* @param filename: Configuration file name
|
||||
* @retval HAL status code
|
||||
* @brief 从配置文件初始化 BSP
|
||||
* @param filename: 配置文件名称
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
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
|
||||
* @brief : Board support package initialization header file
|
||||
* @brief : 板级支持包初始化头文件
|
||||
******************************************************************************
|
||||
*/
|
||||
/* USER CODE END Header */
|
||||
@ -13,26 +13,26 @@
|
||||
#include "bsp_board.h"
|
||||
|
||||
/**
|
||||
* @brief Initialize board support package
|
||||
* @retval HAL status code
|
||||
* @brief 初始化板级支持包
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_init(void);
|
||||
|
||||
/**
|
||||
* @brief Initialize board GPIO
|
||||
* @retval HAL status code
|
||||
* @brief 初始化板级 GPIO
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_gpio_init(void);
|
||||
|
||||
/**
|
||||
* @brief Get board name
|
||||
* @retval Board name string
|
||||
* @brief 获取板级名称
|
||||
* @retval 板级名称字符串
|
||||
*/
|
||||
const char* bsp_get_board_name(void);
|
||||
|
||||
/**
|
||||
* @brief Get current board configuration
|
||||
* @retval Pointer to board configuration structure
|
||||
* @brief 获取当前板级配置
|
||||
* @retval 指向板级配置结构体的指针
|
||||
*/
|
||||
const bsp_board_config_t* bsp_get_board_config(void);
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file : bsp_key.h
|
||||
* @brief : Board support package key driver header file
|
||||
* @brief : 板级支持包按键驱动头文件
|
||||
******************************************************************************
|
||||
*/
|
||||
/* USER CODE END Header */
|
||||
@ -13,7 +13,7 @@
|
||||
#include <stdint.h>
|
||||
|
||||
/**
|
||||
* @brief Key ID definitions
|
||||
* @brief 按键 ID 定义
|
||||
*/
|
||||
typedef enum {
|
||||
BSP_KEY_ID_KEY0 = 0,
|
||||
@ -23,7 +23,7 @@ typedef enum {
|
||||
} bsp_key_id_t;
|
||||
|
||||
/**
|
||||
* @brief Key state definitions
|
||||
* @brief 按键状态定义
|
||||
*/
|
||||
typedef enum {
|
||||
BSP_KEY_STATE_RELEASED = 0,
|
||||
@ -31,80 +31,80 @@ typedef enum {
|
||||
} bsp_key_state_t;
|
||||
|
||||
/**
|
||||
* @brief Key event definitions
|
||||
* @brief 按键事件定义
|
||||
*/
|
||||
typedef enum {
|
||||
BSP_KEY_EVENT_NONE = 0,
|
||||
BSP_KEY_EVENT_PRESSED, /* Key pressed event */
|
||||
BSP_KEY_EVENT_RELEASED, /* Key released event */
|
||||
BSP_KEY_EVENT_LONG_PRESSED, /* Key long pressed event */
|
||||
BSP_KEY_EVENT_REPEAT, /* Key repeat event */
|
||||
BSP_KEY_EVENT_SHORT_PRESSED /* Key short pressed event */
|
||||
BSP_KEY_EVENT_PRESSED, /* 按键按下事件 */
|
||||
BSP_KEY_EVENT_RELEASED, /* 按键释放事件 */
|
||||
BSP_KEY_EVENT_LONG_PRESSED, /* 按键长按事件 */
|
||||
BSP_KEY_EVENT_REPEAT, /* 按键重复事件 */
|
||||
BSP_KEY_EVENT_SHORT_PRESSED /* 按键短按事件 */
|
||||
} bsp_key_event_t;
|
||||
|
||||
/**
|
||||
* @brief Initialize all keys
|
||||
* @brief 初始化所有按键
|
||||
*/
|
||||
void bsp_key_init(void);
|
||||
|
||||
/**
|
||||
* @brief Update key state (call this function periodically, e.g. every 10ms)
|
||||
* @brief 更新按键状态(定期调用此函数,例如每 10ms)
|
||||
*/
|
||||
void bsp_key_update(void);
|
||||
|
||||
/**
|
||||
* @brief Read debounced key state
|
||||
* @param key_id: Key ID
|
||||
* @retval Key state
|
||||
* @brief 读取去抖后的按键状态
|
||||
* @param key_id: 按键 ID
|
||||
* @retval 按键状态
|
||||
*/
|
||||
bsp_key_state_t bsp_key_read(bsp_key_id_t key_id);
|
||||
|
||||
/**
|
||||
* @brief Check if key is pressed
|
||||
* @param key_id: Key ID
|
||||
* @retval 1 if pressed, 0 otherwise
|
||||
* @brief 检查按键是否按下
|
||||
* @param key_id: 按键 ID
|
||||
* @retval 按下返回 1,否则返回 0
|
||||
*/
|
||||
uint8_t bsp_key_is_pressed(bsp_key_id_t key_id);
|
||||
|
||||
/**
|
||||
* @brief Check if key is released
|
||||
* @param key_id: Key ID
|
||||
* @retval 1 if released, 0 otherwise
|
||||
* @brief 检查按键是否释放
|
||||
* @param key_id: 按键 ID
|
||||
* @retval 释放返回 1,否则返回 0
|
||||
*/
|
||||
uint8_t bsp_key_is_released(bsp_key_id_t key_id);
|
||||
|
||||
/**
|
||||
* @brief Check for key press event (edge detection)
|
||||
* @param key_id: Key ID
|
||||
* @retval 1 if key was pressed, 0 otherwise
|
||||
* @brief 检查按键按下事件(边沿检测)
|
||||
* @param key_id: 按键 ID
|
||||
* @retval 按键按下返回 1,否则返回 0
|
||||
*/
|
||||
uint8_t bsp_key_get_press_event(bsp_key_id_t key_id);
|
||||
|
||||
/**
|
||||
* @brief Check for key release event (edge detection)
|
||||
* @param key_id: Key ID
|
||||
* @retval 1 if key was released, 0 otherwise
|
||||
* @brief 检查按键释放事件(边沿检测)
|
||||
* @param key_id: 按键 ID
|
||||
* @retval 按键释放返回 1,否则返回 0
|
||||
*/
|
||||
uint8_t bsp_key_get_release_event(bsp_key_id_t key_id);
|
||||
|
||||
/**
|
||||
* @brief Check for key long pressed event
|
||||
* @param key_id: Key ID
|
||||
* @retval 1 if key was long pressed, 0 otherwise
|
||||
* @brief 检查按键长按事件
|
||||
* @param key_id: 按键 ID
|
||||
* @retval 按键长按返回 1,否则返回 0
|
||||
*/
|
||||
uint8_t bsp_key_get_long_press_event(bsp_key_id_t key_id);
|
||||
|
||||
/**
|
||||
* @brief Check for key repeat event
|
||||
* @param key_id: Key ID
|
||||
* @retval 1 if key repeat event occurred, 0 otherwise
|
||||
* @brief 检查按键重复事件
|
||||
* @param key_id: 按键 ID
|
||||
* @retval 按键重复事件发生返回 1,否则返回 0
|
||||
*/
|
||||
uint8_t bsp_key_get_repeat_event(bsp_key_id_t key_id);
|
||||
|
||||
/**
|
||||
* @brief Check for key short pressed event
|
||||
* @param key_id: Key ID
|
||||
* @retval 1 if key was short pressed, 0 otherwise
|
||||
* @brief 检查按键短按事件
|
||||
* @param key_id: 按键 ID
|
||||
* @retval 按键短按返回 1,否则返回 0
|
||||
*/
|
||||
uint8_t bsp_key_get_short_press_event(bsp_key_id_t key_id);
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file : bsp_module.h
|
||||
* @brief : Board support package module management header file
|
||||
* @brief : 板级支持包模块管理头文件
|
||||
******************************************************************************
|
||||
*/
|
||||
/* USER CODE END Header */
|
||||
@ -13,7 +13,7 @@
|
||||
#include "hal.h"
|
||||
|
||||
/**
|
||||
* @brief BSP module type definitions
|
||||
* @brief BSP 模块类型定义
|
||||
*/
|
||||
typedef enum {
|
||||
BSP_MODULE_TYPE_LED = 0,
|
||||
@ -31,7 +31,7 @@ typedef enum {
|
||||
} bsp_module_type_t;
|
||||
|
||||
/**
|
||||
* @brief BSP module state definitions
|
||||
* @brief BSP 模块状态定义
|
||||
*/
|
||||
typedef enum {
|
||||
BSP_MODULE_STATE_UNINIT = 0,
|
||||
@ -42,7 +42,7 @@ typedef enum {
|
||||
} bsp_module_state_t;
|
||||
|
||||
/**
|
||||
* @brief BSP module priority definitions
|
||||
* @brief BSP 模块优先级定义
|
||||
*/
|
||||
typedef enum {
|
||||
BSP_MODULE_PRIORITY_HIGHEST = 0,
|
||||
@ -53,36 +53,36 @@ typedef enum {
|
||||
} bsp_module_priority_t;
|
||||
|
||||
/**
|
||||
* @brief BSP module configuration structure
|
||||
* @brief BSP 模块配置结构体
|
||||
*/
|
||||
typedef struct bsp_module_config {
|
||||
bsp_module_type_t type; /*!< Module type */
|
||||
const char* name; /*!< Module name */
|
||||
bsp_module_priority_t priority; /*!< Module priority */
|
||||
uint32_t version; /*!< Module version */
|
||||
uint8_t instance; /*!< Module instance */
|
||||
uint8_t enable; /*!< Module enable flag */
|
||||
void* config_data; /*!< Module configuration data */
|
||||
size_t config_size; /*!< Module configuration size */
|
||||
uint32_t dependencies; /*!< Module dependencies bitmask */
|
||||
bsp_module_type_t type; /*!< 模块类型 */
|
||||
const char* name; /*!< 模块名称 */
|
||||
bsp_module_priority_t priority; /*!< 模块优先级 */
|
||||
uint32_t version; /*!< 模块版本 */
|
||||
uint8_t instance; /*!< 模块实例 */
|
||||
uint8_t enable; /*!< 模块使能标志 */
|
||||
void* config_data; /*!< 模块配置数据 */
|
||||
size_t config_size; /*!< 模块配置大小 */
|
||||
uint32_t dependencies; /*!< 模块依赖位掩码 */
|
||||
} bsp_module_config_t;
|
||||
|
||||
/**
|
||||
* @brief BSP module operations structure
|
||||
* @brief BSP 模块操作结构体
|
||||
*/
|
||||
typedef struct {
|
||||
hal_ret_t (*init)(void* config); /*!< Module initialization function */
|
||||
hal_ret_t (*deinit)(void); /*!< Module deinitialization function */
|
||||
hal_ret_t (*configure)(void* config); /*!< Module configuration function */
|
||||
hal_ret_t (*start)(void); /*!< Module start function */
|
||||
hal_ret_t (*stop)(void); /*!< Module stop function */
|
||||
hal_ret_t (*reset)(void); /*!< Module reset function */
|
||||
bsp_module_state_t (*get_state)(void); /*!< Module get state function */
|
||||
hal_ret_t (*control)(uint32_t cmd, void* param); /*!< Module control function */
|
||||
hal_ret_t (*init)(void* config); /*!< 模块初始化函数 */
|
||||
hal_ret_t (*deinit)(void); /*!< 模块反初始化函数 */
|
||||
hal_ret_t (*configure)(void* config); /*!< 模块配置函数 */
|
||||
hal_ret_t (*start)(void); /*!< 模块启动函数 */
|
||||
hal_ret_t (*stop)(void); /*!< 模块停止函数 */
|
||||
hal_ret_t (*reset)(void); /*!< 模块复位函数 */
|
||||
bsp_module_state_t (*get_state)(void); /*!< 模块获取状态函数 */
|
||||
hal_ret_t (*control)(uint32_t cmd, void* param); /*!< 模块控制函数 */
|
||||
} bsp_module_ops_t;
|
||||
|
||||
/**
|
||||
* @brief BSP module version structure
|
||||
* @brief BSP 模块版本结构体
|
||||
*/
|
||||
typedef struct {
|
||||
uint8_t major;
|
||||
@ -91,42 +91,42 @@ typedef struct {
|
||||
} bsp_module_version_t;
|
||||
|
||||
/**
|
||||
* @brief Forward declaration of bsp_module_t
|
||||
* @brief 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);
|
||||
|
||||
/**
|
||||
* @brief BSP module structure
|
||||
* @brief BSP 模块结构体
|
||||
*/
|
||||
typedef struct bsp_module {
|
||||
bsp_module_config_t config; /*!< Module configuration */
|
||||
bsp_module_ops_t ops; /*!< Module operations */
|
||||
bsp_module_state_t state; /*!< Module state */
|
||||
bsp_module_version_t version; /*!< Module version */
|
||||
struct bsp_module* next; /*!< Pointer to next module in the list */
|
||||
struct bsp_module* prev; /*!< Pointer to previous module in the list */
|
||||
void* private_data; /*!< Module private data */
|
||||
bsp_module_event_callback_t event_callback; /*!< Event callback */
|
||||
bsp_module_config_t config; /*!< 模块配置 */
|
||||
bsp_module_ops_t ops; /*!< 模块操作 */
|
||||
bsp_module_state_t state; /*!< 模块状态 */
|
||||
bsp_module_version_t version; /*!< 模块版本 */
|
||||
struct bsp_module* next; /*!< 链表中下一个模块的指针 */
|
||||
struct bsp_module* prev; /*!< 链表中上一个模块的指针 */
|
||||
void* private_data; /*!< 模块私有数据 */
|
||||
bsp_module_event_callback_t event_callback; /*!< 事件回调 */
|
||||
} bsp_module_t;
|
||||
|
||||
/**
|
||||
* @brief BSP module event definitions
|
||||
* @brief BSP 模块事件定义
|
||||
*/
|
||||
#define BSP_MODULE_EVENT_INIT (1 << 0) /*!< Module initialized */
|
||||
#define BSP_MODULE_EVENT_DEINIT (1 << 1) /*!< Module deinitialized */
|
||||
#define BSP_MODULE_EVENT_START (1 << 2) /*!< Module started */
|
||||
#define BSP_MODULE_EVENT_STOP (1 << 3) /*!< Module stopped */
|
||||
#define BSP_MODULE_EVENT_ERROR (1 << 4) /*!< Module error */
|
||||
#define BSP_MODULE_EVENT_CONFIG (1 << 5) /*!< Module configured */
|
||||
#define BSP_MODULE_EVENT_CUSTOM (1 << 8) /*!< Custom module event base */
|
||||
#define BSP_MODULE_EVENT_INIT (1 << 0) /*!< 模块已初始化 */
|
||||
#define BSP_MODULE_EVENT_DEINIT (1 << 1) /*!< 模块已反初始化 */
|
||||
#define BSP_MODULE_EVENT_START (1 << 2) /*!< 模块已启动 */
|
||||
#define BSP_MODULE_EVENT_STOP (1 << 3) /*!< 模块已停止 */
|
||||
#define BSP_MODULE_EVENT_ERROR (1 << 4) /*!< 模块错误 */
|
||||
#define BSP_MODULE_EVENT_CONFIG (1 << 5) /*!< 模块已配置 */
|
||||
#define BSP_MODULE_EVENT_CUSTOM (1 << 8) /*!< 自定义模块事件基础 */
|
||||
|
||||
/**
|
||||
* @brief BSP module auto-registration macros
|
||||
* @brief BSP 模块自动注册宏
|
||||
*/
|
||||
#define BSP_MODULE_REGISTER(module) \
|
||||
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 {
|
||||
bsp_module_t* modules[BSP_MODULE_TYPE_MAX]; /*!< Modules by type */
|
||||
bsp_module_t* module_list; /*!< Linked list of all modules */
|
||||
uint32_t module_count; /*!< Total number of modules */
|
||||
bsp_module_t* modules[BSP_MODULE_TYPE_MAX]; /*!< 按类型存储的模块 */
|
||||
bsp_module_t* module_list; /*!< 所有模块的链表 */
|
||||
uint32_t module_count; /*!< 模块总数 */
|
||||
} bsp_module_manager_t;
|
||||
|
||||
/**
|
||||
* @brief Initialize BSP module manager
|
||||
* @retval HAL status code
|
||||
* @brief 初始化 BSP 模块管理器
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_module_manager_init(void);
|
||||
|
||||
/**
|
||||
* @brief Register a BSP module
|
||||
* @param module: Pointer to module structure
|
||||
* @retval HAL status code
|
||||
* @brief 注册一个 BSP 模块
|
||||
* @param module: 指向模块结构体的指针
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_module_register(bsp_module_t* module);
|
||||
|
||||
/**
|
||||
* @brief Unregister a BSP module
|
||||
* @param module: Pointer to module structure
|
||||
* @retval HAL status code
|
||||
* @brief 注销一个 BSP 模块
|
||||
* @param module: 指向模块结构体的指针
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_module_unregister(bsp_module_t* module);
|
||||
|
||||
/**
|
||||
* @brief Initialize all registered BSP modules
|
||||
* @retval HAL status code
|
||||
* @brief 初始化所有注册的 BSP 模块
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_module_init_all(void);
|
||||
|
||||
/**
|
||||
* @brief Deinitialize all registered BSP modules
|
||||
* @retval HAL status code
|
||||
* @brief 反初始化所有注册的 BSP 模块
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_module_deinit_all(void);
|
||||
|
||||
/**
|
||||
* @brief Start all registered BSP modules
|
||||
* @retval HAL status code
|
||||
* @brief 启动所有注册的 BSP 模块
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_module_start_all(void);
|
||||
|
||||
/**
|
||||
* @brief Stop all registered BSP modules
|
||||
* @retval HAL status code
|
||||
* @brief 停止所有注册的 BSP 模块
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_module_stop_all(void);
|
||||
|
||||
/**
|
||||
* @brief Initialize a specific BSP module
|
||||
* @param type: Module type
|
||||
* @param instance: Module instance
|
||||
* @retval HAL status code
|
||||
* @brief 初始化指定的 BSP 模块
|
||||
* @param type: 模块类型
|
||||
* @param instance: 模块实例
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_module_init(bsp_module_type_t type, uint8_t instance);
|
||||
|
||||
/**
|
||||
* @brief Deinitialize a specific BSP module
|
||||
* @param type: Module type
|
||||
* @param instance: Module instance
|
||||
* @retval HAL status code
|
||||
* @brief 反初始化指定的 BSP 模块
|
||||
* @param type: 模块类型
|
||||
* @param instance: 模块实例
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_module_deinit(bsp_module_type_t type, uint8_t instance);
|
||||
|
||||
/**
|
||||
* @brief Configure a specific BSP module
|
||||
* @param type: Module type
|
||||
* @param instance: Module instance
|
||||
* @param config: Module configuration data
|
||||
* @param size: Module configuration size
|
||||
* @retval HAL status code
|
||||
* @brief 配置指定的 BSP 模块
|
||||
* @param type: 模块类型
|
||||
* @param instance: 模块实例
|
||||
* @param config: 模块配置数据
|
||||
* @param size: 模块配置大小
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
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
|
||||
* @param type: Module type
|
||||
* @param instance: Module instance
|
||||
* @retval HAL status code
|
||||
* @brief 启动指定的 BSP 模块
|
||||
* @param type: 模块类型
|
||||
* @param instance: 模块实例
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_module_start(bsp_module_type_t type, uint8_t instance);
|
||||
|
||||
/**
|
||||
* @brief Stop a specific BSP module
|
||||
* @param type: Module type
|
||||
* @param instance: Module instance
|
||||
* @retval HAL status code
|
||||
* @brief 停止指定的 BSP 模块
|
||||
* @param type: 模块类型
|
||||
* @param instance: 模块实例
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_module_stop(bsp_module_type_t type, uint8_t instance);
|
||||
|
||||
/**
|
||||
* @brief Reset a specific BSP module
|
||||
* @param type: Module type
|
||||
* @param instance: Module instance
|
||||
* @retval HAL status code
|
||||
* @brief 复位指定的 BSP 模块
|
||||
* @param type: 模块类型
|
||||
* @param instance: 模块实例
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_module_reset(bsp_module_type_t type, uint8_t instance);
|
||||
|
||||
/**
|
||||
* @brief Get state of a specific BSP module
|
||||
* @param type: Module type
|
||||
* @param instance: Module instance
|
||||
* @param state: Pointer to store module state
|
||||
* @retval HAL status code
|
||||
* @brief 获取指定 BSP 模块的状态
|
||||
* @param type: 模块类型
|
||||
* @param instance: 模块实例
|
||||
* @param state: 存储模块状态的指针
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
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
|
||||
* @param type: Module type
|
||||
* @param instance: Module instance
|
||||
* @param cmd: Control command
|
||||
* @param param: Control parameter
|
||||
* @retval HAL status code
|
||||
* @brief 控制指定的 BSP 模块
|
||||
* @param type: 模块类型
|
||||
* @param instance: 模块实例
|
||||
* @param cmd: 控制命令
|
||||
* @param param: 控制参数
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
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
|
||||
* @param type: Module type
|
||||
* @param instance: Module instance
|
||||
* @retval Pointer to module structure, or NULL if not found
|
||||
* @brief 获取指定的 BSP 模块
|
||||
* @param type: 模块类型
|
||||
* @param instance: 模块实例
|
||||
* @retval 指向模块结构体的指针,未找到返回 NULL
|
||||
*/
|
||||
bsp_module_t* bsp_module_get(bsp_module_type_t type, uint8_t instance);
|
||||
|
||||
/**
|
||||
* @brief Get all modules of a specific type
|
||||
* @param type: Module type
|
||||
* @retval Pointer to module list, or NULL if no modules found
|
||||
* @brief 获取指定类型的所有模块
|
||||
* @param type: 模块类型
|
||||
* @retval 指向模块列表的指针,未找到模块返回 NULL
|
||||
*/
|
||||
bsp_module_t* bsp_module_get_by_type(bsp_module_type_t type);
|
||||
|
||||
/**
|
||||
* @brief Get module by name
|
||||
* @param name: Module name
|
||||
* @retval Pointer to module structure, or NULL if not found
|
||||
* @brief 通过名称获取模块
|
||||
* @param name: 模块名称
|
||||
* @retval 指向模块结构体的指针,未找到返回 NULL
|
||||
*/
|
||||
bsp_module_t* bsp_module_get_by_name(const char* name);
|
||||
|
||||
/**
|
||||
* @brief Get total number of registered modules
|
||||
* @retval Number of registered modules
|
||||
* @brief 获取注册模块的总数
|
||||
* @retval 注册模块的数量
|
||||
*/
|
||||
uint32_t bsp_module_get_count(void);
|
||||
|
||||
/**
|
||||
* @brief Check if all dependencies of a module are satisfied
|
||||
* @param module: Pointer to module structure
|
||||
* @retval HAL status code
|
||||
* @brief 检查模块的所有依赖是否满足
|
||||
* @param module: 指向模块结构体的指针
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_module_check_dependencies(const bsp_module_t* module);
|
||||
|
||||
/**
|
||||
* @brief Get module manager instance
|
||||
* @retval Pointer to module manager structure
|
||||
* @brief 获取模块管理器实例
|
||||
* @retval 指向模块管理器结构体的指针
|
||||
*/
|
||||
bsp_module_manager_t* bsp_module_get_manager(void);
|
||||
|
||||
/**
|
||||
* @brief Register a module event callback
|
||||
* @param type: Module type
|
||||
* @param instance: Module instance
|
||||
* @param callback: Event callback function
|
||||
* @retval HAL status code
|
||||
* @brief 注册模块事件回调
|
||||
* @param type: 模块类型
|
||||
* @param instance: 模块实例
|
||||
* @param callback: 事件回调函数
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
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
|
||||
* @param module: Pointer to module structure
|
||||
* @param event: Event to trigger
|
||||
* @param data: Event data
|
||||
* @retval HAL status code
|
||||
* @brief 触发模块事件
|
||||
* @param module: 指向模块结构体的指针
|
||||
* @param event: 要触发的事件
|
||||
* @param data: 事件数据
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_module_trigger_event(const bsp_module_t* module, uint32_t event, void* data);
|
||||
|
||||
/**
|
||||
* @brief Find modules by priority range
|
||||
* @param min_priority: Minimum priority
|
||||
* @param max_priority: Maximum priority
|
||||
* @param count: Pointer to store number of modules found
|
||||
* @retval Pointer to array of module pointers, or NULL if no modules found
|
||||
* @brief 按优先级范围查找模块
|
||||
* @param min_priority: 最低优先级
|
||||
* @param max_priority: 最高优先级
|
||||
* @param count: 存储找到的模块数量的指针
|
||||
* @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);
|
||||
|
||||
/**
|
||||
* @brief Set module enable/disable state
|
||||
* @param type: Module type
|
||||
* @param instance: Module instance
|
||||
* @param enable: Enable flag
|
||||
* @retval HAL status code
|
||||
* @brief 设置模块使能/禁用状态
|
||||
* @param type: 模块类型
|
||||
* @param instance: 模块实例
|
||||
* @param enable: 使能标志
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_module_set_enable(bsp_module_type_t type, uint8_t instance, uint8_t enable);
|
||||
|
||||
/**
|
||||
* @brief Check if module is enabled
|
||||
* @param type: Module type
|
||||
* @param instance: Module instance
|
||||
* @param enable: Pointer to store enable state
|
||||
* @retval HAL status code
|
||||
* @brief 检查模块是否启用
|
||||
* @param type: 模块类型
|
||||
* @param instance: 模块实例
|
||||
* @param enable: 存储使能状态的指针
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_module_is_enabled(bsp_module_type_t type, uint8_t instance, uint8_t* enable);
|
||||
|
||||
/**
|
||||
* @brief Set module priority
|
||||
* @param type: Module type
|
||||
* @param instance: Module instance
|
||||
* @param priority: New priority
|
||||
* @retval HAL status code
|
||||
* @brief 设置模块优先级
|
||||
* @param type: 模块类型
|
||||
* @param instance: 模块实例
|
||||
* @param priority: 新优先级
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_module_set_priority(bsp_module_type_t type, uint8_t instance, bsp_module_priority_t priority);
|
||||
|
||||
/**
|
||||
* @brief Get module priority
|
||||
* @param type: Module type
|
||||
* @param instance: Module instance
|
||||
* @param priority: Pointer to store priority
|
||||
* @retval HAL return code
|
||||
* @brief 获取模块优先级
|
||||
* @param type: 模块类型
|
||||
* @param instance: 模块实例
|
||||
* @param priority: 存储优先级的指针
|
||||
* @retval HAL 返回码
|
||||
*/
|
||||
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
|
||||
* @brief : BSP layer for W25QXX flash memory
|
||||
* @brief : W25QXX 闪存芯片的 BSP 层头文件
|
||||
******************************************************************************
|
||||
*/
|
||||
/* USER CODE END Header */
|
||||
@ -15,71 +15,71 @@
|
||||
#include "hal_gpio.h"
|
||||
|
||||
/**
|
||||
* @brief W25QXX chip select pin configuration
|
||||
* @brief W25QXX 芯片选择引脚配置
|
||||
*/
|
||||
#define W25QXX_CS_PORT HAL_GPIO_PORT_B
|
||||
#define W25QXX_CS_PIN HAL_GPIO_PIN_0
|
||||
|
||||
/**
|
||||
* @brief W25QXX SPI instance
|
||||
* @brief W25QXX SPI 实例
|
||||
*/
|
||||
#define W25QXX_SPI_INSTANCE HAL_SPI_INSTANCE_1
|
||||
|
||||
/**
|
||||
* @brief Initialize W25QXX flash memory
|
||||
* @retval true if initialization is successful, false otherwise
|
||||
* @brief 初始化 W25QXX 闪存芯片
|
||||
* @retval 初始化成功返回 true,失败返回 false
|
||||
*/
|
||||
bool bsp_w25qxx_init(void);
|
||||
|
||||
/**
|
||||
* @brief Get W25QXX device information
|
||||
* @param info Pointer to device information structure to fill
|
||||
* @retval true if successful, false otherwise
|
||||
* @brief 获取 W25QXX 设备信息
|
||||
* @param info 指向设备信息结构体的指针
|
||||
* @retval 成功返回 true,失败返回 false
|
||||
*/
|
||||
bool bsp_w25qxx_get_device_info(w25qxx_device_info_t *info);
|
||||
|
||||
/**
|
||||
* @brief Read data from W25QXX flash memory
|
||||
* @param address Starting address to read from
|
||||
* @param data Pointer to data buffer to store read data
|
||||
* @param size Size of data to read
|
||||
* @retval true if read is successful, false otherwise
|
||||
* @brief 从 W25QXX 闪存芯片读取数据
|
||||
* @param address 起始读取地址
|
||||
* @param data 存储读取数据的缓冲区指针
|
||||
* @param size 要读取的数据大小
|
||||
* @retval 读取成功返回 true,失败返回 false
|
||||
*/
|
||||
bool bsp_w25qxx_read(uint32_t address, uint8_t *data, uint32_t size);
|
||||
|
||||
/**
|
||||
* @brief Write data to W25QXX flash memory
|
||||
* @param address Starting address to write to
|
||||
* @param data Pointer to data buffer to write
|
||||
* @param size Size of data to write
|
||||
* @retval true if write is successful, false otherwise
|
||||
* @brief 向 W25QXX 闪存芯片写入数据
|
||||
* @param address 起始写入地址
|
||||
* @param data 要写入的数据缓冲区指针
|
||||
* @param size 要写入的数据大小
|
||||
* @retval 写入成功返回 true,失败返回 false
|
||||
*/
|
||||
bool bsp_w25qxx_write(uint32_t address, const uint8_t *data, uint32_t size);
|
||||
|
||||
/**
|
||||
* @brief Erase 4KB block
|
||||
* @param address Address within the block to erase
|
||||
* @retval true if erase is successful, false otherwise
|
||||
* @brief 擦除 4KB 块
|
||||
* @param address 块内的地址
|
||||
* @retval 擦除成功返回 true,失败返回 false
|
||||
*/
|
||||
bool bsp_w25qxx_erase_block_4kb(uint32_t address);
|
||||
|
||||
/**
|
||||
* @brief Erase 32KB block
|
||||
* @param address Address within the block to erase
|
||||
* @retval true if erase is successful, false otherwise
|
||||
* @brief 擦除 32KB 块
|
||||
* @param address 块内的地址
|
||||
* @retval 擦除成功返回 true,失败返回 false
|
||||
*/
|
||||
bool bsp_w25qxx_erase_block_32kb(uint32_t address);
|
||||
|
||||
/**
|
||||
* @brief Erase 64KB block
|
||||
* @param address Address within the block to erase
|
||||
* @retval true if erase is successful, false otherwise
|
||||
* @brief 擦除 64KB 块
|
||||
* @param address 块内的地址
|
||||
* @retval 擦除成功返回 true,失败返回 false
|
||||
*/
|
||||
bool bsp_w25qxx_erase_block_64kb(uint32_t address);
|
||||
|
||||
/**
|
||||
* @brief Erase entire chip
|
||||
* @retval true if erase is successful, false otherwise
|
||||
* @brief 擦除整个芯片
|
||||
* @retval 擦除成功返回 true,失败返回 false
|
||||
*/
|
||||
bool bsp_w25qxx_erase_chip(void);
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file : bsp_board_manager.c
|
||||
* @brief : Board support package manager source file
|
||||
* @brief : 板级支持包管理器源文件
|
||||
******************************************************************************
|
||||
*/
|
||||
/* USER CODE END Header */
|
||||
@ -14,7 +14,7 @@
|
||||
extern const bsp_board_config_t stm32f407vet6_board_config;
|
||||
|
||||
/**
|
||||
* @brief List of supported board configurations
|
||||
* @brief 支持的板卡配置列表
|
||||
*/
|
||||
static const bsp_board_config_t* supported_boards[] = {
|
||||
&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;
|
||||
|
||||
/**
|
||||
* @brief Get number of supported boards
|
||||
* @retval Number of supported boards
|
||||
* @brief 获取支持的板卡数量
|
||||
* @retval 支持的板卡数量
|
||||
*/
|
||||
uint8_t bsp_board_get_count(void) {
|
||||
return sizeof(supported_boards) / sizeof(supported_boards[0]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get board configuration by index
|
||||
* @param index: Board configuration index
|
||||
* @retval Pointer to board configuration structure, NULL if invalid index
|
||||
* @brief 通过索引获取板卡配置
|
||||
* @param index: 板卡配置索引
|
||||
* @retval 指向板卡配置结构体的指针,无效索引返回 NULL
|
||||
*/
|
||||
const bsp_board_config_t* bsp_board_get_by_index(uint8_t index) {
|
||||
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
|
||||
* @param name: Board name string
|
||||
* @retval Pointer to board configuration structure, NULL if not found
|
||||
* @brief 通过名称获取板卡配置
|
||||
* @param name: 板卡名称字符串
|
||||
* @retval 指向板卡配置结构体的指针,未找到返回 NULL
|
||||
*/
|
||||
const bsp_board_config_t* bsp_board_get_by_name(const char* name) {
|
||||
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
|
||||
* @param index: Board configuration index
|
||||
* @retval HAL status code
|
||||
* @brief 通过索引设置当前板卡配置
|
||||
* @param index: 板卡配置索引
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_board_set_by_index(uint8_t index) {
|
||||
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
|
||||
* @param name: Board name string
|
||||
* @retval HAL status code
|
||||
* @brief 通过名称设置当前板卡配置
|
||||
* @param name: 板卡名称字符串
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_board_set_by_name(const char* name) {
|
||||
if (name == NULL) {
|
||||
@ -95,16 +95,16 @@ hal_ret_t bsp_board_set_by_name(const char* name) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get current board configuration
|
||||
* @retval Pointer to current board configuration structure
|
||||
* @brief 获取当前板卡配置
|
||||
* @retval 指向当前板卡配置结构体的指针
|
||||
*/
|
||||
const bsp_board_config_t* bsp_board_get_config(void) {
|
||||
return supported_boards[current_board_index];
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get current board index
|
||||
* @retval Current board index
|
||||
* @brief 获取当前板卡索引
|
||||
* @retval 当前板卡索引
|
||||
*/
|
||||
uint8_t bsp_board_get_current_index(void) {
|
||||
return current_board_index;
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file : bsp_config.c
|
||||
* @brief : Board support package configuration file source
|
||||
* @brief : 板级支持包配置文件源文件
|
||||
******************************************************************************
|
||||
*/
|
||||
/* USER CODE END Header */
|
||||
@ -14,7 +14,7 @@
|
||||
#include <ctype.h>
|
||||
|
||||
/**
|
||||
* @brief Configuration storage entry
|
||||
* @brief 配置存储条目
|
||||
*/
|
||||
typedef struct bsp_config_storage_entry {
|
||||
char section[BSP_CONFIG_MAX_SECTION_NAME_LENGTH];
|
||||
@ -24,7 +24,7 @@ typedef struct bsp_config_storage_entry {
|
||||
} bsp_config_storage_entry_t;
|
||||
|
||||
/**
|
||||
* @brief Configuration storage
|
||||
* @brief 配置存储
|
||||
*/
|
||||
typedef struct {
|
||||
bsp_config_storage_entry_t* entries;
|
||||
@ -33,7 +33,7 @@ typedef struct {
|
||||
} bsp_config_storage_t;
|
||||
|
||||
/**
|
||||
* @brief Configuration storage instance
|
||||
* @brief 配置存储实例
|
||||
*/
|
||||
static bsp_config_storage_t bsp_config_storage = {
|
||||
.entries = NULL,
|
||||
@ -42,9 +42,9 @@ static bsp_config_storage_t bsp_config_storage = {
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Trim whitespace from a string
|
||||
* @param str: String to trim
|
||||
* @return Trimmed string
|
||||
* @brief 去除字符串中的空白字符
|
||||
* @param str: 要处理的字符串
|
||||
* @return 处理后的字符串
|
||||
*/
|
||||
static char* bsp_config_trim(char* str) {
|
||||
char* end;
|
||||
@ -71,10 +71,10 @@ static char* bsp_config_trim(char* str) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Open configuration file
|
||||
* @param filename: Configuration file name
|
||||
* @param parser: Parser context
|
||||
* @retval HAL status code
|
||||
* @brief 打开配置文件
|
||||
* @param filename: 配置文件名称
|
||||
* @param parser: 解析器上下文
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
static hal_ret_t bsp_config_file_open(const char* filename, bsp_config_parser_t* parser) {
|
||||
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
|
||||
* @param parser: Parser context
|
||||
* @retval HAL status code
|
||||
* @brief 关闭配置文件
|
||||
* @param parser: 解析器上下文
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
static hal_ret_t bsp_config_file_close(bsp_config_parser_t* parser) {
|
||||
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
|
||||
* @param parser: Parser context
|
||||
* @param entry: Configuration entry
|
||||
* @retval HAL status code
|
||||
* @brief 从文件读取配置条目
|
||||
* @param parser: 解析器上下文
|
||||
* @param entry: 配置条目
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
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) {
|
||||
@ -169,10 +169,10 @@ static hal_ret_t bsp_config_file_read_entry(bsp_config_parser_t* parser, bsp_con
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Parse integer value
|
||||
* @param value: String value to parse
|
||||
* @param result: Pointer to store result
|
||||
* @retval HAL status code
|
||||
* @brief 解析整数值
|
||||
* @param value: 要解析的字符串值
|
||||
* @param result: 存储结果的指针
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
static hal_ret_t bsp_config_parse_int(const char* value, int* result) {
|
||||
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
|
||||
* @param value: String value to parse
|
||||
* @param result: Pointer to store result
|
||||
* @retval HAL status code
|
||||
* @brief 解析无符号整数值
|
||||
* @param value: 要解析的字符串值
|
||||
* @param result: 存储结果的指针
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
static hal_ret_t bsp_config_parse_uint(const char* value, uint32_t* result) {
|
||||
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
|
||||
* @param value: String value to parse
|
||||
* @param result: Pointer to store result
|
||||
* @retval HAL status code
|
||||
* @brief 解析布尔值
|
||||
* @param value: 要解析的字符串值
|
||||
* @param result: 存储结果的指针
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
static hal_ret_t bsp_config_parse_bool(const char* value, uint8_t* result) {
|
||||
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
|
||||
* @param value: String value to parse
|
||||
* @param result: Pointer to store result
|
||||
* @param max_length: Maximum length of result buffer
|
||||
* @retval HAL status code
|
||||
* @brief 解析字符串值
|
||||
* @param value: 要解析的字符串值
|
||||
* @param result: 存储结果的指针
|
||||
* @param max_length: 结果缓冲区的最大长度
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
static hal_ret_t bsp_config_parse_string(const char* value, char* result, size_t max_length) {
|
||||
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
|
||||
* @param section: Section name
|
||||
* @param key: Key name
|
||||
* @param value: Value
|
||||
* @retval HAL status code
|
||||
* @brief 添加配置条目到存储
|
||||
* @param section: 节名称
|
||||
* @param key: 键名称
|
||||
* @param value: 值
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
static hal_ret_t bsp_config_storage_add(const char* section, const char* key, const char* value) {
|
||||
// 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) {
|
||||
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
|
||||
* @retval HAL status code
|
||||
* @brief 初始化 BSP 配置系统
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_config_init(void) {
|
||||
if (bsp_config_storage.initialized) {
|
||||
@ -339,8 +339,8 @@ hal_ret_t bsp_config_init(void) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Deinitialize BSP configuration system
|
||||
* @retval HAL status code
|
||||
* @brief 反初始化 BSP 配置系统
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_config_deinit(void) {
|
||||
if (!bsp_config_storage.initialized) {
|
||||
@ -354,9 +354,9 @@ hal_ret_t bsp_config_deinit(void) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Load BSP configuration from file
|
||||
* @param filename: Configuration file name
|
||||
* @retval HAL status code
|
||||
* @brief 从文件加载 BSP 配置
|
||||
* @param filename: 配置文件名称
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_config_load(const char* filename) {
|
||||
if (!bsp_config_storage.initialized) {
|
||||
@ -395,9 +395,9 @@ hal_ret_t bsp_config_load(const char* filename) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Save BSP configuration to file
|
||||
* @param filename: Configuration file name
|
||||
* @retval HAL status code
|
||||
* @brief 保存 BSP 配置到文件
|
||||
* @param filename: 配置文件名称
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_config_save(const char* filename) {
|
||||
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
|
||||
* @param section: Configuration section name
|
||||
* @param key: Configuration key name
|
||||
* @param value: Pointer to store value
|
||||
* @param max_length: Maximum length of value buffer
|
||||
* @retval HAL status code
|
||||
* @brief 获取配置值
|
||||
* @param section: 配置节名称
|
||||
* @param key: 配置键名称
|
||||
* @param value: 存储值的指针
|
||||
* @param max_length: 值缓冲区的最大长度
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
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) {
|
||||
@ -458,11 +458,11 @@ hal_ret_t bsp_config_get_value(const char* section, const char* key, char* value
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Set configuration value
|
||||
* @param section: Configuration section name
|
||||
* @param key: Configuration key name
|
||||
* @param value: Configuration value
|
||||
* @retval HAL status code
|
||||
* @brief 设置配置值
|
||||
* @param section: 配置节名称
|
||||
* @param key: 配置键名称
|
||||
* @param value: 配置值
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
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) {
|
||||
@ -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
|
||||
* @param section: Configuration section name
|
||||
* @param key: Configuration key name
|
||||
* @param value: Pointer to store integer value
|
||||
* @retval HAL status code
|
||||
* @brief 获取配置值作为整数
|
||||
* @param section: 配置节名称
|
||||
* @param key: 配置键名称
|
||||
* @param value: 存储整数值的指针
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_config_get_int(const char* section, const char* key, int* value) {
|
||||
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
|
||||
* @param section: Configuration section name
|
||||
* @param key: Configuration key name
|
||||
* @param value: Integer value
|
||||
* @retval HAL status code
|
||||
* @brief 设置配置值作为整数
|
||||
* @param section: 配置节名称
|
||||
* @param key: 配置键名称
|
||||
* @param value: 整数值
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_config_set_int(const char* section, const char* key, int value) {
|
||||
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
|
||||
* @param section: Configuration section name
|
||||
* @param key: Configuration key name
|
||||
* @param value: Pointer to store unsigned integer value
|
||||
* @retval HAL status code
|
||||
* @brief 获取配置值作为无符号整数
|
||||
* @param section: 配置节名称
|
||||
* @param key: 配置键名称
|
||||
* @param value: 存储无符号整数值的指针
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_config_get_uint(const char* section, const char* key, uint32_t* value) {
|
||||
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
|
||||
* @param section: Configuration section name
|
||||
* @param key: Configuration key name
|
||||
* @param value: Unsigned integer value
|
||||
* @retval HAL status code
|
||||
* @brief 设置配置值作为无符号整数
|
||||
* @param section: 配置节名称
|
||||
* @param key: 配置键名称
|
||||
* @param value: 无符号整数值
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_config_set_uint(const char* section, const char* key, uint32_t value) {
|
||||
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
|
||||
* @param section: Configuration section name
|
||||
* @param key: Configuration key name
|
||||
* @param value: Pointer to store boolean value
|
||||
* @retval HAL status code
|
||||
* @brief 获取配置值作为布尔值
|
||||
* @param section: 配置节名称
|
||||
* @param key: 配置键名称
|
||||
* @param value: 存储布尔值的指针
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_config_get_bool(const char* section, const char* key, uint8_t* value) {
|
||||
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
|
||||
* @param section: Configuration section name
|
||||
* @param key: Configuration key name
|
||||
* @param value: Boolean value
|
||||
* @retval HAL status code
|
||||
* @brief 设置配置值作为布尔值
|
||||
* @param section: 配置节名称
|
||||
* @param key: 配置键名称
|
||||
* @param value: 布尔值
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
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");
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Parse BSP modules from configuration
|
||||
* @param config: Pointer to BSP board configuration structure to fill
|
||||
* @retval HAL status code
|
||||
* @brief 从配置解析 BSP 模块
|
||||
* @param config: 指向要填充的 BSP 板卡配置结构体的指针
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_config_parse_modules(bsp_board_config_t* config) {
|
||||
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
|
||||
* @param filename: Configuration file name
|
||||
* @retval HAL status code
|
||||
* @brief 从配置文件初始化 BSP
|
||||
* @param filename: 配置文件名称
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_init_from_config(const char* filename) {
|
||||
// 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
|
||||
* @brief : Board support package initialization source file
|
||||
* @brief : 板级支持包初始化源文件
|
||||
******************************************************************************
|
||||
*/
|
||||
/* USER CODE END Header */
|
||||
@ -15,8 +15,8 @@
|
||||
#include "hal_uart.h"
|
||||
|
||||
/**
|
||||
* @brief Initialize board support package
|
||||
* @retval HAL status code
|
||||
* @brief 初始化板级支持包
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_init(void) {
|
||||
/* Get board configuration */
|
||||
@ -137,8 +137,8 @@ hal_ret_t bsp_init(void) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Initialize board GPIO using configuration
|
||||
* @retval HAL status code
|
||||
* @brief 使用配置初始化板卡 GPIO
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_gpio_init(void) {
|
||||
/* Get board configuration */
|
||||
@ -254,16 +254,16 @@ hal_ret_t bsp_gpio_init(void) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get board name
|
||||
* @retval Board name string
|
||||
* @brief 获取板卡名称
|
||||
* @retval 板卡名称字符串
|
||||
*/
|
||||
const char* bsp_get_board_name(void) {
|
||||
return bsp_board_get_name();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get current board configuration
|
||||
* @retval Pointer to board configuration structure
|
||||
* @brief 获取当前板卡配置
|
||||
* @retval 指向板卡配置结构体的指针
|
||||
*/
|
||||
const bsp_board_config_t* bsp_get_board_config(void) {
|
||||
return bsp_board_get_config();
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file : bsp_key.c
|
||||
* @brief : Board support package key driver implementation
|
||||
* @brief : 板级支持包按键驱动实现
|
||||
******************************************************************************
|
||||
*/
|
||||
/* USER CODE END Header */
|
||||
@ -15,7 +15,7 @@
|
||||
#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_LONG_PRESS_TIME 1000 /* Long press time in ms */
|
||||
@ -24,7 +24,7 @@
|
||||
#define KEY_UPDATE_INTERVAL 10 /* Update interval in ms */
|
||||
|
||||
/**
|
||||
* @brief Key configuration structure
|
||||
* @brief 按键配置结构体
|
||||
*/
|
||||
typedef struct {
|
||||
hal_gpio_port_t port;
|
||||
@ -33,7 +33,7 @@ typedef struct {
|
||||
} bsp_key_config_t;
|
||||
|
||||
/**
|
||||
* @brief Key state structure for debouncing and event detection
|
||||
* @brief 按键状态结构体,用于防抖和事件检测
|
||||
*/
|
||||
typedef struct {
|
||||
/* Debounce state */
|
||||
@ -63,12 +63,12 @@ typedef struct {
|
||||
} 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};
|
||||
|
||||
/**
|
||||
* @brief Get current board button configuration
|
||||
* @brief 获取当前板卡按键配置
|
||||
*/
|
||||
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();
|
||||
@ -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)
|
||||
* @param key_id: Key ID
|
||||
* @retval Raw key state
|
||||
* @brief 读取原始按键状态(无防抖)
|
||||
* @param key_id: 按键 ID
|
||||
* @retval 原始按键状态
|
||||
*/
|
||||
static bsp_key_state_t bsp_key_read_raw(bsp_key_id_t key_id) {
|
||||
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
|
||||
* @retval Current time in ms
|
||||
* @brief 获取当前系统时间(毫秒)
|
||||
* @retval 当前时间(毫秒)
|
||||
*/
|
||||
static uint32_t bsp_key_get_time_ms(void) {
|
||||
/* 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) {
|
||||
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) {
|
||||
uint8_t i;
|
||||
@ -241,9 +241,9 @@ void bsp_key_update(void) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Read debounced key state
|
||||
* @param key_id: Key ID
|
||||
* @retval Key state
|
||||
* @brief 读取防抖后的按键状态
|
||||
* @param key_id: 按键 ID
|
||||
* @retval 按键状态
|
||||
*/
|
||||
bsp_key_state_t bsp_key_read(bsp_key_id_t key_id) {
|
||||
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
|
||||
* @param key_id: Key ID
|
||||
* @retval 1 if pressed, 0 otherwise
|
||||
* @brief 检查按键是否按下
|
||||
* @param key_id: 按键 ID
|
||||
* @retval 按下返回 1,否则返回 0
|
||||
*/
|
||||
uint8_t bsp_key_is_pressed(bsp_key_id_t key_id) {
|
||||
return (bsp_key_read(key_id) == BSP_KEY_STATE_PRESSED) ? 1 : 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Check if key is released
|
||||
* @param key_id: Key ID
|
||||
* @retval 1 if released, 0 otherwise
|
||||
* @brief 检查按键是否释放
|
||||
* @param key_id: 按键 ID
|
||||
* @retval 释放返回 1,否则返回 0
|
||||
*/
|
||||
uint8_t bsp_key_is_released(bsp_key_id_t key_id) {
|
||||
return (bsp_key_read(key_id) == BSP_KEY_STATE_RELEASED) ? 1 : 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Check for key press event (edge detection)
|
||||
* @param key_id: Key ID
|
||||
* @retval 1 if key was pressed, 0 otherwise
|
||||
* @brief 检查按键按下事件(边沿检测)
|
||||
* @param key_id: 按键 ID
|
||||
* @retval 按下事件返回 1,否则返回 0
|
||||
*/
|
||||
uint8_t bsp_key_get_press_event(bsp_key_id_t key_id) {
|
||||
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)
|
||||
* @param key_id: Key ID
|
||||
* @retval 1 if key was released, 0 otherwise
|
||||
* @brief 检查按键释放事件(边沿检测)
|
||||
* @param key_id: 按键 ID
|
||||
* @retval 释放事件返回 1,否则返回 0
|
||||
*/
|
||||
uint8_t bsp_key_get_release_event(bsp_key_id_t key_id) {
|
||||
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
|
||||
* @param key_id: Key ID
|
||||
* @retval 1 if key was long pressed, 0 otherwise
|
||||
* @brief 检查按键长按事件
|
||||
* @param key_id: 按键 ID
|
||||
* @retval 长按事件返回 1,否则返回 0
|
||||
*/
|
||||
uint8_t bsp_key_get_long_press_event(bsp_key_id_t key_id) {
|
||||
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
|
||||
* @param key_id: Key ID
|
||||
* @retval 1 if key repeat event occurred, 0 otherwise
|
||||
* @brief 检查按键重复事件
|
||||
* @param key_id: 按键 ID
|
||||
* @retval 重复事件返回 1,否则返回 0
|
||||
*/
|
||||
uint8_t bsp_key_get_repeat_event(bsp_key_id_t key_id) {
|
||||
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
|
||||
* @param key_id: Key ID
|
||||
* @retval 1 if key was short pressed, 0 otherwise
|
||||
* @brief 检查按键短按事件
|
||||
* @param key_id: 按键 ID
|
||||
* @retval 短按事件返回 1,否则返回 0
|
||||
*/
|
||||
uint8_t bsp_key_get_short_press_event(bsp_key_id_t key_id) {
|
||||
uint8_t event = 0;
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file : bsp_module.c
|
||||
* @brief : Board support package module management source file
|
||||
* @brief : 板级支持包模块管理源文件
|
||||
******************************************************************************
|
||||
*/
|
||||
/* USER CODE END Header */
|
||||
@ -11,13 +11,13 @@
|
||||
#include <string.h>
|
||||
|
||||
/**
|
||||
* @brief Module manager instance
|
||||
* @brief 模块管理器实例
|
||||
*/
|
||||
static bsp_module_manager_t bsp_module_manager;
|
||||
|
||||
/**
|
||||
* @brief Initialize BSP module manager
|
||||
* @retval HAL status code
|
||||
* @brief 初始化 BSP 模块管理器
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_module_manager_init(void) {
|
||||
/* Clear module manager */
|
||||
@ -35,9 +35,9 @@ hal_ret_t bsp_module_manager_init(void) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Register a BSP module
|
||||
* @param module: Pointer to module structure
|
||||
* @retval HAL status code
|
||||
* @brief 注册一个 BSP 模块
|
||||
* @param module: 指向模块结构体的指针
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_module_register(bsp_module_t* module) {
|
||||
if (module == NULL) {
|
||||
@ -102,9 +102,9 @@ hal_ret_t bsp_module_register(bsp_module_t* module) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Unregister a BSP module
|
||||
* @param module: Pointer to module structure
|
||||
* @retval HAL status code
|
||||
* @brief 注销一个 BSP 模块
|
||||
* @param module: 指向模块结构体的指针
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_module_unregister(bsp_module_t* module) {
|
||||
if (module == NULL) {
|
||||
@ -146,10 +146,10 @@ hal_ret_t bsp_module_unregister(bsp_module_t* module) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get a specific BSP module
|
||||
* @param type: Module type
|
||||
* @param instance: Module instance
|
||||
* @retval Pointer to module structure, or NULL if not found
|
||||
* @brief 获取指定的 BSP 模块
|
||||
* @param type: 模块类型
|
||||
* @param instance: 模块实例
|
||||
* @retval 指向模块结构体的指针,未找到返回 NULL
|
||||
*/
|
||||
bsp_module_t* bsp_module_get(bsp_module_type_t type, uint8_t instance) {
|
||||
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
|
||||
* @param type: Module type
|
||||
* @retval Pointer to module list, or NULL if no modules found
|
||||
* @brief 获取指定类型的所有模块
|
||||
* @param type: 模块类型
|
||||
* @retval 指向模块列表的指针,未找到模块返回 NULL
|
||||
*/
|
||||
bsp_module_t* bsp_module_get_by_type(bsp_module_type_t type) {
|
||||
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
|
||||
* @param name: Module name
|
||||
* @retval Pointer to module structure, or NULL if not found
|
||||
* @brief 通过名称获取模块
|
||||
* @param name: 模块名称
|
||||
* @retval 指向模块结构体的指针,未找到返回 NULL
|
||||
*/
|
||||
bsp_module_t* bsp_module_get_by_name(const char* name) {
|
||||
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
|
||||
* @param module: Pointer to module structure
|
||||
* @retval HAL status code
|
||||
* @brief 检查模块的所有依赖是否满足
|
||||
* @param module: 指向模块结构体的指针
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
hal_ret_t bsp_module_check_dependencies(const bsp_module_t* module) {
|
||||
if (module == NULL) {
|
||||
|
||||
@ -2,21 +2,23 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file : stm32f407vet6_board.c
|
||||
* @brief : STM32F407VET6 board configuration implementation
|
||||
* @brief : STM32F407VET6 板卡配置实现
|
||||
******************************************************************************
|
||||
*/
|
||||
/* USER CODE END Header */
|
||||
|
||||
#include "bsp_board.h"
|
||||
#include "bsp_config.h"
|
||||
#include "bsp_eth.h"
|
||||
#include "hal_gpio.h"
|
||||
#include "hal_uart.h"
|
||||
#include "hal_spi.h"
|
||||
#include "hal_eth.h"
|
||||
|
||||
/**
|
||||
* @brief Default LED initialization function
|
||||
* @param config: LED configuration structure
|
||||
* @retval HAL status code
|
||||
* @brief 默认 LED 初始化函数
|
||||
* @param config: LED 配置结构体
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
static hal_ret_t default_led_init(const void* 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
|
||||
* @param config: Button configuration structure
|
||||
* @retval HAL status code
|
||||
* @brief 默认按键初始化函数
|
||||
* @param config: 按键配置结构体
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
static hal_ret_t default_button_init(const void* 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
|
||||
* @param config: UART configuration structure
|
||||
* @retval HAL status code
|
||||
* @brief 默认 UART 初始化函数
|
||||
* @param config: UART 配置结构体
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
static hal_ret_t default_uart_init(const void* 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
|
||||
* @param config: SPI configuration structure
|
||||
* @retval HAL status code
|
||||
* @brief 默认 SPI 初始化函数
|
||||
* @param config: SPI 配置结构体
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
static hal_ret_t default_spi_init(const void* 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
|
||||
* @param config: I2C configuration structure
|
||||
* @retval HAL status code
|
||||
* @brief 默认 I2C 初始化函数
|
||||
* @param config: I2C 配置结构体
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
static hal_ret_t default_i2c_init(const void* config) {
|
||||
/* TODO: Implement default I2C initialization */
|
||||
(void)config;
|
||||
/* TODO: 实现默认 I2C 初始化 */
|
||||
return HAL_RET_OK;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Default CAN initialization function
|
||||
* @param config: CAN configuration structure
|
||||
* @retval HAL status code
|
||||
* @brief 默认 CAN 初始化函数
|
||||
* @param config: CAN 配置结构体
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
static hal_ret_t default_can_init(const void* config) {
|
||||
/* TODO: Implement default CAN initialization */
|
||||
(void)config;
|
||||
/* TODO: 实现默认 CAN 初始化 */
|
||||
return HAL_RET_OK;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Default ADC initialization function
|
||||
* @param config: ADC configuration structure
|
||||
* @retval HAL status code
|
||||
* @brief 默认 ADC 初始化函数
|
||||
* @param config: ADC 配置结构体
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
static hal_ret_t default_adc_init(const void* config) {
|
||||
/* TODO: Implement default ADC initialization */
|
||||
(void)config;
|
||||
/* TODO: 实现默认 ADC 初始化 */
|
||||
return HAL_RET_OK;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Default W25QXX initialization function
|
||||
* @param config: W25QXX configuration structure
|
||||
* @retval HAL status code
|
||||
* @brief 默认 W25QXX 初始化函数
|
||||
* @param config: W25QXX 配置结构体
|
||||
* @retval HAL 状态码
|
||||
*/
|
||||
static hal_ret_t default_w25qxx_init(const void* config) {
|
||||
const bsp_w25qxx_config_t* w25qxx_config = (const bsp_w25qxx_config_t*)config;
|
||||
hal_ret_t status = HAL_RET_OK;
|
||||
|
||||
/* Initialize CS pin */
|
||||
/* 初始化 CS 引脚 */
|
||||
hal_gpio_config_t gpio_config = {
|
||||
.port = w25qxx_config->cs_port,
|
||||
.pin = w25qxx_config->cs_pin,
|
||||
@ -145,21 +150,31 @@ static hal_ret_t default_w25qxx_init(const void* config) {
|
||||
return status;
|
||||
}
|
||||
|
||||
/* Deselect chip initially */
|
||||
/* 初始时取消选择芯片 */
|
||||
status = hal_gpio_write_pin(w25qxx_config->cs_port, w25qxx_config->cs_pin, HAL_GPIO_PIN_SET);
|
||||
if (status != HAL_RET_OK) {
|
||||
return status;
|
||||
}
|
||||
|
||||
/* SPI instance is now just an index, actual SPI initialization is handled separately */
|
||||
/* SPI 实例现在只是一个索引,实际的 SPI 初始化在别处处理 */
|
||||
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[] = {
|
||||
/* KEY0 - PE4, active low */
|
||||
/* KEY0 - PE4, 低电平有效 */
|
||||
{
|
||||
.port = HAL_GPIO_PORT_E,
|
||||
.pin = HAL_GPIO_PIN_4,
|
||||
@ -168,7 +183,7 @@ static const bsp_button_config_t stm32f407vet6_buttons[] = {
|
||||
.pull = HAL_GPIO_PULL_UP,
|
||||
.active_high = 0
|
||||
},
|
||||
/* KEY1 - PE3, active low */
|
||||
/* KEY1 - PE3, 低电平有效 */
|
||||
{
|
||||
.port = HAL_GPIO_PORT_E,
|
||||
.pin = HAL_GPIO_PIN_3,
|
||||
@ -177,7 +192,7 @@ static const bsp_button_config_t stm32f407vet6_buttons[] = {
|
||||
.pull = HAL_GPIO_PULL_UP,
|
||||
.active_high = 0
|
||||
},
|
||||
/* WKUP - PA0, active high */
|
||||
/* WKUP - PA0, 高电平有效 */
|
||||
{
|
||||
.port = HAL_GPIO_PORT_A,
|
||||
.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 = {
|
||||
.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[] = {
|
||||
/* 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[] = {
|
||||
/* 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[] = {
|
||||
/* I2C1 - PB6(SCL), PB7(SDA) */
|
||||
{
|
||||
.enable = 0, /* Disabled by default */
|
||||
.enable = 0, /* 默认禁用 */
|
||||
.instance = HAL_I2C_INSTANCE_1,
|
||||
.speed = HAL_I2C_SPEED_STANDARD,
|
||||
.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[] = {
|
||||
/* CAN1 - PA11(RX), PA12(TX) */
|
||||
{
|
||||
.enable = 0, /* Disabled by default */
|
||||
.enable = 0, /* 默认禁用 */
|
||||
.instance = HAL_CAN_INSTANCE_1,
|
||||
.mode = HAL_CAN_MODE_NORMAL,
|
||||
.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[] = {
|
||||
/* ADC1 Channel 0 - PA0 */
|
||||
{
|
||||
.enable = 0, /* Disabled by default */
|
||||
.enable = 0, /* 默认禁用 */
|
||||
.channel = HAL_ADC_CHANNEL_0,
|
||||
.sampletime = HAL_ADC_SAMPLETIME_56CYCLES,
|
||||
.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[] = {
|
||||
/* ADC1 */
|
||||
{
|
||||
.enable = 0, /* Disabled by default */
|
||||
.enable = 0, /* 默认禁用 */
|
||||
.instance = HAL_ADC_INSTANCE_1,
|
||||
.resolution = HAL_ADC_RESOLUTION_12B,
|
||||
.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[] = {
|
||||
/* 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 = {
|
||||
.version = BSP_CONFIG_VERSION,
|
||||
.name = "STM32F407VET6",
|
||||
.description = "STM32F407VET6 Development Board",
|
||||
.description = "STM32F407VET6 开发板",
|
||||
.id = {
|
||||
.vendor_id = 0x0483, /* STMicroelectronics */
|
||||
.product_id = 0x374B, /* STM32F4 Series */
|
||||
.serial_number = 0x00000001 /* Default serial number */
|
||||
.product_id = 0x374B, /* STM32F4 系列 */
|
||||
.serial_number = 0x00000001 /* 默认序列号 */
|
||||
},
|
||||
|
||||
/* Board features */
|
||||
/* 板卡特性 */
|
||||
.features = (
|
||||
BSP_BOARD_FEATURE_LED |
|
||||
BSP_BOARD_FEATURE_BUTTON |
|
||||
@ -352,21 +367,22 @@ const bsp_board_config_t stm32f407vet6_board_config = {
|
||||
BSP_BOARD_FEATURE_I2C |
|
||||
BSP_BOARD_FEATURE_CAN |
|
||||
BSP_BOARD_FEATURE_ADC |
|
||||
BSP_BOARD_FEATURE_W25QXX
|
||||
BSP_BOARD_FEATURE_W25QXX |
|
||||
BSP_BOARD_FEATURE_ETH
|
||||
),
|
||||
|
||||
/* Hardware information */
|
||||
/* 硬件信息 */
|
||||
.hw_info = {
|
||||
.clock_speed = 168000000, /* 168 MHz */
|
||||
.flash_size = 512 * 1024, /* 512 KB */
|
||||
.ram_size = 192 * 1024, /* 192 KB */
|
||||
.eeprom_size = 0, /* No internal EEPROM */
|
||||
.eeprom_size = 0, /* 无内部 EEPROM */
|
||||
.sram_size = 64 * 1024, /* 64 KB SRAM */
|
||||
.cpu_core = 0x0F, /* Cortex-M4 */
|
||||
.cpu_bits = 32 /* 32-bit CPU */
|
||||
.cpu_bits = 32 /* 32位 CPU */
|
||||
},
|
||||
|
||||
/* Peripheral configurations */
|
||||
/* 外设配置 */
|
||||
.leds = {
|
||||
.enable = 1,
|
||||
.count = sizeof(stm32f407vet6_leds) / sizeof(bsp_led_config_t),
|
||||
@ -377,33 +393,45 @@ const bsp_board_config_t stm32f407vet6_board_config = {
|
||||
.enable = 1,
|
||||
.cs_port = HAL_GPIO_PORT_B,
|
||||
.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 = {
|
||||
/* UART configurations */
|
||||
/* UART 配置 */
|
||||
.uart_count = 1,
|
||||
.uarts = stm32f407vet6_uarts,
|
||||
|
||||
/* SPI configurations */
|
||||
/* SPI 配置 */
|
||||
.spi_count = 1,
|
||||
.spis = stm32f407vet6_spis,
|
||||
|
||||
/* I2C configurations */
|
||||
/* I2C 配置 */
|
||||
.i2c_count = 1,
|
||||
.i2cs = stm32f407vet6_i2cs,
|
||||
|
||||
/* CAN configurations */
|
||||
/* CAN 配置 */
|
||||
.can_count = 1,
|
||||
.cans = stm32f407vet6_cans,
|
||||
|
||||
/* ADC configurations */
|
||||
/* ADC 配置 */
|
||||
.adc_count = 1,
|
||||
.adcs = stm32f407vet6_adcs
|
||||
},
|
||||
|
||||
/* Initialization function pointers */
|
||||
/* 初始化函数指针 */
|
||||
.init_funcs = {
|
||||
.led_init = default_led_init,
|
||||
.button_init = default_button_init,
|
||||
@ -412,31 +440,32 @@ const bsp_board_config_t stm32f407vet6_board_config = {
|
||||
.i2c_init = default_i2c_init,
|
||||
.can_init = default_can_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_size = 0,
|
||||
|
||||
/* Board revision information */
|
||||
/* 板卡版本信息 */
|
||||
.major_rev = 1,
|
||||
.minor_rev = 0,
|
||||
.patch_rev = 0,
|
||||
.revision_desc = "Original release"
|
||||
.revision_desc = "初始版本"
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Get board name
|
||||
* @retval Board name string
|
||||
* @brief 获取板卡名称
|
||||
* @retval 板卡名称字符串
|
||||
*/
|
||||
const char* bsp_board_get_name(void) {
|
||||
return stm32f407vet6_board_config.name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get board configuration
|
||||
* @retval Pointer to board configuration structure
|
||||
* @brief 获取板卡配置
|
||||
* @retval 指向板卡配置结构体的指针
|
||||
*/
|
||||
const bsp_board_config_t* bsp_board_get_config(void) {
|
||||
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_DCMI_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_NAND_MODULE_ENABLED */
|
||||
/* #define HAL_NOR_MODULE_ENABLED */
|
||||
|
||||
@ -10,12 +10,14 @@ target_sources(hal PRIVATE
|
||||
Src/hal_delay.c
|
||||
Src/hal_uart.c
|
||||
Src/hal_spi.c
|
||||
Src/hal_eth.c
|
||||
# STM32F4 specific sources
|
||||
Src/arch/stm32f4/hal_stm32f4.c
|
||||
Src/arch/stm32f4/hal_stm32f4_gpio.c
|
||||
Src/arch/stm32f4/hal_stm32f4_uart.c
|
||||
Src/arch/stm32f4/hal_stm32f4_delay.c
|
||||
Src/arch/stm32f4/hal_stm32f4_spi.c
|
||||
Src/arch/stm32f4/hal_stm32f4_eth.c
|
||||
)
|
||||
|
||||
# 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
|
||||
70 253 7912753856352294 Modules/delay/CMakeFiles/delay.dir/src/delay.c.obj 56b236be5577e847
|
||||
52 180 7912753856166626 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4.c.obj 872e2ff6704dd355
|
||||
44 204 7912753856086177 HAL/CMakeFiles/hal.dir/Src/hal_delay.c.obj 8664d5778e2ad76c
|
||||
49 213 7912753856138102 HAL/CMakeFiles/hal.dir/Src/hal_spi.c.obj 149e2e1d936f56fd
|
||||
46 225 7912753856116917 HAL/CMakeFiles/hal.dir/Src/hal_uart.c.obj 3c05057e8269737e
|
||||
41 265 7912753856065931 HAL/CMakeFiles/hal.dir/Src/hal_gpio.c.obj 8f1917ba961e28ff
|
||||
78 282 7912753856433995 Modules/w25qxx/CMakeFiles/w25qxx.dir/Src/w25qxx.c.obj 5a78b7b9fb89447
|
||||
180 421 7912753857457878 Modules/led/CMakeFiles/led.dir/src/led.c.obj ccf2a27bf5ed3936
|
||||
37 242 7912753856030749 HAL/CMakeFiles/hal.dir/Src/hal.c.obj ac5f81c72ee68d23
|
||||
9 188 7912797965576556 BSP/CMakeFiles/bsp.dir/Src/bsp_init.c.obj a8d32090eccf4f24
|
||||
18 187 7912797965662743 BSP/CMakeFiles/bsp.dir/Src/bsp_board_manager.c.obj 81d983be30d5caa8
|
||||
58 471 7912753856234415 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_uart.c.obj 61a1b302001580a6
|
||||
66 488 7912753856316467 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_spi.c.obj 92b60c41a11a7d0f
|
||||
104 367 7912753856695520 BSP/CMakeFiles/bsp.dir/Src/bsp_w25qxx.c.obj ff75693cb3ea9f89
|
||||
55 412 7912753856213831 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_gpio.c.obj 97575dfa3fea0b54
|
||||
253 500 7912753858181157 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/sysmem.c.obj f2e3433c3d79e5d5
|
||||
14 189 7912797965622092 BSP/CMakeFiles/bsp.dir/Src/stm32f407vet6_board.c.obj 90588eee76946044
|
||||
204 437 7912753857691524 Middlewares/logging/CMakeFiles/logging.dir/src/logging.c.obj 27a298347d3faf6
|
||||
74 259 7912753856388203 Modules/uart/CMakeFiles/uart.dir/src/uart.c.obj 9beccc385d888c1a
|
||||
319 574 7912703545025390 CMakeFiles/stm32f407vet6_cmake.dir/startup_stm32f407xx.s.obj e17b9b15f9a25423
|
||||
24 189 7912797965724106 BSP/CMakeFiles/bsp.dir/Src/bsp_key.c.obj 79110b6d960c0717
|
||||
225 693 7912753857900411 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/stm32f4xx_it.c.obj 51381dee47310dd1
|
||||
242 687 7912753858069842 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/stm32f4xx_hal_msp.c.obj 43e90c3a5e5dc8ad
|
||||
62 445 7912753856274948 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_delay.c.obj 5280c9d98ed3655a
|
||||
259 509 7912753858238489 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/syscalls.c.obj 5115f6cdfe76adb5
|
||||
30 290 7912797965781888 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/main.c.obj a73eeca20c8ad43b
|
||||
265 708 7912753858303200 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Core/Src/system_stm32f4xx.c.obj 3736d3217f559c96
|
||||
298 708 7912753858634105 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c.obj ba10ffdc9f5ceffa
|
||||
282 698 7912753858476971 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c.obj 596b28c505c23c1a
|
||||
304 740 7912753858700468 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c.obj 9c9f0bd1ef36cd31
|
||||
367 809 7912753859329478 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c.obj 9a1317dc49b7a46b
|
||||
320 735 7912753858861343 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c.obj 32aeb5ff85893ec6
|
||||
412 861 7912753859772677 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c.obj 5b89b46e944eeb22
|
||||
421 860 7912753859864874 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c.obj 5b44b53a159fb751
|
||||
437 1013 7912753860031644 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c.obj ae45482fd7ff642d
|
||||
488 833 7912753860535924 HAL/libhal.a 1cac9cc1eea4712c
|
||||
445 830 7912753860113015 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c.obj e58812042caf42ae
|
||||
471 819 7912753860361888 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c.obj 60546464c3923ef0
|
||||
509 961 7912753860745733 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c.obj 33f4b35d347cbda1
|
||||
460 803 7912753860257372 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c.obj a5257bb900664816
|
||||
501 947 7912753860658985 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c.obj edc60a7057d8deba
|
||||
840 936 7912753864047968 Modules/uart/libuart.a f980800b2f79773c
|
||||
833 981 7912753863986406 Modules/delay/libdelay.a fa50f3f1c7df37b
|
||||
847 917 7912753864111126 Modules/w25qxx/libw25qxx.a 6740ff1d64083f6c
|
||||
854 944 7912753864188655 Modules/led/libled.a 4975295d4e0f5144
|
||||
693 1108 7912753862588187 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c.obj c8dfb4e6e3c6db83
|
||||
936 1046 7912753865009973 Middlewares/logging/liblogging.a df543b4167ac9a8e
|
||||
189 257 7912797967380849 BSP/libbsp.a e0765276282a1d70
|
||||
687 1154 7912753862523670 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c.obj d0e730ee33600327
|
||||
290 526 7912797968382798 stm32f407vet6_cmake.elf 9045aee99d4d90c9
|
||||
37 164 7912800834423560 Modules/delay/CMakeFiles/delay.dir/src/delay.c.obj 26bf75277b3a6f97
|
||||
10 169 7912800834158499 HAL/CMakeFiles/hal.dir/Src/hal_delay.c.obj f7ed58542e885692
|
||||
16 174 7912800834216580 HAL/CMakeFiles/hal.dir/Src/hal_spi.c.obj 8a7978fd4bbb8138
|
||||
4 180 7912800834094958 HAL/CMakeFiles/hal.dir/Src/hal.c.obj e4949ba37d831425
|
||||
13 216 7912800834188685 HAL/CMakeFiles/hal.dir/Src/hal_uart.c.obj 9539d7c56f2172a5
|
||||
19 225 7912800834248202 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4.c.obj ad6d0ca858ff9fd6
|
||||
7 231 7912800834125253 HAL/CMakeFiles/hal.dir/Src/hal_gpio.c.obj 62b5fd3fc12a56ec
|
||||
40 250 7912800834458879 Modules/uart/CMakeFiles/uart.dir/src/uart.c.obj 6e3afd2d96cd96f6
|
||||
68 281 7912800834731412 BSP/CMakeFiles/bsp.dir/Src/bsp_w25qxx.c.obj 2bcc927ced55ce7e
|
||||
62 285 7912800834673361 BSP/CMakeFiles/bsp.dir/Src/bsp_board_manager.c.obj 8f418e92fedc44fd
|
||||
57 289 7912800834621919 BSP/CMakeFiles/bsp.dir/Src/stm32f407vet6_board.c.obj f1e5fe9bebf9e02
|
||||
45 329 7912800834504304 Modules/w25qxx/CMakeFiles/w25qxx.dir/Src/w25qxx.c.obj 822d4b2e91a026bb
|
||||
51 336 7912800834561951 BSP/CMakeFiles/bsp.dir/Src/bsp_init.c.obj d5eeac43f4ec50ea
|
||||
23 353 7912800834284058 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_gpio.c.obj b338571a161a0c05
|
||||
30 377 7912800834342175 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_delay.c.obj d88822697976a923
|
||||
164 401 7912800835701535 Modules/led/CMakeFiles/led.dir/src/led.c.obj 361c0065047668c7
|
||||
26 407 7912800834311665 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_uart.c.obj 959718d65736c9b8
|
||||
74 414 7912800834798905 BSP/CMakeFiles/bsp.dir/Src/bsp_key.c.obj 9e57a4dd4022963a
|
||||
225 420 7912800836305929 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/sysmem.c.obj cb5c7263e77f8f30
|
||||
34 424 7912800834394771 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_spi.c.obj 2876067dae4cbc08
|
||||
169 433 7912800835731715 Middlewares/logging/CMakeFiles/logging.dir/src/logging.c.obj 86b0f61c89236124
|
||||
250 443 7912800836553605 CMakeFiles/stm32f407vet6_cmake.dir/startup_stm32f407xx.s.obj 3352bb6321aecc50
|
||||
231 487 7912800836367149 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/syscalls.c.obj 1cc09fc1ce7816fd
|
||||
180 605 7912800835857254 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/stm32f4xx_it.c.obj 9611a8c19b40aae4
|
||||
174 649 7912800835795415 CMakeFiles/stm32f407vet6_cmake.dir/APP/Src/main.c.obj ac82fd5b4b4de416
|
||||
216 653 7912800836217421 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/stm32f4xx_hal_msp.c.obj c3bbce33b0b94778
|
||||
281 693 7912800836866400 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Core/Src/system_stm32f4xx.c.obj 2fecb60abe437fd4
|
||||
336 703 7912800837417042 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c.obj 6808052da57aca4
|
||||
289 704 7912800836945661 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c.obj 218cb40779246324
|
||||
285 731 7912800836906940 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c.obj c501785e017c114f
|
||||
377 773 7912800837827782 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c.obj f8f0c6839c7ab1ce
|
||||
353 779 7912800837587336 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c.obj 893450a2eac32131
|
||||
420 779 7912800838257894 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c.obj 76711d5ea0da574a
|
||||
329 780 7912800837339961 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c.obj 2a91ea98adea2812
|
||||
407 782 7912800838128116 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c.obj 4cff397e5a4886f8
|
||||
424 823 7912800838301761 HAL/libhal.a 1cac9cc1eea4712c
|
||||
414 851 7912800838195010 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c.obj e4f00c48fc0b0584
|
||||
433 852 7912800838380705 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c.obj 9a176c76dab639f
|
||||
401 904 7912800838066880 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c.obj 22b8b5194dc4de2
|
||||
488 967 7912800838934093 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c.obj 560bfe4b0f4f6bf9
|
||||
443 968 7912800838481725 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c.obj 52aa8800389330b7
|
||||
823 986 7912800842281271 Modules/delay/libdelay.a fa50f3f1c7df37b
|
||||
829 986 7912800842343787 Modules/uart/libuart.a f980800b2f79773c
|
||||
844 991 7912800842496296 Modules/led/libled.a 4975295d4e0f5144
|
||||
836 993 7912800842421162 Modules/w25qxx/libw25qxx.a 6740ff1d64083f6c
|
||||
986 1061 7912800843914798 Middlewares/logging/liblogging.a df543b4167ac9a8e
|
||||
993 1078 7912800843990519 BSP/libbsp.a e0765276282a1d70
|
||||
605 1094 7912800840100440 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c.obj ba7ee8080eb94038
|
||||
649 1119 7912800840552747 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c.obj ca8829d822319459
|
||||
1119 1332 7912800845238850 stm32f407vet6_cmake.elf a5a01af5341e41e4
|
||||
16 204 7913678175972418 HAL/CMakeFiles/hal.dir/Src/hal_gpio.c.obj 62b5fd3fc12a56ec
|
||||
19 180 7913678176002877 HAL/CMakeFiles/hal.dir/Src/hal_delay.c.obj f7ed58542e885692
|
||||
24 186 7913678176048676 HAL/CMakeFiles/hal.dir/Src/hal_spi.c.obj 8a7978fd4bbb8138
|
||||
29 267 7913678176095809 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4.c.obj ad6d0ca858ff9fd6
|
||||
21 225 7913678176018106 HAL/CMakeFiles/hal.dir/Src/hal_uart.c.obj 9539d7c56f2172a5
|
||||
13 260 7913678175942020 HAL/CMakeFiles/hal.dir/Src/hal.c.obj e4949ba37d831425
|
||||
50 293 7913678176318911 Modules/delay/CMakeFiles/delay.dir/src/delay.c.obj 26bf75277b3a6f97
|
||||
55 310 7913678176357464 Modules/uart/CMakeFiles/uart.dir/src/uart.c.obj 6e3afd2d96cd96f6
|
||||
59 359 7913678176396800 Modules/w25qxx/CMakeFiles/w25qxx.dir/Src/w25qxx.c.obj 822d4b2e91a026bb
|
||||
26 440 7913678176063858 HAL/CMakeFiles/hal.dir/Src/hal_eth.c.obj ac57850a3bab3ec7
|
||||
32 446 7913678176135356 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_gpio.c.obj b338571a161a0c05
|
||||
39 430 7913678176194779 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_delay.c.obj d88822697976a923
|
||||
36 467 7913678176163964 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_uart.c.obj 959718d65736c9b8
|
||||
43 488 7913678176240604 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_spi.c.obj 2876067dae4cbc08
|
||||
225 462 7913678178057632 Modules/led/CMakeFiles/led.dir/src/led.c.obj 361c0065047668c7
|
||||
18 108 7913708859832483 BSP/CMakeFiles/bsp.dir/Src/bsp_w25qxx.c.obj 2bcc927ced55ce7e
|
||||
359 648 7913678179400189 CMakeFiles/stm32f407vet6_cmake.dir/startup_stm32f407xx.s.obj 3352bb6321aecc50
|
||||
260 484 7913678178411937 Middlewares/logging/CMakeFiles/logging.dir/src/logging.c.obj 86b0f61c89236124
|
||||
28 117 7913708859921868 BSP/CMakeFiles/bsp.dir/Src/bsp_eth.c.obj b6a0078da5412305
|
||||
324 593 7913678179056025 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/sysmem.c.obj cb5c7263e77f8f30
|
||||
331 573 7913678179117695 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/syscalls.c.obj 1cc09fc1ce7816fd
|
||||
310 834 7913678178912097 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/stm32f4xx_hal_msp.c.obj c3bbce33b0b94778
|
||||
293 826 7913678178742779 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/stm32f4xx_it.c.obj 9611a8c19b40aae4
|
||||
430 950 7913678180106606 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Core/Src/system_stm32f4xx.c.obj 2fecb60abe437fd4
|
||||
446 955 7913678180270390 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c.obj 218cb40779246324
|
||||
440 949 7913678180209388 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c.obj c501785e017c114f
|
||||
467 960 7913678180480076 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c.obj 893450a2eac32131
|
||||
455 964 7913678180350431 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c.obj 2a91ea98adea2812
|
||||
474 982 7913678180541017 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c.obj f8f0c6839c7ab1ce
|
||||
462 1007 7913678180429239 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c.obj 6808052da57aca4
|
||||
488 1003 7913678180697315 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c.obj e4f00c48fc0b0584
|
||||
484 987 7913678180652368 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c.obj 4cff397e5a4886f8
|
||||
478 1007 7913678180585726 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c.obj 22b8b5194dc4de2
|
||||
568 991 7913678181489306 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c.obj 76711d5ea0da574a
|
||||
648 1181 7913678182288538 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c.obj 560bfe4b0f4f6bf9
|
||||
573 1057 7913678181540484 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c.obj 9a176c76dab639f
|
||||
593 1098 7913678181742591 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c.obj 52aa8800389330b7
|
||||
811 1243 7913678183913519 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c.obj ba7ee8080eb94038
|
||||
826 1247 7913678184067546 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c.obj ca8829d822319459
|
||||
47 511 7913678176278518 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_eth.c.obj 1cb29b3f591666fd
|
||||
3 107 7913708859678310 BSP/CMakeFiles/bsp.dir/Src/bsp_init.c.obj d5eeac43f4ec50ea
|
||||
8 114 7913708859723754 BSP/CMakeFiles/bsp.dir/Src/stm32f407vet6_board.c.obj f1e5fe9bebf9e02
|
||||
14 111 7913708859786106 BSP/CMakeFiles/bsp.dir/Src/bsp_board_manager.c.obj 8f418e92fedc44fd
|
||||
511 1074 7913678180917315 HAL/libhal.a 828bea71b532158c
|
||||
23 149 7913708859878613 BSP/CMakeFiles/bsp.dir/Src/bsp_key.c.obj 9e57a4dd4022963a
|
||||
1074 1165 7913678186545531 Modules/delay/libdelay.a fa50f3f1c7df37b
|
||||
1080 1158 7913678186608133 Modules/uart/libuart.a f980800b2f79773c
|
||||
1086 1165 7913678186670015 Modules/w25qxx/libw25qxx.a 6740ff1d64083f6c
|
||||
1092 1172 7913678186716200 Modules/led/libled.a 4975295d4e0f5144
|
||||
1158 1228 7913678187394160 Middlewares/logging/liblogging.a df543b4167ac9a8e
|
||||
149 219 7913708861144569 BSP/libbsp.a fcf7ba39dd15dcd0
|
||||
33 258 7913708859968293 CMakeFiles/stm32f407vet6_cmake.dir/APP/Src/main.c.obj ac82fd5b4b4de416
|
||||
3 222 7913677176690685 build.ninja 7cc4d7f17f077294
|
||||
834 1239 7913678184156723 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.c.obj 42cf21cc05a6eb7a
|
||||
258 483 7913708862230295 stm32f407vet6_cmake.elf f513187faf41df81
|
||||
1 17 7913678172005669 CMakeFiles/clean.additional a8e8475892b6c694
|
||||
17 35 7913678172158851 clean 48fb0083216ba165
|
||||
5 91 7913712058859748 BSP/CMakeFiles/bsp.dir/Src/bsp_init.c.obj d5eeac43f4ec50ea
|
||||
91 151 7913712059734349 BSP/libbsp.a fcf7ba39dd15dcd0
|
||||
151 383 7913712060319146 stm32f407vet6_cmake.elf f513187faf41df81
|
||||
4 95 7913718470650472 BSP/CMakeFiles/bsp.dir/Src/bsp_key.c.obj 9e57a4dd4022963a
|
||||
95 154 7913718471572778 BSP/libbsp.a fcf7ba39dd15dcd0
|
||||
9 203 7913718470697125 CMakeFiles/stm32f407vet6_cmake.dir/APP/Src/main.c.obj ac82fd5b4b4de416
|
||||
203 420 7913718472652095 stm32f407vet6_cmake.elf f513187faf41df81
|
||||
1 17 7913723755318989 CMakeFiles/clean.additional a8e8475892b6c694
|
||||
17 35 7913723755473029 clean 48fb0083216ba165
|
||||
43 198 7913723757734855 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4.c.obj ad6d0ca858ff9fd6
|
||||
21 207 7913723757516286 HAL/CMakeFiles/hal.dir/Src/hal_gpio.c.obj 62b5fd3fc12a56ec
|
||||
34 213 7913723757642275 HAL/CMakeFiles/hal.dir/Src/hal_spi.c.obj 8a7978fd4bbb8138
|
||||
25 219 7913723757563546 HAL/CMakeFiles/hal.dir/Src/hal_delay.c.obj f7ed58542e885692
|
||||
30 223 7913723757610148 HAL/CMakeFiles/hal.dir/Src/hal_uart.c.obj 9539d7c56f2172a5
|
||||
18 243 7913723757485544 HAL/CMakeFiles/hal.dir/Src/hal.c.obj e4949ba37d831425
|
||||
79 266 7913723758101255 Modules/w25qxx/CMakeFiles/w25qxx.dir/Src/w25qxx.c.obj 822d4b2e91a026bb
|
||||
67 272 7913723757984035 Modules/delay/CMakeFiles/delay.dir/src/delay.c.obj 26bf75277b3a6f97
|
||||
93 278 7913723758231372 BSP/CMakeFiles/bsp.dir/Src/stm32f407vet6_board.c.obj f1e5fe9bebf9e02
|
||||
72 285 7913723758032784 Modules/uart/CMakeFiles/uart.dir/src/uart.c.obj 6e3afd2d96cd96f6
|
||||
86 310 7913723758172771 BSP/CMakeFiles/bsp.dir/Src/bsp_init.c.obj d5eeac43f4ec50ea
|
||||
100 367 7913723758310000 BSP/CMakeFiles/bsp.dir/Src/bsp_board_manager.c.obj 8f418e92fedc44fd
|
||||
199 378 7913723759297576 BSP/CMakeFiles/bsp.dir/Src/bsp_w25qxx.c.obj 2bcc927ced55ce7e
|
||||
213 391 7913723759444719 BSP/CMakeFiles/bsp.dir/Src/bsp_eth.c.obj b6a0078da5412305
|
||||
51 404 7913723757817745 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_uart.c.obj 959718d65736c9b8
|
||||
219 413 7913723759495102 Modules/led/CMakeFiles/led.dir/src/led.c.obj 361c0065047668c7
|
||||
47 420 7913723757787493 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_gpio.c.obj b338571a161a0c05
|
||||
223 426 7913723759545802 Middlewares/logging/CMakeFiles/logging.dir/src/logging.c.obj 86b0f61c89236124
|
||||
38 434 7913723757688676 HAL/CMakeFiles/hal.dir/Src/hal_eth.c.obj ac57850a3bab3ec7
|
||||
207 458 7913723759378378 BSP/CMakeFiles/bsp.dir/Src/bsp_key.c.obj 9e57a4dd4022963a
|
||||
278 463 7913723760094561 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/sysmem.c.obj cb5c7263e77f8f30
|
||||
55 467 7913723757858123 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_delay.c.obj d88822697976a923
|
||||
310 490 7913723760408804 CMakeFiles/stm32f407vet6_cmake.dir/startup_stm32f407xx.s.obj 3352bb6321aecc50
|
||||
63 505 7913723757935395 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_eth.c.obj 1cb29b3f591666fd
|
||||
58 512 7913723757898606 HAL/CMakeFiles/hal.dir/Src/arch/stm32f4/hal_stm32f4_spi.c.obj 2876067dae4cbc08
|
||||
285 649 7913723760157994 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/syscalls.c.obj 1cc09fc1ce7816fd
|
||||
272 684 7913723760029628 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/stm32f4xx_hal_msp.c.obj c3bbce33b0b94778
|
||||
266 691 7913723759965828 CMakeFiles/stm32f407vet6_cmake.dir/Core/Src/stm32f4xx_it.c.obj 9611a8c19b40aae4
|
||||
243 718 7913723759738818 CMakeFiles/stm32f407vet6_cmake.dir/APP/Src/main.c.obj ac82fd5b4b4de416
|
||||
391 794 7913723761222097 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c.obj 218cb40779246324
|
||||
434 809 7913723761648705 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c.obj 22b8b5194dc4de2
|
||||
405 813 7913723761351586 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c.obj 2a91ea98adea2812
|
||||
463 824 7913723761944747 cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c.obj e4f00c48fc0b0584
|
||||
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.
|
||||
CMAKE_TAPI:FILEPATH=CMAKE_TAPI-NOTFOUND
|
||||
|
||||
//No help, variable specified on the command line.
|
||||
CMAKE_TOOLCHAIN_FILE:UNINITIALIZED=E:/Jfen_work/local_git_code/test_port/stm32f407vet6_cmake/cmake/gcc-arm-none-eabi.cmake
|
||||
//The CMake toolchain file
|
||||
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
|
||||
// .SILENT directive, and all commands will be echoed to the console
|
||||
|
||||
@ -102,8 +102,8 @@ events:
|
||||
checks:
|
||||
- "Detecting C compiler ABI info"
|
||||
directories:
|
||||
source: "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-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-6bi9ia"
|
||||
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_DEBUG: "-O0 -g3"
|
||||
@ -112,10 +112,10 @@ events:
|
||||
variable: "CMAKE_C_ABI_COMPILED"
|
||||
cached: true
|
||||
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
|
||||
[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
|
||||
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_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.
|
||||
COLLECT_GCC=D:\\ARM_GCC\\bin\\arm-none-eabi-gcc.exe
|
||||
Target: arm-none-eabi
|
||||
@ -123,8 +123,8 @@ events:
|
||||
Thread model: single
|
||||
Supported LTO compression algorithms: zlib
|
||||
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'
|
||||
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
|
||||
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_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)
|
||||
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
|
||||
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'
|
||||
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
|
||||
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_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
|
||||
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/
|
||||
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'
|
||||
[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 ."
|
||||
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_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
|
||||
-
|
||||
@ -184,10 +184,10 @@ events:
|
||||
Parsed C implicit link information:
|
||||
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]+)?))("|,| |$)]
|
||||
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: [Run Build Command(s): C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Scripts/ninja.exe -v cmTC_de4c5]
|
||||
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: [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_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: [COLLECT_GCC=D:\\ARM_GCC\\bin\\arm-none-eabi-gcc.exe]
|
||||
ignore line: [Target: arm-none-eabi]
|
||||
@ -195,8 +195,8 @@ events:
|
||||
ignore line: [Thread model: single]
|
||||
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: [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: [ 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: [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_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: [ 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: []
|
||||
@ -217,8 +217,8 @@ events:
|
||||
ignore line: []
|
||||
ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
|
||||
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: [ 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: [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_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: [COMPILER_PATH=d:/arm_gcc/bin/../lib/gcc/arm-none-eabi/10.3.1/]
|
||||
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/arm-none-eabi/10.3.1/../../../../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: [[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: [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_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: []
|
||||
implicit libs: []
|
||||
@ -249,8 +249,8 @@ events:
|
||||
checks:
|
||||
- "Detecting CXX compiler ABI info"
|
||||
directories:
|
||||
source: "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-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-syypm0"
|
||||
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"
|
||||
@ -260,10 +260,10 @@ events:
|
||||
variable: "CMAKE_CXX_ABI_COMPILED"
|
||||
cached: true
|
||||
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
|
||||
[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
|
||||
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_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.
|
||||
COLLECT_GCC=D:\\ARM_GCC\\bin\\arm-none-eabi-g++.exe
|
||||
Target: arm-none-eabi
|
||||
@ -271,8 +271,8 @@ events:
|
||||
Thread model: single
|
||||
Supported LTO compression algorithms: zlib
|
||||
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'
|
||||
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
|
||||
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_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)
|
||||
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
|
||||
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'
|
||||
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
|
||||
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_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
|
||||
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/
|
||||
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'
|
||||
[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 ."
|
||||
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_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
|
||||
-
|
||||
@ -344,10 +344,10 @@ events:
|
||||
Parsed CXX implicit link information:
|
||||
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]+)?))("|,| |$)]
|
||||
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: [Run Build Command(s): C:/Users/ZHIZHANKEJI/AppData/Local/Programs/Python/Python311/Scripts/ninja.exe -v cmTC_73626]
|
||||
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: [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_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: [COLLECT_GCC=D:\\ARM_GCC\\bin\\arm-none-eabi-g++.exe]
|
||||
ignore line: [Target: arm-none-eabi]
|
||||
@ -355,8 +355,8 @@ events:
|
||||
ignore line: [Thread model: single]
|
||||
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: [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: [ 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: [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_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: [ 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: []
|
||||
@ -383,8 +383,8 @@ events:
|
||||
ignore line: []
|
||||
ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
|
||||
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: [ 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: [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_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: [COMPILER_PATH=d:/arm_gcc/bin/../lib/gcc/arm-none-eabi/10.3.1/]
|
||||
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/arm-none-eabi/10.3.1/../../../../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: [[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: [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_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: []
|
||||
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
|
||||
|
||||
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
|
||||
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
|
||||
@ -280,12 +280,20 @@ build cmake/stm32cubemx/CMakeFiles/STM32_Drivers.dir/__/__/Drivers/STM32F4xx_HAL
|
||||
OBJECT_DIR = cmake\stm32cubemx\CMakeFiles\STM32_Drivers.dir
|
||||
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
|
||||
|
||||
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_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
|
||||
DEFINES = -DDEBUG -DSTM32F407xx -DUSE_HAL_DRIVER
|
||||
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_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
|
||||
@ -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
|
||||
|
||||
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
|
||||
OBJECT_DIR = HAL\CMakeFiles\hal.dir
|
||||
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_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
|
||||
@ -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
|
||||
|
||||
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
|
||||
OBJECT_DIR = BSP\CMakeFiles\bsp.dir
|
||||
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",
|
||||
"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",
|
||||
"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",
|
||||
"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",
|
||||
"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",
|
||||
"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",
|
||||
"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",
|
||||
"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",
|
||||
"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_uart.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
|
||||
|
||||
Reference in New Issue
Block a user