refactor(build): 支持A/B分区逻辑
移除sys/flash.h、sys/flash.cpp、sys/initial.h和sys/OTA相关文件的 引用,清理cproject.yml和cbuild.yml中的未使用组件和文件配置。 BREAKING CHANGE: 移除了FlashEEPROM相关功能和接口。
This commit is contained in:
@@ -12,8 +12,6 @@ project:
|
||||
- file: sys/systick.h
|
||||
- file: sys/initial.cpp
|
||||
- file: sys/initial.h
|
||||
- file: sys/flash.h
|
||||
- file: sys/flash.cpp
|
||||
- file: sys/OTA.h
|
||||
- file: sys/OTA.cpp
|
||||
- file: sys/config.h
|
||||
@@ -26,18 +24,18 @@ project:
|
||||
- component: Device:Startup
|
||||
- component: Device:GD32C10x_StdPeripherals:CAN
|
||||
- component: Device:GD32C10x_StdPeripherals:DMA
|
||||
- component: Device:GD32C10x_StdPeripherals:EXTI
|
||||
- component: Device:GD32C10x_StdPeripherals:FMC
|
||||
- component: Device:GD32C10x_StdPeripherals:GPIO
|
||||
- component: Device:GD32C10x_StdPeripherals:MISC
|
||||
- component: Device:GD32C10x_StdPeripherals:PMU
|
||||
- component: Device:GD32C10x_StdPeripherals:RCU
|
||||
- component: Device:GD32C10x_StdPeripherals:USART
|
||||
- component: Device:GD32C10x_libopt
|
||||
- component: Device:EVAL:GD32C10x
|
||||
- component: Device:GD32C10x_StdPeripherals:CRC
|
||||
- component: Device:GD32C10x_StdPeripherals:FWDGT
|
||||
- component: Device:GD32C10x_StdPeripherals:DBG
|
||||
- component: Device:GD32C10x_StdPeripherals:EXTI
|
||||
- component: Device:GD32C10x_StdPeripherals:USART
|
||||
- component: Device:GD32C10x_StdPeripherals:CRC
|
||||
output:
|
||||
type:
|
||||
- elf
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
#include "Can.h"
|
||||
#include "OTA.h"
|
||||
#include "config.h"
|
||||
#include "flash.h"
|
||||
#include "gd32c10x.h"
|
||||
#include "gd32c10x_can.h"
|
||||
#include "gd32c10x_dma.h"
|
||||
@@ -17,7 +16,6 @@
|
||||
CAN_transmiter CAN0_transmiter; // CAN初始化
|
||||
extern BootloaderSystem sys;
|
||||
extern OTAHandler ota;
|
||||
extern FlashEEPROM flashEEP;
|
||||
|
||||
// 添加DMA相关变量
|
||||
dma_parameter_struct dma_rx_parameter;
|
||||
|
||||
@@ -9,7 +9,6 @@ extern "C" {
|
||||
#include "gd32c10x_can.h"
|
||||
#include "stdint.h"
|
||||
#include <stdio.h>
|
||||
#include "sys/config.h"
|
||||
|
||||
u8 can_gpio_init(void); // CAN引脚初始化
|
||||
void canfd_config(void); // CANFD初始化
|
||||
|
||||
+34
-110
@@ -1,15 +1,14 @@
|
||||
#include "main.h"
|
||||
#include "Can.h"
|
||||
#include "aes128.h"
|
||||
#include "config.h"
|
||||
#include "gd32c10x.h"
|
||||
#include "initial.h"
|
||||
#include "sys/OTA.h"
|
||||
#include "sys/config.h"
|
||||
#include "sys/systick.h"
|
||||
#include <cstdio>
|
||||
|
||||
#include <gd32c10x_fmc.h>
|
||||
|
||||
extern CAN_transmiter CAN0_transmiter; // CAN初始化
|
||||
|
||||
BootloaderSystem sys;
|
||||
extern OTAHandler ota;
|
||||
|
||||
@@ -17,121 +16,46 @@ void BootloaderSystem::initHardware() {
|
||||
systick_config(); // 系统时钟初始化
|
||||
USART0_init(); // 调试串口初始化
|
||||
|
||||
rcu_periph_clock_enable(RCU_CRC); // 使能CRC外设时钟
|
||||
crc_deinit(); // 初始化CRC模块
|
||||
// rcu_periph_clock_enable(RCU_CRC); // 使能CRC外设时钟
|
||||
// crc_deinit(); // 初始化CRC模块
|
||||
CAN0_transmiter.init();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 扫描APP地址范围内的Flash内容
|
||||
* @param print_content 是否打印Flash内容,默认为true
|
||||
* @param page_count 扫描的页数,默认为0表示扫描整个APP区域
|
||||
* @retval 无
|
||||
*/
|
||||
void scanAppFlashContent(bool print_content = true, u32 page_count = 0) {
|
||||
u32 start_addr = APP_START_ADDR;
|
||||
u32 total_size = 0xC000;
|
||||
|
||||
// 如果指定了页数,则按页数计算大小
|
||||
if (page_count > 0) {
|
||||
total_size = page_count * FMC_PAGE_SIZE;
|
||||
}
|
||||
|
||||
u32 end_addr = start_addr + total_size;
|
||||
|
||||
#if DEBUG_OTA
|
||||
printf("Scanning Flash from 0x%08X to 0x%08X (%d bytes)\r\n", start_addr,
|
||||
end_addr, total_size);
|
||||
#endif
|
||||
|
||||
u32 page_count_scanned = 0;
|
||||
u32 empty_pages = 0;
|
||||
u32 data_pages = 0;
|
||||
|
||||
for (u32 addr = start_addr; addr < end_addr; addr += FMC_PAGE_SIZE) {
|
||||
bool page_empty = true;
|
||||
|
||||
// 检查当前页是否全为0xFF(空页)
|
||||
for (u32 offset = 0; offset < FMC_PAGE_SIZE; offset += 4) {
|
||||
u32 data = *(u32 *)(addr + offset);
|
||||
|
||||
if (data != 0xFFFFFFFF) {
|
||||
page_empty = false;
|
||||
break; // 找到非空数据,立即退出检查
|
||||
}
|
||||
}
|
||||
|
||||
if (page_empty) {
|
||||
empty_pages++;
|
||||
} else {
|
||||
data_pages++;
|
||||
|
||||
// 只有在非空页面且需要打印时才输出内容
|
||||
if (print_content) {
|
||||
printf("Page 0x%08X: \r\n", addr);
|
||||
|
||||
// 打印所有内容
|
||||
for (u32 offset = 0; offset < FMC_PAGE_SIZE;
|
||||
offset += 16) { // 每行打印16字节
|
||||
// 打印地址偏移
|
||||
printf(" +%03X: ", offset);
|
||||
|
||||
// 打印十六进制数据
|
||||
for (u32 byte_idx = 0; byte_idx < 16; byte_idx++) {
|
||||
if ((offset + byte_idx) < FMC_PAGE_SIZE) {
|
||||
u8 data = *(__IO u8 *)(addr + offset + byte_idx);
|
||||
printf("%02X ", data);
|
||||
} else {
|
||||
printf(" "); // 空白填充
|
||||
}
|
||||
|
||||
// 每8字节加个小空格,便于阅读
|
||||
if (byte_idx == 7) {
|
||||
printf(" ");
|
||||
}
|
||||
}
|
||||
|
||||
// 打印可打印字符
|
||||
printf("|");
|
||||
for (u32 byte_idx = 0; byte_idx < 16; byte_idx++) {
|
||||
if ((offset + byte_idx) < FMC_PAGE_SIZE) {
|
||||
u8 data = *(__IO u8 *)(addr + offset + byte_idx);
|
||||
if (data >= 32 && data <= 126) { // 可打印字符范围
|
||||
printf("%c", data);
|
||||
} else {
|
||||
printf(".");
|
||||
}
|
||||
} else {
|
||||
printf(" "); // 空白填充
|
||||
}
|
||||
}
|
||||
printf("|\r\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
page_count_scanned++;
|
||||
}
|
||||
|
||||
#if DEBUG_OTA
|
||||
printf("Scan complete: %d pages scanned, %d empty pages, %d data pages\r\n",
|
||||
page_count_scanned, empty_pages, data_pages);
|
||||
#endif
|
||||
}
|
||||
|
||||
void BootloaderSystem::run() {
|
||||
// 检查是否触发OTA模式
|
||||
if (!validateApplication()) {
|
||||
printf("OTA Mode\r\n");
|
||||
volatile u32 *flash_ptr = (volatile u32 *)n_APP_LATEST_EN_ADDR;
|
||||
u32 app_enable = *flash_ptr;
|
||||
flash_ptr = (volatile u32 *)n_APP_LATEST_CHECK_ADDR;
|
||||
u32 app_check = *flash_ptr;
|
||||
if (app_check == OTA_AVAL and
|
||||
app_enable == OTA_AVAL) { // APP已确认且激活,直接进入
|
||||
printf("Normal Mode\r\n");
|
||||
// 正常模式:跳转到APP
|
||||
ota.jumpToApplication();
|
||||
} else if (app_check == OTA_AVAL and
|
||||
app_enable == OTA_NOT_AVAL) { // 手动禁用APP,进入OTA模式
|
||||
printf("OTA Mode1\r\n");
|
||||
// OTA模式
|
||||
while (1) {
|
||||
CAN0_transmiter.communication_check();
|
||||
ota.process();
|
||||
}
|
||||
} else {
|
||||
printf("Normal Mode\r\n");
|
||||
// 正常模式:跳转到APP
|
||||
ota.jumpToApplication();
|
||||
} else { // APP无效,确认backup
|
||||
volatile u32 *flash_ptr = (volatile u32 *)n_APP_BACKUP_AVAL_ADDR;
|
||||
u32 back_aval = *flash_ptr;
|
||||
flash_ptr = (volatile u32 *)n_APP_BACKUP_CHECK_ADDR;
|
||||
u32 back_check = *flash_ptr;
|
||||
if (back_check == OTA_AVAL and
|
||||
back_aval == OTA_AVAL) { // backup已确认且激活,复制到主APP区域
|
||||
move_app_data(); // 恢复BACKUP
|
||||
ota.jumpToApplication(); // 跳转到APP
|
||||
} else { // backup无效,进入OTA模式
|
||||
printf("OTA Mode2\r\n");
|
||||
// OTA模式
|
||||
while (1) {
|
||||
CAN0_transmiter.communication_check();
|
||||
ota.process();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
int main(void) {
|
||||
|
||||
+211
-41
@@ -7,22 +7,96 @@
|
||||
#include "systick.h"
|
||||
#include <cstdio>
|
||||
#include <cstring>
|
||||
#include <flash.h>
|
||||
#include <stdint.h>
|
||||
|
||||
extern CAN_transmiter CAN0_transmiter; // CAN初始化
|
||||
extern FlashEEPROM flashEEP;
|
||||
OTAHandler ota;
|
||||
extern "C" {
|
||||
void canfd_rx_irq_handler(void);
|
||||
}
|
||||
|
||||
inline fmc_state_enum write_ADDRESS(u32 address, u32 data) {
|
||||
fmc_unlock();
|
||||
fmc_flag_clear(FMC_FLAG_PGERR | FMC_FLAG_PGAERR | FMC_FLAG_WPERR);
|
||||
|
||||
// 确保使用对齐地址
|
||||
fmc_state_enum fmc_status = fmc_word_program(address, data);
|
||||
|
||||
fmc_lock();
|
||||
return fmc_status;
|
||||
}
|
||||
|
||||
u8 OTA_SET(u32 addr, u32 data) {
|
||||
fmc_state_enum fmc_status;
|
||||
u32 temp_val[OTA_CONFIG_NUM];
|
||||
volatile u32 *flash_ptr = (volatile u32 *)addr;
|
||||
temp_val[0] = *flash_ptr;
|
||||
if (temp_val[0] == data) { // 如果相同
|
||||
return FLASH_EEPROM_OK; // 成功
|
||||
}
|
||||
|
||||
fmc_unlock();
|
||||
// 如果不同,且要写0,直接写
|
||||
if (data == OTA_AVAL) {
|
||||
fmc_status = write_ADDRESS(addr, data);
|
||||
fmc_lock();
|
||||
if (fmc_status == FMC_READY) {
|
||||
return FLASH_EEPROM_OK; // 成功可以直接退出
|
||||
}
|
||||
}
|
||||
|
||||
// 如果不同或写入出错,要写1,需要重置,然后再写
|
||||
flash_ptr = (volatile u32 *)n_APP_LATEST_AVAL_ADDR;
|
||||
temp_val[0] = *flash_ptr;
|
||||
flash_ptr = (volatile u32 *)n_APP_BACKUP_AVAL_ADDR;
|
||||
temp_val[1] = *flash_ptr;
|
||||
flash_ptr = (volatile u32 *)n_APP_LATEST_EN_ADDR;
|
||||
temp_val[2] = *flash_ptr;
|
||||
flash_ptr = (volatile u32 *)n_APP_BACKUP_EN_ADDR;
|
||||
temp_val[3] = *flash_ptr;
|
||||
flash_ptr = (volatile u32 *)n_APP_LATEST_CHECK_ADDR;
|
||||
temp_val[4] = *flash_ptr;
|
||||
flash_ptr = (volatile u32 *)n_APP_BACKUP_CHECK_ADDR;
|
||||
temp_val[5] = *flash_ptr;
|
||||
#if EEP_DEBUG
|
||||
printf("OTA_SET\r\n");
|
||||
printf("0x%x_0x%x_0x%x_0x%x\r\n", temp_val[0], temp_val[1], temp_val[2],
|
||||
temp_val[3]);
|
||||
#endif
|
||||
fmc_status = fmc_page_erase(n_APP_LATEST_AVAL_ADDR); // 擦除页
|
||||
if (fmc_status != FMC_READY) {
|
||||
return FLASH_EEPROM_ERROR; // 擦除错误退出
|
||||
}
|
||||
for (int i = 0; i < OTA_CONFIG_NUM; i++) {
|
||||
if (temp_val[i] == OTA_AVAL and
|
||||
n_APP_LATEST_AVAL_ADDR + 4 * i != addr) {
|
||||
fmc_status = write_ADDRESS(n_APP_LATEST_AVAL_ADDR + 4 * i,
|
||||
OTA_AVAL); // 把需要写入0的写入0
|
||||
if (fmc_status != FMC_READY) {
|
||||
fmc_lock();
|
||||
return FLASH_EEPROM_ERROR; // 写入错误退出
|
||||
}
|
||||
}
|
||||
}
|
||||
fmc_lock();
|
||||
return FLASH_EEPROM_OK;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 从4字节数组中提取一个32位无符号整数
|
||||
* @param array: 4字节数组
|
||||
* @retval 32位无符号整数
|
||||
*/
|
||||
static inline uint32_t extract_u32_from_4bytes(const uint8_t *array) {
|
||||
return ((uint32_t)array[3] << 24) | ((uint32_t)array[2] << 16) |
|
||||
((uint32_t)array[1] << 8) | (uint32_t)array[0];
|
||||
}
|
||||
void OTAHandler::init() {}
|
||||
|
||||
/**
|
||||
* @brief OTA处理函数
|
||||
* @param 无
|
||||
* @retval 无
|
||||
*/
|
||||
void OTAHandler::process() {
|
||||
if (ota_state == OTA_STATE_IDLE) {
|
||||
ota_time = 0; // 重置计时器
|
||||
@@ -43,27 +117,36 @@ void OTAHandler::process() {
|
||||
ota_time = 0;
|
||||
ota_state = OTA_STATE_IDLE;
|
||||
ota_error = OTA_ERROR_TIMEOUT;
|
||||
send_error_frame(OTA_ERROR_TIMEOUT); // 验证失败
|
||||
volatile u32 *flash_ptr =
|
||||
(volatile u32 *)n_APP_LATEST_CHECK_ADDR; // 如果是实际可以运行
|
||||
u32 if_checked = *flash_ptr;
|
||||
flash_ptr = (volatile u32 *)n_APP_LATEST_AVAL_ADDR; // 如果是实际已刷入
|
||||
u32 if_aval = *flash_ptr;
|
||||
send_error_frame(OTA_ERROR_TIMEOUT); // OTA超时
|
||||
if (if_checked == OTA_AVAL and if_aval == OTA_AVAL) {
|
||||
OTA_SET(n_APP_LATEST_AVAL_ADDR,
|
||||
OTA_AVAL); // 实际可用,设置APP为启用
|
||||
}
|
||||
jumpToApplication();
|
||||
}
|
||||
}
|
||||
|
||||
bool validateApplication() {
|
||||
u32 *app_vector = (u32 *)APP_START_ADDR;
|
||||
u32 *app_vector = (u32 *)APPLATEST_START_ADDR;
|
||||
u32 stack_ptr = app_vector[0];
|
||||
u32 reset_handler = app_vector[1];
|
||||
|
||||
#if DEBUG_OTA
|
||||
printf("APP_START_ADDR: 0x%08X\r\n", APP_START_ADDR);
|
||||
printf("APPLATEST_START_ADDR: 0x%08X\r\n", APPLATEST_START_ADDR);
|
||||
printf("Stack Pointer: 0x%08X\r\n", stack_ptr);
|
||||
printf("Reset Handler: 0x%08X\r\n", reset_handler);
|
||||
printf("APP Range: 0x%08X - 0x%08X\r\n", APP_START_ADDR,
|
||||
APP_START_ADDR + APP_MAX_SIZE);
|
||||
printf("APP Range: 0x%08X - 0x%08X\r\n", APPLATEST_START_ADDR,
|
||||
APPLATEST_START_ADDR + APP_MAX_SIZE);
|
||||
#endif
|
||||
|
||||
// 简单验证:检查栈指针是否在SRAM范围内
|
||||
bool stack_valid = (stack_ptr >= 0x20000000 && stack_ptr < 0x20008000);
|
||||
bool reset_valid = (reset_handler >= APP_START_ADDR &&
|
||||
reset_handler < (APP_START_ADDR + APP_MAX_SIZE));
|
||||
bool reset_valid = (reset_handler >= APPLATEST_START_ADDR &&
|
||||
reset_handler < (APPLATEST_START_ADDR + APP_MAX_SIZE));
|
||||
|
||||
#if DEBUG_OTA
|
||||
if (!stack_valid) {
|
||||
@@ -77,6 +160,11 @@ bool validateApplication() {
|
||||
return stack_valid && reset_valid;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 跳转应用处理模块
|
||||
* @param 无
|
||||
* @retval 无
|
||||
*/
|
||||
void OTAHandler::jumpToApplication() {
|
||||
#if DEBUG_OTA
|
||||
printf("try jump to app\r\n");
|
||||
@@ -90,6 +178,8 @@ void OTAHandler::jumpToApplication() {
|
||||
}
|
||||
printf("jumping1\r\n");
|
||||
#endif
|
||||
OTA_SET(n_APP_LATEST_AVAL_ADDR, OTA_AVAL); // 设置APP为可用
|
||||
OTA_SET(n_APP_LATEST_EN_ADDR, OTA_AVAL); // 设置APP为激活
|
||||
// 1. 关闭所有中断
|
||||
__disable_irq();
|
||||
for (int i = 0; i < 8; i++) {
|
||||
@@ -117,11 +207,11 @@ void OTAHandler::jumpToApplication() {
|
||||
printf("jumping3\r\n");
|
||||
#endif
|
||||
// 5. 设置中断向量表偏移到应用程序起始地址
|
||||
SCB->VTOR = APP_START_ADDR;
|
||||
SCB->VTOR = APPLATEST_START_ADDR;
|
||||
|
||||
// 6. 设置MSP并跳转
|
||||
uint32_t msp_value = *(__IO uint32_t *)APP_START_ADDR;
|
||||
uint32_t reset_handler = *(__IO uint32_t *)(APP_START_ADDR + 4);
|
||||
uint32_t msp_value = *(__IO uint32_t *)APPLATEST_START_ADDR;
|
||||
uint32_t reset_handler = *(__IO uint32_t *)(APPLATEST_START_ADDR + 4);
|
||||
typedef void (*AppEntryFunc)(void);
|
||||
AppEntryFunc app_entry = (AppEntryFunc)reset_handler;
|
||||
#if DEBUG_OTA
|
||||
@@ -151,8 +241,8 @@ void OTAHandler::eraseApplicationArea() {
|
||||
__disable_irq();
|
||||
|
||||
fmc_state_enum fmc_status;
|
||||
for (u32 addr = APP_START_ADDR; addr < (APP_START_ADDR + APP_MAX_SIZE);
|
||||
addr += FMC_PAGE_SIZE) {
|
||||
for (u32 addr = APPLATEST_START_ADDR;
|
||||
addr < (APPLATEST_START_ADDR + APP_MAX_SIZE); addr += FMC_PAGE_SIZE) {
|
||||
fmc_status = fmc_page_erase(addr);
|
||||
if (fmc_status != FMC_READY) {
|
||||
// 如果擦除失败,记录错误并退出
|
||||
@@ -181,7 +271,7 @@ void OTAHandler::eraseApplicationArea() {
|
||||
*/
|
||||
void OTAHandler::writeApplicationData(u32 offset, u8 *data, u32 size) {
|
||||
fmc_unlock();
|
||||
u32 write_addr = APP_START_ADDR + offset;
|
||||
u32 write_addr = APPLATEST_START_ADDR + offset;
|
||||
|
||||
u32 i = 0;
|
||||
u8 *src = data;
|
||||
@@ -207,29 +297,6 @@ void OTAHandler::writeApplicationData(u32 offset, u8 *data, u32 size) {
|
||||
fmc_lock();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 验证应用程序数据
|
||||
* @param offset: 写入偏移量
|
||||
* @param data: 原始数据指针
|
||||
* @param size: 数据大小
|
||||
* @retval true if verification passes, false otherwise
|
||||
*/
|
||||
bool OTAHandler::verifyApplicationData(u32 offset, u8 *data, u32 size) {
|
||||
u32 verify_addr = APP_START_ADDR + offset;
|
||||
|
||||
for (u32 i = 0; i < size; i++) {
|
||||
if (((u8 *)verify_addr)[i] != data[i]) {
|
||||
#if DEBUG_OTA
|
||||
printf("Data verification failed at offset %d, expected 0x%02X, "
|
||||
"got 0x%02X\r\n",
|
||||
i, data[i], ((u8 *)verify_addr)[i]);
|
||||
#endif
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 处理OTA数据包
|
||||
* @param id: CAN帧ID
|
||||
@@ -318,7 +385,7 @@ void OTAHandler::handleOTAMessage(u32 id, u8 *data, u8 len) {
|
||||
ota_state = OTA_STATE_RECEIVING_FIRMWARE;
|
||||
} else if (len == 2 and ota_state == OTA_STATE_FINISHED) {
|
||||
#if DEBUG_OTA
|
||||
printf("stage8:OTA_STATE_FINISHED\r\n");
|
||||
printf("stage--:OTA_STATE_FINISHED\r\n");
|
||||
#endif
|
||||
u8 send_data[2] = {0x0A, 0xAC}; // 确认开始传输
|
||||
// 4. 验证成功 - 发送最终ACK
|
||||
@@ -423,6 +490,12 @@ void OTAHandler::handleOTAMessage(u32 id, u8 *data, u8 len) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 发送错误帧
|
||||
* @param error: 错误码
|
||||
* @retval 无
|
||||
*/
|
||||
|
||||
void send_error_frame(u8 error) {
|
||||
u8 error_frame[1] = {error};
|
||||
CAN0_transmiter.CANFD_AsyncSend(CANFD_OTA_ACK_ID, 1, error_frame);
|
||||
@@ -462,6 +535,103 @@ void getDeviceSerialNumberString(char *str) {
|
||||
str[24] = '\0'; // 确保字符串结束
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 将0x08010500地址后0xC000大小区域内的数据搬运到0x08011000地址
|
||||
* @param None
|
||||
* @retval fmc_state_enum: 操作状态
|
||||
*/
|
||||
fmc_state_enum move_app_data() {
|
||||
fmc_state_enum fmc_status = FMC_READY;
|
||||
|
||||
// 关闭全局中断以防止Flash操作期间的中断干扰
|
||||
__disable_irq();
|
||||
fmc_unlock();
|
||||
|
||||
// 首先擦除目标地址的Flash页面
|
||||
uint32_t num_pages =
|
||||
(APP_MAX_SIZE + FMC_PAGE_SIZE - 1) / FMC_PAGE_SIZE; // 向上取整
|
||||
|
||||
for (uint32_t i = 0; i < num_pages; i++) {
|
||||
uint32_t page_addr = APPLATEST_START_ADDR + i * FMC_PAGE_SIZE;
|
||||
|
||||
// 擦除页面
|
||||
fmc_status = fmc_page_erase(page_addr);
|
||||
if (fmc_status != FMC_READY) {
|
||||
fmc_lock();
|
||||
#if OTA_DEBUG
|
||||
printf("move_app_data erase error\r\n");
|
||||
#endif
|
||||
__enable_irq(); // 重新开启中断
|
||||
return fmc_status;
|
||||
}
|
||||
}
|
||||
|
||||
// 复制数据 - 按字(32位)进行复制以提高效率
|
||||
uint32_t offset = 0;
|
||||
uint32_t write_count = 0; // 记录实际写入的字数
|
||||
const uint32_t *src_ptr = (const uint32_t *)APPLATEST_START_ADDR;
|
||||
uint32_t *dst_ptr = (uint32_t *)APPLATEST_START_ADDR;
|
||||
|
||||
// 预计算源数据的CRC,避免重复访问内存
|
||||
crc_deinit();
|
||||
crc_data_register_reset();
|
||||
uint32_t src_crc = crc_block_data_calculate(
|
||||
(uint32_t *)APPBACK_START_ADDR, APP_MAX_SIZE / 4);
|
||||
|
||||
while (offset < APP_MAX_SIZE) {
|
||||
uint32_t src_data = src_ptr[offset / 4];
|
||||
|
||||
// 检查源地址是否为有效的Flash数据(非0xFFFFFFFF表示有数据)
|
||||
if (src_data != 0xFFFFFFFF) {
|
||||
// 清除之前的标志位
|
||||
fmc_flag_clear(FMC_FLAG_END | FMC_FLAG_WPERR | FMC_FLAG_PGAERR |
|
||||
FMC_FLAG_PGERR);
|
||||
|
||||
fmc_status =
|
||||
fmc_word_program(APPLATEST_START_ADDR + offset, src_data);
|
||||
|
||||
// 检查写入操作是否成功
|
||||
if (fmc_status != FMC_READY) {
|
||||
#if OTA_DEBUG
|
||||
printf(
|
||||
"Flash write failed at offset 0x%08X with status: %d\r\n",
|
||||
offset, fmc_status);
|
||||
#endif
|
||||
fmc_lock();
|
||||
__enable_irq(); // 重新开启中断
|
||||
return fmc_status;
|
||||
}
|
||||
write_count++;
|
||||
}
|
||||
offset += 4;
|
||||
|
||||
// 每写入一定数量的数据后,喂狗一次
|
||||
if ((offset % 4096) == 0) { // 每4KB喂狗一次
|
||||
fwdgt_counter_reload();
|
||||
}
|
||||
}
|
||||
|
||||
fmc_lock();
|
||||
|
||||
// 重新开启全局中断
|
||||
__enable_irq();
|
||||
crc_data_register_reset(); // 确保CRC计算从初始状态开始
|
||||
|
||||
// 计算目标数据的CRC值
|
||||
uint32_t dst_crc = crc_block_data_calculate(
|
||||
(uint32_t *)APPLATEST_START_ADDR, APP_MAX_SIZE / 4);
|
||||
|
||||
// 比较CRC值,确保数据完整性
|
||||
if (src_crc != dst_crc) {
|
||||
#if OTA_DEBUG
|
||||
printf("CRC mismatch: src_crc=0x%08X, dst_crc=0x%08X\r\n", src_crc,
|
||||
dst_crc);
|
||||
#endif
|
||||
return (fmc_state_enum)0xFF; // CRC校验失败
|
||||
}
|
||||
return fmc_status;
|
||||
}
|
||||
|
||||
/**
|
||||
* 带密钥的CRC32校验函数
|
||||
*
|
||||
|
||||
@@ -57,4 +57,6 @@ void calculate_crc32_with_key(const uint8_t *key, const uint8_t *data,
|
||||
u8 *output);
|
||||
void send_error_frame(uint8_t error);
|
||||
bool validateApplication();
|
||||
fmc_state_enum move_app_data();
|
||||
|
||||
#endif
|
||||
+21
-6
@@ -7,17 +7,33 @@
|
||||
#define CAN_DEBUG 0
|
||||
|
||||
// Flash分区配置
|
||||
constexpr u32 BOOTLOADER_SIZE = 0x4000; // 16KB
|
||||
constexpr u32 APP_START_ADDR = 0x08010000; // APP起始地址 0x08004000
|
||||
constexpr u32 APP2_START_ADDR = 0x08010000; // APP2起始地址
|
||||
constexpr u32 APP_MAX_SIZE = 0xC000; // 48KB
|
||||
constexpr u32 FMC_PAGE_SIZE = 0x400; // 1KB
|
||||
constexpr u32 BOOTLOADER_SIZE = 0x4000; // 16KB
|
||||
constexpr u32 BOOTLOADER_START_ADDR = 0x08000000; // BOOT起始地址
|
||||
constexpr u32 APPLATEST_START_ADDR = 0x08011000; // APP起始地址
|
||||
constexpr u32 APPBACK_START_ADDR = 0x08005000; // APPBACK起始地址
|
||||
constexpr u32 APP_MAX_SIZE = 0xC000; // 48KB
|
||||
constexpr u32 FMC_PAGE_SIZE = 0x400; // 1KB
|
||||
|
||||
|
||||
// BOOT 相关
|
||||
constexpr u32 OTA_CONFIG_NUM = 6;
|
||||
constexpr u32 n_APP_LATEST_AVAL_ADDR = 0x0801D000; // 最新APP可用地址
|
||||
constexpr u32 n_APP_BACKUP_AVAL_ADDR = 0x0801D004; // 备份APP可用地址
|
||||
constexpr u32 n_APP_LATEST_EN_ADDR = 0x0801D008; // 最新APP激活
|
||||
constexpr u32 n_APP_BACKUP_EN_ADDR = 0x0801D00C; // 备份APP激活
|
||||
constexpr u32 n_APP_LATEST_CHECK_ADDR = 0x0801D010; // 最新APP校验
|
||||
constexpr u32 n_APP_BACKUP_CHECK_ADDR = 0x0801D014; // 备份APP校验
|
||||
constexpr u32 OTA_NOT_AVAL = 0xFFFFFFFF;
|
||||
constexpr u32 OTA_AVAL = 0x00000000; // 全零表示可用
|
||||
constexpr u32 FLASH_EEPROM_OK = 0;
|
||||
constexpr u32 FLASH_EEPROM_ERROR = 1;
|
||||
|
||||
// CANFD配置
|
||||
constexpr u32 CANFD_OTA_REQ_ID = 0x00000100;
|
||||
constexpr u32 CANFD_OTA_DATA_ID = 0x00000101;
|
||||
constexpr u32 CANFD_OTA_ACK_ID = 0x00000102;
|
||||
constexpr u32 CANFD_OTA_WAIT_ID = 0x00000103;
|
||||
constexpr u32 CANFD_OTA_CANCEL_ID = 0x00000000;
|
||||
|
||||
// 设备唯一ID寄存器地址 (GD32C10x系列)
|
||||
constexpr u32 DEVICE_SERIAL_ADDR_MSB = 0x1FFFF7E8; // 最高32位
|
||||
@@ -33,7 +49,6 @@ typedef union {
|
||||
u8 b[4];
|
||||
} u32_union_t;
|
||||
|
||||
|
||||
// 全局变量(需在安全区域存储)
|
||||
constexpr uint8_t K_master[16] = {0x01, 0x23, 0x45, 0x67, 0x89, 0xAB,
|
||||
0xCD, 0xEF, 0xFE, 0xDC, 0xBA, 0x98,
|
||||
|
||||
@@ -52,55 +52,4 @@ FlashEepromStatus FlashEEPROM::format() {
|
||||
}
|
||||
fmc_lock();
|
||||
return FLASH_EEPROM_OK;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 保存CRC数据到Flash
|
||||
* @return FlashEepromStatus: 状态
|
||||
*/
|
||||
FlashEepromStatus FlashEEPROM::writeCRC(u32 CRC_NUM) {
|
||||
static u32 next_address;
|
||||
// 遍历Flash页面寻找下一个可写入crc的位置
|
||||
for (u32 address = EEPROM_DATA_START_ADDRESS - SIZE_U32;
|
||||
address > EEPROM_START_ADDRESS; address -= SIZE_U32) {
|
||||
// 安全读取Flash数据
|
||||
volatile u32 *flash_ptr = (volatile u32 *)address;
|
||||
u32 data_word = *flash_ptr;
|
||||
// 找到空位置
|
||||
if (data_word == 0xFFFFFFFF) {
|
||||
next_address = address;
|
||||
break;
|
||||
}
|
||||
// 更新下一个可能的写入位置(如果需要格式化)
|
||||
next_address = address - SIZE_U32;
|
||||
}
|
||||
|
||||
// 如果当前CRC与现在的crc值不同,则写入
|
||||
if (*((u32 *)next_address) != CRC_NUM) {
|
||||
// 如果有足够空间,直接写入crc值
|
||||
if (next_address > EEPROM_START_ADDRESS) {
|
||||
fmc_unlock();
|
||||
fmc_flag_clear(FMC_FLAG_PGERR | FMC_FLAG_PGAERR | FMC_FLAG_WPERR);
|
||||
fmc_state_enum fmc_status = fmc_word_program(next_address, CRC_NUM);
|
||||
fmc_lock();
|
||||
#if EEPDEBUG
|
||||
printf("CRC cmp1,0x%X_0x%x \r\n", CRC_NUM, *((u32 *)next_address));
|
||||
#endif
|
||||
|
||||
// 检查写入是否成功
|
||||
if (fmc_status != FMC_READY) {
|
||||
EEPROMStatus = fmc_status;
|
||||
return FLASH_EEPROM_WRITE_ERROR;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 重新读取CRC校验
|
||||
if (CRC_NUM == *((u32 *)next_address)) {
|
||||
EEPROMStatus = FLASH_EEPROM_OK; // 设置EEPROM状态
|
||||
return FLASH_EEPROM_OK;
|
||||
} else {
|
||||
EEPROMStatus = FLASH_EEPROM_CRC_ERROR; // 设置EEPROM错误状态
|
||||
return FLASH_EEPROM_CRC_ERROR;
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,7 @@
|
||||
#include <cstdio>
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include "config.h"
|
||||
|
||||
/* retarget the C library printf function to the USART */
|
||||
u8 USART0_init() {
|
||||
@@ -36,6 +37,102 @@ void unused_pin_init() {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief 扫描APP地址范围内的Flash内容
|
||||
* @param print_content 是否打印Flash内容,默认为true
|
||||
* @param page_count 扫描的页数,默认为0表示扫描整个APP区域
|
||||
* @retval 无
|
||||
*/
|
||||
void scanAppFlashContent(bool print_content = true, u32 page_count = 0) {
|
||||
u32 start_addr = APPLATEST_START_ADDR;
|
||||
u32 total_size = 0xC000;
|
||||
|
||||
// 如果指定了页数,则按页数计算大小
|
||||
if (page_count > 0) {
|
||||
total_size = page_count * FMC_PAGE_SIZE;
|
||||
}
|
||||
|
||||
u32 end_addr = start_addr + total_size;
|
||||
|
||||
#if DEBUG_OTA
|
||||
printf("Scanning Flash from 0x%08X to 0x%08X (%d bytes)\r\n", start_addr,
|
||||
end_addr, total_size);
|
||||
#endif
|
||||
|
||||
u32 page_count_scanned = 0;
|
||||
u32 empty_pages = 0;
|
||||
u32 data_pages = 0;
|
||||
|
||||
for (u32 addr = start_addr; addr < end_addr; addr += FMC_PAGE_SIZE) {
|
||||
bool page_empty = true;
|
||||
|
||||
// 检查当前页是否全为0xFF(空页)
|
||||
for (u32 offset = 0; offset < FMC_PAGE_SIZE; offset += 4) {
|
||||
u32 data = *(u32 *)(addr + offset);
|
||||
|
||||
if (data != 0xFFFFFFFF) {
|
||||
page_empty = false;
|
||||
break; // 找到非空数据,立即退出检查
|
||||
}
|
||||
}
|
||||
|
||||
if (page_empty) {
|
||||
empty_pages++;
|
||||
} else {
|
||||
data_pages++;
|
||||
|
||||
// 只有在非空页面且需要打印时才输出内容
|
||||
if (print_content) {
|
||||
printf("Page 0x%08X: \r\n", addr);
|
||||
|
||||
// 打印所有内容
|
||||
for (u32 offset = 0; offset < FMC_PAGE_SIZE;
|
||||
offset += 16) { // 每行打印16字节
|
||||
// 打印地址偏移
|
||||
printf(" +%03X: ", offset);
|
||||
|
||||
// 打印十六进制数据
|
||||
for (u32 byte_idx = 0; byte_idx < 16; byte_idx++) {
|
||||
if ((offset + byte_idx) < FMC_PAGE_SIZE) {
|
||||
u8 data = *(__IO u8 *)(addr + offset + byte_idx);
|
||||
printf("%02X ", data);
|
||||
} else {
|
||||
printf(" "); // 空白填充
|
||||
}
|
||||
|
||||
// 每8字节加个小空格,便于阅读
|
||||
if (byte_idx == 7) {
|
||||
printf(" ");
|
||||
}
|
||||
}
|
||||
|
||||
// 打印可打印字符
|
||||
printf("|");
|
||||
for (u32 byte_idx = 0; byte_idx < 16; byte_idx++) {
|
||||
if ((offset + byte_idx) < FMC_PAGE_SIZE) {
|
||||
u8 data = *(__IO u8 *)(addr + offset + byte_idx);
|
||||
if (data >= 32 && data <= 126) { // 可打印字符范围
|
||||
printf("%c", data);
|
||||
} else {
|
||||
printf(".");
|
||||
}
|
||||
} else {
|
||||
printf(" "); // 空白填充
|
||||
}
|
||||
}
|
||||
printf("|\r\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
page_count_scanned++;
|
||||
}
|
||||
|
||||
#if DEBUG_OTA
|
||||
printf("Scan complete: %d pages scanned, %d empty pages, %d data pages\r\n",
|
||||
page_count_scanned, empty_pages, data_pages);
|
||||
#endif
|
||||
}
|
||||
|
||||
// // 发送单个字节到串口 (用于调试)
|
||||
// void uart_send_byte(uint8_t data) {
|
||||
|
||||
@@ -34,12 +34,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
#include "systick.h"
|
||||
#include "Can.h"
|
||||
#include "flash.h"
|
||||
#include "gd32c10x.h"
|
||||
|
||||
volatile static uint32_t delay;
|
||||
extern CAN_transmiter CAN0_transmiter;
|
||||
extern FlashEEPROM flashEEP;
|
||||
|
||||
/*!
|
||||
\brief configure systick
|
||||
|
||||
@@ -301,10 +301,6 @@ build:
|
||||
category: sourceCpp
|
||||
- file: ../../../../Robot_V2/sys/initial.h
|
||||
category: header
|
||||
- file: ../../../../Robot_V2/sys/flash.h
|
||||
category: header
|
||||
- file: ../../../../Robot_V2/sys/flash.cpp
|
||||
category: sourceCpp
|
||||
- file: ../../../../Robot_V2/sys/OTA.h
|
||||
category: header
|
||||
- file: ../../../../Robot_V2/sys/OTA.cpp
|
||||
|
||||
Binary file not shown.
@@ -6,151 +6,162 @@ Memory Map of the image
|
||||
|
||||
Image Entry point : 0x08000165
|
||||
|
||||
Load Region LR_ROM0 (Base: 0x08000000, Size: 0x00004628, Max: 0x08005000, ABSOLUTE)
|
||||
Load Region LR_ROM0 (Base: 0x08000000, Size: 0x00004958, Max: 0x08005000, ABSOLUTE)
|
||||
|
||||
Execution Region ER_ROM0 (Base: 0x08000000, Size: 0x0000452c, Max: 0x08005000, ABSOLUTE)
|
||||
Execution Region ER_ROM0 (Base: 0x08000000, Size: 0x0000485c, Max: 0x08005000, ABSOLUTE)
|
||||
|
||||
Base Addr Size Type Attr Idx E Section Name Object
|
||||
|
||||
0x08000000 0x00000150 Data RO 895 RESET startup_gd32c10x.o
|
||||
0x08000150 0x00000000 Code RO 1059 * .ARM.Collect$$$$00000000 mc_w.l(entry.o)
|
||||
0x08000150 0x00000004 Code RO 1486 .ARM.Collect$$$$00000003 mc_w.l(entry4.o)
|
||||
0x08000154 0x00000004 Code RO 1489 .ARM.Collect$$$$00000004 mc_w.l(entry5.o)
|
||||
0x08000158 0x00000000 Code RO 1491 .ARM.Collect$$$$00000008 mc_w.l(entry7b.o)
|
||||
0x08000158 0x00000000 Code RO 1493 .ARM.Collect$$$$0000000A mc_w.l(entry8b.o)
|
||||
0x08000158 0x00000008 Code RO 1494 .ARM.Collect$$$$0000000B mc_w.l(entry9a.o)
|
||||
0x08000160 0x00000000 Code RO 1496 .ARM.Collect$$$$0000000D mc_w.l(entry10a.o)
|
||||
0x08000160 0x00000000 Code RO 1498 .ARM.Collect$$$$0000000F mc_w.l(entry11a.o)
|
||||
0x08000160 0x00000004 Code RO 1487 .ARM.Collect$$$$00002714 mc_w.l(entry4.o)
|
||||
0x08000164 0x0000002c Code RO 896 * .text startup_gd32c10x.o
|
||||
0x08000190 0x00000024 Code RO 1068 .text mc_w.l(memcpya.o)
|
||||
0x080001b4 0x00000024 Code RO 1070 .text mc_w.l(memseta.o)
|
||||
0x080001d8 0x0000001a Code RO 1072 .text mc_w.l(memcmp.o)
|
||||
0x080001f2 0x00000002 Code RO 1514 .text mc_w.l(abort.o)
|
||||
0x080001f4 0x00000030 Code RO 1841 .text mc_w.l(init.o)
|
||||
0x08000224 0x0000009c Code RO 183 .text.CAN0_RX0_IRQHandler Can.o
|
||||
0x080002c0 0x0000004a Code RO 185 .text.DMA0_Channel4_IRQHandler Can.o
|
||||
0x08000000 0x00000150 Data RO 875 RESET startup_gd32c10x.o
|
||||
0x08000150 0x00000000 Code RO 1039 * .ARM.Collect$$$$00000000 mc_w.l(entry.o)
|
||||
0x08000150 0x00000004 Code RO 1466 .ARM.Collect$$$$00000003 mc_w.l(entry4.o)
|
||||
0x08000154 0x00000004 Code RO 1469 .ARM.Collect$$$$00000004 mc_w.l(entry5.o)
|
||||
0x08000158 0x00000000 Code RO 1471 .ARM.Collect$$$$00000008 mc_w.l(entry7b.o)
|
||||
0x08000158 0x00000000 Code RO 1473 .ARM.Collect$$$$0000000A mc_w.l(entry8b.o)
|
||||
0x08000158 0x00000008 Code RO 1474 .ARM.Collect$$$$0000000B mc_w.l(entry9a.o)
|
||||
0x08000160 0x00000000 Code RO 1476 .ARM.Collect$$$$0000000D mc_w.l(entry10a.o)
|
||||
0x08000160 0x00000000 Code RO 1478 .ARM.Collect$$$$0000000F mc_w.l(entry11a.o)
|
||||
0x08000160 0x00000004 Code RO 1467 .ARM.Collect$$$$00002714 mc_w.l(entry4.o)
|
||||
0x08000164 0x0000002c Code RO 876 * .text startup_gd32c10x.o
|
||||
0x08000190 0x00000024 Code RO 1048 .text mc_w.l(memcpya.o)
|
||||
0x080001b4 0x00000024 Code RO 1050 .text mc_w.l(memseta.o)
|
||||
0x080001d8 0x0000001a Code RO 1052 .text mc_w.l(memcmp.o)
|
||||
0x080001f2 0x00000002 Code RO 1494 .text mc_w.l(abort.o)
|
||||
0x080001f4 0x00000030 Code RO 1821 .text mc_w.l(init.o)
|
||||
0x08000224 0x0000009c Code RO 163 .text.CAN0_RX0_IRQHandler Can.o
|
||||
0x080002c0 0x0000004a Code RO 165 .text.DMA0_Channel4_IRQHandler Can.o
|
||||
0x0800030a 0x00000002 PAD
|
||||
0x0800030c 0x00000026 Code RO 187 .text.DMA0_Channel5_IRQHandler Can.o
|
||||
0x0800030c 0x00000026 Code RO 167 .text.DMA0_Channel5_IRQHandler Can.o
|
||||
0x08000332 0x00000002 PAD
|
||||
0x08000334 0x00000342 Code RO 902 .text.SystemInit system_gd32c10x.o
|
||||
0x08000334 0x00000342 Code RO 882 .text.SystemInit system_gd32c10x.o
|
||||
0x08000676 0x00000002 PAD
|
||||
0x08000678 0x00000012 Code RO 85 .text.USART0_init initial.o
|
||||
0x08000678 0x00000012 Code RO 82 .text.USART0_init initial.o
|
||||
0x0800068a 0x00000002 PAD
|
||||
0x0800068c 0x00000198 Code RO 32 .text._Z11mix_columnsPh aes128.o
|
||||
0x08000824 0x00000238 Code RO 40 .text._Z14aes128_set_keyP14aes128_contextPKh aes128.o
|
||||
0x08000a5c 0x000008e2 Code RO 38 .text._Z15inv_mix_columnsPh aes128.o
|
||||
0x0800133e 0x00000002 PAD
|
||||
0x08001340 0x00000030 Code RO 133 .text._Z19validateApplicationv OTA.o
|
||||
0x08001370 0x000003c8 Code RO 46 .text._Z20aes128_decrypt_blockP14aes128_contextPKhPh aes128.o
|
||||
0x08001738 0x000003e6 Code RO 42 .text._Z20aes128_encrypt_blockP14aes128_contextPKhPh aes128.o
|
||||
0x08001b1e 0x00000002 PAD
|
||||
0x08001b20 0x00000210 Code RO 145 .text._Z24calculate_crc32_with_keyPKhS0_Ph OTA.o
|
||||
0x08001d30 0x0000002c Code RO 48 .text._Z26aes128_ecb_decrypt_48bytesP14aes128_contextPKhPh aes128.o
|
||||
0x08001d5c 0x000004a8 Code RO 143 .text._ZN10OTAHandler16handleOTAMessageEjPhh OTA.o
|
||||
0x08002204 0x00000088 Code RO 135 .text._ZN10OTAHandler17jumpToApplicationEv OTA.o
|
||||
0x0800228c 0x0000005a Code RO 139 .text._ZN10OTAHandler20writeApplicationDataEjPhj OTA.o
|
||||
0x080022e6 0x00000002 PAD
|
||||
0x080022e8 0x00000078 Code RO 129 .text._ZN10OTAHandler7processEv OTA.o
|
||||
0x08002360 0x00000028 Code RO 925 .text._ZN10__cxxabiv121__isOurExceptionClassEPK21_Unwind_Control_Block libcppabi_wx.l(cxa_exception.cpp.o)
|
||||
0x08002388 0x00000060 Code RO 953 .text._ZN10__cxxabiv1L22__cxa_end_cleanup_implEv libcppabi_wx.l(cxa_exception.cpp.o)
|
||||
0x080023e8 0x0000008c Code RO 177 .text._ZN14CAN_transmiter12sendDATA_ACKEjPh Can.o
|
||||
0x08002474 0x0000014e Code RO 179 .text._ZN14CAN_transmiter15CANFD_AsyncSendEjhPh Can.o
|
||||
0x080025c2 0x00000002 PAD
|
||||
0x080025c4 0x0000004e Code RO 175 .text._ZN14CAN_transmiter19communication_checkEv Can.o
|
||||
0x08002612 0x00000002 PAD
|
||||
0x08002614 0x00000038 Code RO 173 .text._ZN14CAN_transmiter4initEv Can.o
|
||||
0x0800264c 0x00000074 Code RO 996 .text._ZSt11__terminatePFvvE libcppabi_wx.l(cxa_handlers.cpp.o)
|
||||
0x080026c0 0x00000030 Code RO 987 .text._ZSt9terminatev libcppabi_wx.l(cxa_handlers.cpp.o)
|
||||
0x080026f0 0x0000000a Code RO 982 .text.__clang_call_terminate libcppabi_wx.l(cxa_exception.cpp.o)
|
||||
0x080026fa 0x00000002 PAD
|
||||
0x080026fc 0x0000006c Code RO 930 .text.__cxa_begin_catch libcppabi_wx.l(cxa_exception.cpp.o)
|
||||
0x08002768 0x0000000a Code RO 1353 .text.__cxa_get_globals libcppabi_wx.l(cxa_exception_storage.cpp.o)
|
||||
0x08002772 0x0000000a Code RO 1355 .text.__cxa_get_globals_fast libcppabi_wx.l(cxa_exception_storage.cpp.o)
|
||||
0x0800277c 0x00000026 Code RO 236 .text.can_deinit gd32c10x_can.o
|
||||
0x080027a2 0x00000002 PAD
|
||||
0x080027a4 0x00000114 Code RO 242 .text.can_fd_init gd32c10x_can.o
|
||||
0x080028b8 0x000000b2 Code RO 244 .text.can_filter_init gd32c10x_can.o
|
||||
0x0800296a 0x00000002 PAD
|
||||
0x0800296c 0x00000176 Code RO 240 .text.can_init gd32c10x_can.o
|
||||
0x08002ae2 0x00000002 PAD
|
||||
0x08002ae4 0x00000008 Code RO 286 .text.can_interrupt_enable gd32c10x_can.o
|
||||
0x08002aec 0x00000016 Code RO 296 .text.can_interrupt_flag_clear gd32c10x_can.o
|
||||
0x08002b02 0x00000002 PAD
|
||||
0x08002b04 0x00000066 Code RO 294 .text.can_interrupt_flag_get gd32c10x_can.o
|
||||
0x08002b6a 0x00000002 PAD
|
||||
0x08002b6c 0x000001f4 Code RO 270 .text.can_message_receive gd32c10x_can.o
|
||||
0x08002d60 0x000001f0 Code RO 264 .text.can_message_transmit gd32c10x_can.o
|
||||
0x08002f50 0x00000018 Code RO 274 .text.can_receive_message_length_get gd32c10x_can.o
|
||||
0x08002f68 0x00000072 Code RO 238 .text.can_struct_para_init gd32c10x_can.o
|
||||
0x08002fda 0x00000002 PAD
|
||||
0x08002fdc 0x000001b0 Code RO 171 .text.canfd_config Can.o
|
||||
0x0800318c 0x00000018 Code RO 310 .text.crc_deinit gd32c10x_crc.o
|
||||
0x080031a4 0x00000024 Code RO 67 .text.delay_1ms systick.o
|
||||
0x080031c8 0x00000018 Code RO 69 .text.delay_decrement systick.o
|
||||
0x080031e0 0x00000024 Code RO 376 .text.dma_channel_disable gd32c10x_dma.o
|
||||
0x08003204 0x00000024 Code RO 374 .text.dma_channel_enable gd32c10x_dma.o
|
||||
0x08003228 0x00000074 Code RO 364 .text.dma_init gd32c10x_dma.o
|
||||
0x0800329c 0x00000022 Code RO 410 .text.dma_interrupt_enable gd32c10x_dma.o
|
||||
0x080032be 0x00000002 PAD
|
||||
0x080032c0 0x0000000e Code RO 408 .text.dma_interrupt_flag_clear gd32c10x_dma.o
|
||||
0x080032ce 0x00000002 PAD
|
||||
0x080032d0 0x0000003a Code RO 406 .text.dma_interrupt_flag_get gd32c10x_dma.o
|
||||
0x0800330a 0x00000002 PAD
|
||||
0x0800330c 0x0000001a Code RO 362 .text.dma_struct_para_init gd32c10x_dma.o
|
||||
0x08003326 0x00000002 PAD
|
||||
0x08003328 0x00000012 Code RO 480 .text.fmc_lock gd32c10x_fmc.o
|
||||
0x0800333a 0x00000002 PAD
|
||||
0x0800333c 0x00000166 Code RO 484 .text.fmc_page_erase gd32c10x_fmc.o
|
||||
0x080034a2 0x00000002 PAD
|
||||
0x080034a4 0x00000026 Code RO 478 .text.fmc_unlock gd32c10x_fmc.o
|
||||
0x080034ca 0x00000002 PAD
|
||||
0x080034cc 0x000001aa Code RO 490 .text.fmc_word_program gd32c10x_fmc.o
|
||||
0x08003676 0x00000002 PAD
|
||||
0x08003678 0x0000002c Code RO 87 .text.fputc initial.o
|
||||
0x080036a4 0x00000098 Code RO 219 .text.gd_eval_com_init gd32c10x_eval.o
|
||||
0x0800373c 0x00000004 Code RO 574 .text.gpio_bit_reset gd32c10x_gpio.o
|
||||
0x08003740 0x000002c0 Code RO 570 .text.gpio_init gd32c10x_gpio.o
|
||||
0x08003a00 0x00000080 Code RO 588 .text.gpio_pin_remap_config gd32c10x_gpio.o
|
||||
0x08003a80 0x0000006e Code RO 10 .text.main main.o
|
||||
0x08003aee 0x00000002 PAD
|
||||
0x08003af0 0x00000060 Code RO 617 .text.nvic_irq_enable gd32c10x_misc.o
|
||||
0x08003b50 0x0000001c Code RO 621 .text.nvic_vector_table_set gd32c10x_misc.o
|
||||
0x08003b6c 0x0000010c Code RO 767 .text.rcu_clock_freq_get gd32c10x_rcu.o
|
||||
0x08003c78 0x00000020 Code RO 687 .text.rcu_periph_clock_disable gd32c10x_rcu.o
|
||||
0x08003c98 0x0000001e Code RO 685 .text.rcu_periph_clock_enable gd32c10x_rcu.o
|
||||
0x08003cb6 0x00000002 PAD
|
||||
0x08003cb8 0x00000020 Code RO 695 .text.rcu_periph_reset_disable gd32c10x_rcu.o
|
||||
0x08003cd8 0x0000001e Code RO 693 .text.rcu_periph_reset_enable gd32c10x_rcu.o
|
||||
0x08003cf6 0x00000002 PAD
|
||||
0x08003cf8 0x00000014 Code RO 701 .text.rcu_system_clock_source_config gd32c10x_rcu.o
|
||||
0x08003d0c 0x00000048 Code RO 65 .text.systick_config systick.o
|
||||
0x08003d54 0x00000006 Code RO 1338 .text.unlikely.abort_message libcppabi_wx.l(abort_message.cpp.o)
|
||||
0x08003d5a 0x00000002 PAD
|
||||
0x08003d5c 0x0000006a Code RO 783 .text.usart_baudrate_set gd32c10x_usart.o
|
||||
0x08003dc6 0x00000002 PAD
|
||||
0x08003dc8 0x00000008 Code RO 809 .text.usart_data_transmit gd32c10x_usart.o
|
||||
0x08003dd0 0x0000007a Code RO 781 .text.usart_deinit gd32c10x_usart.o
|
||||
0x08003e4a 0x00000002 PAD
|
||||
0x08003e4c 0x0000000a Code RO 791 .text.usart_enable gd32c10x_usart.o
|
||||
0x08003e56 0x00000002 PAD
|
||||
0x08003e58 0x00000010 Code RO 871 .text.usart_flag_get gd32c10x_usart.o
|
||||
0x08003e68 0x00000014 Code RO 797 .text.usart_receive_config gd32c10x_usart.o
|
||||
0x08003e7c 0x00000014 Code RO 795 .text.usart_transmit_config gd32c10x_usart.o
|
||||
0x08003e90 0x0000000e Code RO 1930 i.__scatterload_copy mc_w.l(handlers.o)
|
||||
0x08003e9e 0x00000002 Code RO 1931 i.__scatterload_null mc_w.l(handlers.o)
|
||||
0x08003ea0 0x0000000e Code RO 1932 i.__scatterload_zeroinit mc_w.l(handlers.o)
|
||||
0x08003eae 0x00000002 PAD
|
||||
0x08003eb0 0x00000024 Code RO 1062 i.puts mc_w.l(puts.o)
|
||||
0x08003ed4 0x00000100 Data RO 53 .rodata._ZL4sbox aes128.o
|
||||
0x08003fd4 0x00000010 Data RO 153 .rodata._ZL8K_master OTA.o
|
||||
0x08003fe4 0x00000400 Data RO 155 .rodata._ZZ24calculate_crc32_with_keyPKhS0_PhE9crc_table OTA.o
|
||||
0x080043e4 0x00000008 Data RO 769 .rodata.cst8 gd32c10x_rcu.o
|
||||
0x080043ec 0x00000007 Data RO 298 .rodata.g_can_fdlength_table gd32c10x_can.o
|
||||
0x080043f3 0x00000100 Data RO 52 .rodata.inv_sbox aes128.o
|
||||
0x080044f3 0x00000017 Data RO 13 .rodata.str1.1 main.o
|
||||
0x0800450a 0x00000002 PAD
|
||||
0x0800450c 0x00000020 Data RO 1929 Region$$Table anon$$obj.o
|
||||
0x0800068c 0x00000198 Code RO 29 .text._Z11mix_columnsPh aes128.o
|
||||
0x08000824 0x000000ba Code RO 129 .text._Z13move_app_datav OTA.o
|
||||
0x080008de 0x00000002 PAD
|
||||
0x080008e0 0x00000238 Code RO 37 .text._Z14aes128_set_keyP14aes128_contextPKh aes128.o
|
||||
0x08000b18 0x000008e2 Code RO 35 .text._Z15inv_mix_columnsPh aes128.o
|
||||
0x080013fa 0x00000002 PAD
|
||||
0x080013fc 0x000003c8 Code RO 43 .text._Z20aes128_decrypt_blockP14aes128_contextPKhPh aes128.o
|
||||
0x080017c4 0x000003e6 Code RO 39 .text._Z20aes128_encrypt_blockP14aes128_contextPKhPh aes128.o
|
||||
0x08001baa 0x00000002 PAD
|
||||
0x08001bac 0x00000210 Code RO 123 .text._Z24calculate_crc32_with_keyPKhS0_Ph OTA.o
|
||||
0x08001dbc 0x0000002c Code RO 45 .text._Z26aes128_ecb_decrypt_48bytesP14aes128_contextPKhPh aes128.o
|
||||
0x08001de8 0x00000182 Code RO 105 .text._Z7OTA_SETjj OTA.o
|
||||
0x08001f6a 0x00000002 PAD
|
||||
0x08001f6c 0x000004a8 Code RO 121 .text._ZN10OTAHandler16handleOTAMessageEjPhh OTA.o
|
||||
0x08002414 0x000000a2 Code RO 113 .text._ZN10OTAHandler17jumpToApplicationEv OTA.o
|
||||
0x080024b6 0x00000002 PAD
|
||||
0x080024b8 0x0000005a Code RO 119 .text._ZN10OTAHandler20writeApplicationDataEjPhj OTA.o
|
||||
0x08002512 0x00000002 PAD
|
||||
0x08002514 0x00000096 Code RO 109 .text._ZN10OTAHandler7processEv OTA.o
|
||||
0x080025aa 0x00000028 Code RO 905 .text._ZN10__cxxabiv121__isOurExceptionClassEPK21_Unwind_Control_Block libcppabi_wx.l(cxa_exception.cpp.o)
|
||||
0x080025d2 0x00000060 Code RO 933 .text._ZN10__cxxabiv1L22__cxa_end_cleanup_implEv libcppabi_wx.l(cxa_exception.cpp.o)
|
||||
0x08002632 0x00000002 PAD
|
||||
0x08002634 0x0000008c Code RO 157 .text._ZN14CAN_transmiter12sendDATA_ACKEjPh Can.o
|
||||
0x080026c0 0x0000014e Code RO 159 .text._ZN14CAN_transmiter15CANFD_AsyncSendEjhPh Can.o
|
||||
0x0800280e 0x00000002 PAD
|
||||
0x08002810 0x0000004e Code RO 155 .text._ZN14CAN_transmiter19communication_checkEv Can.o
|
||||
0x0800285e 0x00000002 PAD
|
||||
0x08002860 0x00000038 Code RO 153 .text._ZN14CAN_transmiter4initEv Can.o
|
||||
0x08002898 0x000000b4 Code RO 6 .text._ZN16BootloaderSystem3runEv main.o
|
||||
0x0800294c 0x00000074 Code RO 976 .text._ZSt11__terminatePFvvE libcppabi_wx.l(cxa_handlers.cpp.o)
|
||||
0x080029c0 0x00000030 Code RO 967 .text._ZSt9terminatev libcppabi_wx.l(cxa_handlers.cpp.o)
|
||||
0x080029f0 0x0000000a Code RO 962 .text.__clang_call_terminate libcppabi_wx.l(cxa_exception.cpp.o)
|
||||
0x080029fa 0x00000002 PAD
|
||||
0x080029fc 0x0000006c Code RO 910 .text.__cxa_begin_catch libcppabi_wx.l(cxa_exception.cpp.o)
|
||||
0x08002a68 0x0000000a Code RO 1333 .text.__cxa_get_globals libcppabi_wx.l(cxa_exception_storage.cpp.o)
|
||||
0x08002a72 0x0000000a Code RO 1335 .text.__cxa_get_globals_fast libcppabi_wx.l(cxa_exception_storage.cpp.o)
|
||||
0x08002a7c 0x00000026 Code RO 216 .text.can_deinit gd32c10x_can.o
|
||||
0x08002aa2 0x00000002 PAD
|
||||
0x08002aa4 0x00000114 Code RO 222 .text.can_fd_init gd32c10x_can.o
|
||||
0x08002bb8 0x000000b2 Code RO 224 .text.can_filter_init gd32c10x_can.o
|
||||
0x08002c6a 0x00000002 PAD
|
||||
0x08002c6c 0x00000176 Code RO 220 .text.can_init gd32c10x_can.o
|
||||
0x08002de2 0x00000002 PAD
|
||||
0x08002de4 0x00000008 Code RO 266 .text.can_interrupt_enable gd32c10x_can.o
|
||||
0x08002dec 0x00000016 Code RO 276 .text.can_interrupt_flag_clear gd32c10x_can.o
|
||||
0x08002e02 0x00000002 PAD
|
||||
0x08002e04 0x00000066 Code RO 274 .text.can_interrupt_flag_get gd32c10x_can.o
|
||||
0x08002e6a 0x00000002 PAD
|
||||
0x08002e6c 0x000001f4 Code RO 250 .text.can_message_receive gd32c10x_can.o
|
||||
0x08003060 0x000001f0 Code RO 244 .text.can_message_transmit gd32c10x_can.o
|
||||
0x08003250 0x00000018 Code RO 254 .text.can_receive_message_length_get gd32c10x_can.o
|
||||
0x08003268 0x00000072 Code RO 218 .text.can_struct_para_init gd32c10x_can.o
|
||||
0x080032da 0x00000002 PAD
|
||||
0x080032dc 0x000001b0 Code RO 151 .text.canfd_config Can.o
|
||||
0x0800348c 0x00000066 Code RO 302 .text.crc_block_data_calculate gd32c10x_crc.o
|
||||
0x080034f2 0x00000002 PAD
|
||||
0x080034f4 0x00000012 Code RO 292 .text.crc_data_register_reset gd32c10x_crc.o
|
||||
0x08003506 0x00000002 PAD
|
||||
0x08003508 0x00000018 Code RO 290 .text.crc_deinit gd32c10x_crc.o
|
||||
0x08003520 0x00000024 Code RO 64 .text.delay_1ms systick.o
|
||||
0x08003544 0x00000018 Code RO 66 .text.delay_decrement systick.o
|
||||
0x0800355c 0x00000024 Code RO 356 .text.dma_channel_disable gd32c10x_dma.o
|
||||
0x08003580 0x00000024 Code RO 354 .text.dma_channel_enable gd32c10x_dma.o
|
||||
0x080035a4 0x00000074 Code RO 344 .text.dma_init gd32c10x_dma.o
|
||||
0x08003618 0x00000022 Code RO 390 .text.dma_interrupt_enable gd32c10x_dma.o
|
||||
0x0800363a 0x00000002 PAD
|
||||
0x0800363c 0x0000000e Code RO 388 .text.dma_interrupt_flag_clear gd32c10x_dma.o
|
||||
0x0800364a 0x00000002 PAD
|
||||
0x0800364c 0x0000003a Code RO 386 .text.dma_interrupt_flag_get gd32c10x_dma.o
|
||||
0x08003686 0x00000002 PAD
|
||||
0x08003688 0x0000001a Code RO 342 .text.dma_struct_para_init gd32c10x_dma.o
|
||||
0x080036a2 0x00000002 PAD
|
||||
0x080036a4 0x0000000c Code RO 498 .text.fmc_flag_clear gd32c10x_fmc.o
|
||||
0x080036b0 0x00000012 Code RO 460 .text.fmc_lock gd32c10x_fmc.o
|
||||
0x080036c2 0x00000002 PAD
|
||||
0x080036c4 0x00000166 Code RO 464 .text.fmc_page_erase gd32c10x_fmc.o
|
||||
0x0800382a 0x00000002 PAD
|
||||
0x0800382c 0x00000026 Code RO 458 .text.fmc_unlock gd32c10x_fmc.o
|
||||
0x08003852 0x00000002 PAD
|
||||
0x08003854 0x000001aa Code RO 470 .text.fmc_word_program gd32c10x_fmc.o
|
||||
0x080039fe 0x00000002 PAD
|
||||
0x08003a00 0x0000002c Code RO 84 .text.fputc initial.o
|
||||
0x08003a2c 0x00000010 Code RO 529 .text.fwdgt_counter_reload gd32c10x_fwdgt.o
|
||||
0x08003a3c 0x00000098 Code RO 199 .text.gd_eval_com_init gd32c10x_eval.o
|
||||
0x08003ad4 0x00000004 Code RO 554 .text.gpio_bit_reset gd32c10x_gpio.o
|
||||
0x08003ad8 0x000002c0 Code RO 550 .text.gpio_init gd32c10x_gpio.o
|
||||
0x08003d98 0x00000080 Code RO 568 .text.gpio_pin_remap_config gd32c10x_gpio.o
|
||||
0x08003e18 0x0000001e Code RO 8 .text.main main.o
|
||||
0x08003e36 0x00000002 PAD
|
||||
0x08003e38 0x00000060 Code RO 597 .text.nvic_irq_enable gd32c10x_misc.o
|
||||
0x08003e98 0x0000001c Code RO 601 .text.nvic_vector_table_set gd32c10x_misc.o
|
||||
0x08003eb4 0x0000010c Code RO 747 .text.rcu_clock_freq_get gd32c10x_rcu.o
|
||||
0x08003fc0 0x00000020 Code RO 667 .text.rcu_periph_clock_disable gd32c10x_rcu.o
|
||||
0x08003fe0 0x0000001e Code RO 665 .text.rcu_periph_clock_enable gd32c10x_rcu.o
|
||||
0x08003ffe 0x00000002 PAD
|
||||
0x08004000 0x00000020 Code RO 675 .text.rcu_periph_reset_disable gd32c10x_rcu.o
|
||||
0x08004020 0x0000001e Code RO 673 .text.rcu_periph_reset_enable gd32c10x_rcu.o
|
||||
0x0800403e 0x00000002 PAD
|
||||
0x08004040 0x00000014 Code RO 681 .text.rcu_system_clock_source_config gd32c10x_rcu.o
|
||||
0x08004054 0x00000048 Code RO 62 .text.systick_config systick.o
|
||||
0x0800409c 0x00000006 Code RO 1318 .text.unlikely.abort_message libcppabi_wx.l(abort_message.cpp.o)
|
||||
0x080040a2 0x00000002 PAD
|
||||
0x080040a4 0x0000006a Code RO 763 .text.usart_baudrate_set gd32c10x_usart.o
|
||||
0x0800410e 0x00000002 PAD
|
||||
0x08004110 0x00000008 Code RO 789 .text.usart_data_transmit gd32c10x_usart.o
|
||||
0x08004118 0x0000007a Code RO 761 .text.usart_deinit gd32c10x_usart.o
|
||||
0x08004192 0x00000002 PAD
|
||||
0x08004194 0x0000000a Code RO 771 .text.usart_enable gd32c10x_usart.o
|
||||
0x0800419e 0x00000002 PAD
|
||||
0x080041a0 0x00000010 Code RO 851 .text.usart_flag_get gd32c10x_usart.o
|
||||
0x080041b0 0x00000014 Code RO 777 .text.usart_receive_config gd32c10x_usart.o
|
||||
0x080041c4 0x00000014 Code RO 775 .text.usart_transmit_config gd32c10x_usart.o
|
||||
0x080041d8 0x0000000e Code RO 1910 i.__scatterload_copy mc_w.l(handlers.o)
|
||||
0x080041e6 0x00000002 Code RO 1911 i.__scatterload_null mc_w.l(handlers.o)
|
||||
0x080041e8 0x0000000e Code RO 1912 i.__scatterload_zeroinit mc_w.l(handlers.o)
|
||||
0x080041f6 0x00000002 PAD
|
||||
0x080041f8 0x00000024 Code RO 1042 i.puts mc_w.l(puts.o)
|
||||
0x0800421c 0x00000100 Data RO 50 .rodata._ZL4sbox aes128.o
|
||||
0x0800431c 0x00000010 Data RO 133 .rodata._ZL8K_master OTA.o
|
||||
0x0800432c 0x00000400 Data RO 135 .rodata._ZZ24calculate_crc32_with_keyPKhS0_PhE9crc_table OTA.o
|
||||
0x0800472c 0x00000008 Data RO 749 .rodata.cst8 gd32c10x_rcu.o
|
||||
0x08004734 0x00000007 Data RO 278 .rodata.g_can_fdlength_table gd32c10x_can.o
|
||||
0x0800473b 0x00000100 Data RO 49 .rodata.inv_sbox aes128.o
|
||||
0x0800483b 0x00000001 PAD
|
||||
0x0800483c 0x00000020 Data RO 1909 Region$$Table anon$$obj.o
|
||||
|
||||
|
||||
Execution Region RW_NOINIT (Base: 0x20000000, Size: 0x00000000, Max: 0x00007200, ABSOLUTE, UNINIT)
|
||||
@@ -162,22 +173,22 @@ Memory Map of the image
|
||||
|
||||
Base Addr Size Type Attr Idx E Section Name Object
|
||||
|
||||
0x20000000 0x00000004 Data RW 1500 .data mc_w.l(stdout.o)
|
||||
0x20000004 0x000000e8 Data RW 191 .data.CAN0_transmiter Can.o
|
||||
0x200000ec 0x00000004 Data RW 908 .data.SystemCoreClock system_gd32c10x.o
|
||||
0x200000f0 0x00000004 Data RW 1348 .data.__cxa_terminate_handler libcppabi_wx.l(cxa_default_handlers.cpp.o)
|
||||
0x20000000 0x00000004 Data RW 1480 .data mc_w.l(stdout.o)
|
||||
0x20000004 0x000000e8 Data RW 171 .data.CAN0_transmiter Can.o
|
||||
0x200000ec 0x00000004 Data RW 888 .data.SystemCoreClock system_gd32c10x.o
|
||||
0x200000f0 0x00000004 Data RW 1328 .data.__cxa_terminate_handler libcppabi_wx.l(cxa_default_handlers.cpp.o)
|
||||
0x200000f4 0x00000004 PAD
|
||||
0x200000f8 0x00000004 Zero RW 73 .bss._ZL5delay systick.o
|
||||
0x200000fc 0x0000000c Zero RW 1357 .bss._ZN10__cxxabiv1L10eh_globalsE libcppabi_wx.l(cxa_exception_storage.cpp.o)
|
||||
0x20000108 0x00000001 Zero RW 152 .bss._ZZN10OTAHandler7processEvE4zero OTA.o
|
||||
0x200000f8 0x00000004 Zero RW 70 .bss._ZL5delay systick.o
|
||||
0x200000fc 0x0000000c Zero RW 1337 .bss._ZN10__cxxabiv1L10eh_globalsE libcppabi_wx.l(cxa_exception_storage.cpp.o)
|
||||
0x20000108 0x00000001 Zero RW 132 .bss._ZZN10OTAHandler7processEvE4zero OTA.o
|
||||
0x20000109 0x00000007 PAD
|
||||
0x20000110 0x00000008 Zero RW 194 .bss.can_rx_buffer Can.o
|
||||
0x20000118 0x00000008 Zero RW 195 .bss.can_tx_buffer Can.o
|
||||
0x20000120 0x0000001c Zero RW 192 .bss.dma_rx_parameter Can.o
|
||||
0x2000013c 0x0000001c Zero RW 193 .bss.dma_tx_parameter Can.o
|
||||
0x20000158 0x0000010c Zero RW 151 .bss.ota OTA.o
|
||||
0x20000110 0x00000008 Zero RW 174 .bss.can_rx_buffer Can.o
|
||||
0x20000118 0x00000008 Zero RW 175 .bss.can_tx_buffer Can.o
|
||||
0x20000120 0x0000001c Zero RW 172 .bss.dma_rx_parameter Can.o
|
||||
0x2000013c 0x0000001c Zero RW 173 .bss.dma_tx_parameter Can.o
|
||||
0x20000158 0x0000010c Zero RW 131 .bss.ota OTA.o
|
||||
0x20000264 0x00000004 PAD
|
||||
0x20000268 0x00000800 Zero RW 893 STACK startup_gd32c10x.o
|
||||
0x20000268 0x00000800 Zero RW 873 STACK startup_gd32c10x.o
|
||||
|
||||
|
||||
Execution Region ARM_LIB_HEAP (Base: 0x20000a68, Size: 0x00000c00, Max: 0x00000c00, ABSOLUTE)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -23,12 +23,6 @@
|
||||
"file": "G:\\Robot_v2\\BOOT\\Robot_V2\\sys\\initial.cpp",
|
||||
"output": "CMakeFiles\\Group_sys.dir\\G_\\Robot_v2\\BOOT\\Robot_V2\\sys\\initial.o"
|
||||
},
|
||||
{
|
||||
"directory": "G:/Robot_v2/BOOT/tmp/1",
|
||||
"command": "c:\\Users\\cbb\\.vcpkg\\artifacts\\2139c4c6\\compilers.arm.armclang\\6.24.0\\bin\\armclang.exe --target=arm-arm-none-eabi -DGD32C10x -D_RTE_ -IG:/Robot_v2/BOOT/Robot_V2/RTE/_Release_GD32C103CB -IC:/Users/cbb/AppData/Local/arm/packs/ARM/CMSIS/4.5.0/CMSIS/Include -IC:/Users/cbb/AppData/Local/arm/packs/GigaDevice/GD32C10x_DFP/1.0.1/Device/Firmware/Peripherals/inc -IC:/Users/cbb/AppData/Local/arm/packs/GigaDevice/GD32C10x_DFP/1.0.1/Device/Include -IC:/Users/cbb/AppData/Local/arm/packs/GigaDevice/GD32C10x_DFP/1.0.1/Device/Utilities -IG:/Robot_v2/BOOT/Robot_V2 -IG:/Robot_v2/BOOT/Robot_V2/sys -IG:/Robot_v2/BOOT/Robot_V2/device -isystem C:/Users/cbb/.vcpkg/artifacts/2139c4c6/compilers.arm.armclang/6.24.0/include/libcxx -isystem C:/Users/cbb/.vcpkg/artifacts/2139c4c6/compilers.arm.armclang/6.24.0/include --target=arm-arm-none-eabi -mcpu=Cortex-M4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard --target=arm-arm-none-eabi -mcpu=Cortex-M4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard --target=arm-arm-none-eabi -c -mlittle-endian -fshort-enums -fshort-wchar -D__MICROLIB -Wno-register -gdwarf-5 -Wno-macro-redefined -Wno-pragma-pack -Wno-parentheses-equality -Wno-license-management -O2 -o CMakeFiles\\Group_sys.dir\\G_\\Robot_v2\\BOOT\\Robot_V2\\sys\\flash.o -c G:\\Robot_v2\\BOOT\\Robot_V2\\sys\\flash.cpp",
|
||||
"file": "G:\\Robot_v2\\BOOT\\Robot_V2\\sys\\flash.cpp",
|
||||
"output": "CMakeFiles\\Group_sys.dir\\G_\\Robot_v2\\BOOT\\Robot_V2\\sys\\flash.o"
|
||||
},
|
||||
{
|
||||
"directory": "G:/Robot_v2/BOOT/tmp/1",
|
||||
"command": "c:\\Users\\cbb\\.vcpkg\\artifacts\\2139c4c6\\compilers.arm.armclang\\6.24.0\\bin\\armclang.exe --target=arm-arm-none-eabi -DGD32C10x -D_RTE_ -IG:/Robot_v2/BOOT/Robot_V2/RTE/_Release_GD32C103CB -IC:/Users/cbb/AppData/Local/arm/packs/ARM/CMSIS/4.5.0/CMSIS/Include -IC:/Users/cbb/AppData/Local/arm/packs/GigaDevice/GD32C10x_DFP/1.0.1/Device/Firmware/Peripherals/inc -IC:/Users/cbb/AppData/Local/arm/packs/GigaDevice/GD32C10x_DFP/1.0.1/Device/Include -IC:/Users/cbb/AppData/Local/arm/packs/GigaDevice/GD32C10x_DFP/1.0.1/Device/Utilities -IG:/Robot_v2/BOOT/Robot_V2 -IG:/Robot_v2/BOOT/Robot_V2/sys -IG:/Robot_v2/BOOT/Robot_V2/device -isystem C:/Users/cbb/.vcpkg/artifacts/2139c4c6/compilers.arm.armclang/6.24.0/include/libcxx -isystem C:/Users/cbb/.vcpkg/artifacts/2139c4c6/compilers.arm.armclang/6.24.0/include --target=arm-arm-none-eabi -mcpu=Cortex-M4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard --target=arm-arm-none-eabi -mcpu=Cortex-M4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard --target=arm-arm-none-eabi -c -mlittle-endian -fshort-enums -fshort-wchar -D__MICROLIB -Wno-register -gdwarf-5 -Wno-macro-redefined -Wno-pragma-pack -Wno-parentheses-equality -Wno-license-management -O2 -o CMakeFiles\\Group_sys.dir\\G_\\Robot_v2\\BOOT\\Robot_V2\\sys\\OTA.o -c G:\\Robot_v2\\BOOT\\Robot_V2\\sys\\OTA.cpp",
|
||||
|
||||
+34
-34
@@ -1,45 +1,45 @@
|
||||
# ninja log v6
|
||||
12 125 7890673259697152 Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-mkdir 33f68be7a9762efe
|
||||
12 125 7890673259697152 G:/Robot_v2/BOOT/tmp/Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-mkdir 33f68be7a9762efe
|
||||
126 232 7890673260750506 Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-download 8d5ce3c00fc16ca4
|
||||
12 125 7890673259697152 G:/Robot_v2/BOOT/tmp/Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-mkdir 33f68be7a9762efe
|
||||
126 232 7890673260750506 G:/Robot_v2/BOOT/tmp/Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-download 8d5ce3c00fc16ca4
|
||||
241 348 7890673261917071 Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-update 3ae75db438d97fbf
|
||||
241 348 7890673261917071 G:/Robot_v2/BOOT/tmp/Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-update 3ae75db438d97fbf
|
||||
348 454 7890673262972338 Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-patch b54a62060b325746
|
||||
241 348 7890673261917071 G:/Robot_v2/BOOT/tmp/Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-update 3ae75db438d97fbf
|
||||
348 454 7890673262972338 G:/Robot_v2/BOOT/tmp/Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-patch b54a62060b325746
|
||||
454 11714 7890673375515811 Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-configure 708efa7dee4d8c45
|
||||
454 11714 7890673375515811 G:/Robot_v2/BOOT/tmp/Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-configure 708efa7dee4d8c45
|
||||
17 161 7890856416728064 Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-build c3a3e5728b3e60b8
|
||||
17 161 7890856416728064 G:/Robot_v2/BOOT/out/Robot_V2/GD32C103CB/Release/Robot_V2.bin c3a3e5728b3e60b8
|
||||
162 406 7890856418174556 Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-database 206b709820348205
|
||||
17 161 7890856416728064 G:/Robot_v2/BOOT/out/Robot_V2/GD32C103CB/Release/Robot_V2.axf c3a3e5728b3e60b8
|
||||
15 623 7892482015765574 Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-build c3a3e5728b3e60b8
|
||||
623 947 7892482021845118 Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-database 206b709820348205
|
||||
15 623 7892482015765574 G:/Robot_v2/BOOT/out/Robot_V2/GD32C103CB/Release/Robot_V2.bin c3a3e5728b3e60b8
|
||||
12517 12632 7890673384727863 Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-executes 9db191f9941f966f
|
||||
17 161 7890856416728064 G:/Robot_v2/BOOT/out/Robot_V2/GD32C103CB/Release/Robot_V2.hex c3a3e5728b3e60b8
|
||||
17 161 7890856416728064 G:/Robot_v2/BOOT/out/Robot_V2/GD32C103CB/Release/Robot_V2.axf.map c3a3e5728b3e60b8
|
||||
17 161 7890856416728064 G:/Robot_v2/BOOT/tmp/Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-build c3a3e5728b3e60b8
|
||||
471 582 7890856421979571 G:/Robot_v2/BOOT/tmp/Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-test 57275ea8426097a0
|
||||
582 765 7890856423795149 Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-done 39cd38b08f3cacb9
|
||||
15 623 7892482015765574 G:/Robot_v2/BOOT/out/Robot_V2/GD32C103CB/Release/Robot_V2.axf c3a3e5728b3e60b8
|
||||
15 623 7892482015765574 G:/Robot_v2/BOOT/out/Robot_V2/GD32C103CB/Release/Robot_V2.hex c3a3e5728b3e60b8
|
||||
15 623 7892482015765574 G:/Robot_v2/BOOT/out/Robot_V2/GD32C103CB/Release/Robot_V2.axf.map c3a3e5728b3e60b8
|
||||
1180 1399 7892482029045120 Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-done 39cd38b08f3cacb9
|
||||
1026 1180 7892482026793639 G:/Robot_v2/BOOT/tmp/Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-test 57275ea8426097a0
|
||||
15 623 7892482015765574 G:/Robot_v2/BOOT/tmp/Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-build c3a3e5728b3e60b8
|
||||
12517 12632 7890673384727863 G:/Robot_v2/BOOT/tmp/Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-executes 9db191f9941f966f
|
||||
162 406 7890856418174556 G:/Robot_v2/BOOT/tmp/Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-database 206b709820348205
|
||||
406 471 7890856420616580 Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-install 66d6e5c354af78e4
|
||||
406 471 7890856420616580 G:/Robot_v2/BOOT/tmp/Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-install 66d6e5c354af78e4
|
||||
471 582 7890856421979571 Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-test 57275ea8426097a0
|
||||
582 765 7890856423795149 CMakeFiles/Robot_V2.Release+GD32C103CB-complete 39cd38b08f3cacb9
|
||||
582 765 7890856423795149 G:/Robot_v2/BOOT/tmp/CMakeFiles/Robot_V2.Release+GD32C103CB-complete 39cd38b08f3cacb9
|
||||
582 765 7890856423795149 G:/Robot_v2/BOOT/tmp/Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-done 39cd38b08f3cacb9
|
||||
14 1313 7890861808233494 Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-build c3a3e5728b3e60b8
|
||||
14 1313 7890861808233494 G:/Robot_v2/BOOT/out/Robot_V2/GD32C103CB/Release/Robot_V2.bin c3a3e5728b3e60b8
|
||||
14 1313 7890861808233494 G:/Robot_v2/BOOT/out/Robot_V2/GD32C103CB/Release/Robot_V2.axf c3a3e5728b3e60b8
|
||||
14 1313 7890861808233494 G:/Robot_v2/BOOT/out/Robot_V2/GD32C103CB/Release/Robot_V2.hex c3a3e5728b3e60b8
|
||||
14 1313 7890861808233494 G:/Robot_v2/BOOT/out/Robot_V2/GD32C103CB/Release/Robot_V2.axf.map c3a3e5728b3e60b8
|
||||
14 1313 7890861808233494 G:/Robot_v2/BOOT/tmp/Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-build c3a3e5728b3e60b8
|
||||
1313 1573 7890861821228612 Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-database 206b709820348205
|
||||
1313 1573 7890861821228612 G:/Robot_v2/BOOT/tmp/Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-database 206b709820348205
|
||||
1573 1637 7890861823824026 Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-install 66d6e5c354af78e4
|
||||
1573 1637 7890861823824026 G:/Robot_v2/BOOT/tmp/Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-install 66d6e5c354af78e4
|
||||
1637 1749 7890861825186938 Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-test 57275ea8426097a0
|
||||
1637 1749 7890861825186938 G:/Robot_v2/BOOT/tmp/Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-test 57275ea8426097a0
|
||||
1749 1917 7890861826859958 CMakeFiles/Robot_V2.Release+GD32C103CB-complete 39cd38b08f3cacb9
|
||||
1749 1917 7890861826859958 Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-done 39cd38b08f3cacb9
|
||||
1749 1917 7890861826859958 G:/Robot_v2/BOOT/tmp/CMakeFiles/Robot_V2.Release+GD32C103CB-complete 39cd38b08f3cacb9
|
||||
1749 1917 7890861826859958 G:/Robot_v2/BOOT/tmp/Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-done 39cd38b08f3cacb9
|
||||
623 947 7892482021845118 G:/Robot_v2/BOOT/tmp/Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-database 206b709820348205
|
||||
947 1026 7892482025079915 Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-install 66d6e5c354af78e4
|
||||
947 1026 7892482025079915 G:/Robot_v2/BOOT/tmp/Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-install 66d6e5c354af78e4
|
||||
1026 1180 7892482026793639 Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-test 57275ea8426097a0
|
||||
1180 1399 7892482029045120 CMakeFiles/Robot_V2.Release+GD32C103CB-complete 39cd38b08f3cacb9
|
||||
1180 1399 7892482029045120 G:/Robot_v2/BOOT/tmp/CMakeFiles/Robot_V2.Release+GD32C103CB-complete 39cd38b08f3cacb9
|
||||
1180 1399 7892482029045120 G:/Robot_v2/BOOT/tmp/Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-done 39cd38b08f3cacb9
|
||||
20 595 7892485291955959 Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-build c3a3e5728b3e60b8
|
||||
20 595 7892485291955959 G:/Robot_v2/BOOT/out/Robot_V2/GD32C103CB/Release/Robot_V2.bin c3a3e5728b3e60b8
|
||||
20 595 7892485291955959 G:/Robot_v2/BOOT/out/Robot_V2/GD32C103CB/Release/Robot_V2.axf c3a3e5728b3e60b8
|
||||
20 595 7892485291955959 G:/Robot_v2/BOOT/out/Robot_V2/GD32C103CB/Release/Robot_V2.hex c3a3e5728b3e60b8
|
||||
20 595 7892485291955959 G:/Robot_v2/BOOT/out/Robot_V2/GD32C103CB/Release/Robot_V2.axf.map c3a3e5728b3e60b8
|
||||
20 595 7892485291955959 G:/Robot_v2/BOOT/tmp/Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-build c3a3e5728b3e60b8
|
||||
595 948 7892485297714195 Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-database 206b709820348205
|
||||
595 948 7892485297714195 G:/Robot_v2/BOOT/tmp/Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-database 206b709820348205
|
||||
948 1033 7892485301239675 Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-install 66d6e5c354af78e4
|
||||
948 1033 7892485301239675 G:/Robot_v2/BOOT/tmp/Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-install 66d6e5c354af78e4
|
||||
1033 1192 7892485303119609 Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-test 57275ea8426097a0
|
||||
1033 1192 7892485303119609 G:/Robot_v2/BOOT/tmp/Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-test 57275ea8426097a0
|
||||
1192 1411 7892485305284877 CMakeFiles/Robot_V2.Release+GD32C103CB-complete 39cd38b08f3cacb9
|
||||
1192 1411 7892485305284877 Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-done 39cd38b08f3cacb9
|
||||
1192 1411 7892485305284877 G:/Robot_v2/BOOT/tmp/CMakeFiles/Robot_V2.Release+GD32C103CB-complete 39cd38b08f3cacb9
|
||||
1192 1411 7892485305284877 G:/Robot_v2/BOOT/tmp/Robot_V2.Release+GD32C103CB/src/Robot_V2.Release+GD32C103CB-stamp/Robot_V2.Release+GD32C103CB-done 39cd38b08f3cacb9
|
||||
|
||||
Binary file not shown.
+42
-75
@@ -1,77 +1,44 @@
|
||||
# ninja log v6
|
||||
17 140 7890715713799590 CMakeFiles/Group_sys.dir/G_/Robot_v2/BOOT/Robot_V2/sys/systick.o 90049e3a9997d47e
|
||||
16 148 7890771245777108 CMakeFiles/Group_Source_Files.dir/G_/Robot_v2/BOOT/Robot_V2/main.o a1e7d66abb20e63f
|
||||
15 258 7890700902913628 CMakeFiles/Group_Source_Files.dir/G_/Robot_v2/BOOT/Robot_V2/sys/aes128.o de648e3137990e90
|
||||
31 252 7890673377105116 CMakeFiles/GigaDevice_Device_EVAL_GD32C10x_1_0_0.dir/G_/Robot_v2/BOOT/Robot_V2/RTE/Device/GD32C103CB/gd32c10x_eval.o 9a409ccbbaf0b506
|
||||
46 300 7890673377243346 CMakeFiles/GigaDevice_Device_GD32C10x_StdPeripherals_DBG_1_0_0.dir/G_/Robot_v2/BOOT/Robot_V2/RTE/Device/GD32C103CB/gd32c10x_dbg.o afbddcf2f39ba5cd
|
||||
79 311 7890673377577407 CMakeFiles/GigaDevice_Device_GD32C10x_StdPeripherals_PMU_1_0_0.dir/G_/Robot_v2/BOOT/Robot_V2/RTE/Device/GD32C103CB/gd32c10x_pmu.o 90d7d435f1eb4630
|
||||
15 125 7890770048307661 G:/Robot_v2/BOOT/tmp/1/CMakeFiles/database cd32a3f4a99f5b2a
|
||||
41 303 7890673377198599 CMakeFiles/GigaDevice_Device_GD32C10x_StdPeripherals_CRC_1_0_0.dir/G_/Robot_v2/BOOT/Robot_V2/RTE/Device/GD32C103CB/gd32c10x_crc.o 67890dbd6b26def8
|
||||
11 3992 7892480307748158 CMakeFiles/Group_Source_Files.dir/G_/Robot_v2/BOOT/Robot_V2/main.o a1e7d66abb20e63f
|
||||
11 322 7891598951572010 CMakeFiles/Group_sys.dir/G_/Robot_v2/BOOT/Robot_V2/sys/systick.o 90049e3a9997d47e
|
||||
62 322 7891598952075669 CMakeFiles/GigaDevice_Device_GD32C10x_StdPeripherals_PMU_1_0_0.dir/G_/Robot_v2/BOOT/Robot_V2/RTE/Device/GD32C103CB/gd32c10x_pmu.o 90d7d435f1eb4630
|
||||
8 429 7891598951546143 CMakeFiles/Group_Source_Files.dir/G_/Robot_v2/BOOT/Robot_V2/sys/aes128.o de648e3137990e90
|
||||
25 291 7891598951708147 CMakeFiles/GigaDevice_Device_EVAL_GD32C10x_1_0_0.dir/G_/Robot_v2/BOOT/Robot_V2/RTE/Device/GD32C103CB/gd32c10x_eval.o 9a409ccbbaf0b506
|
||||
36 291 7891598951814065 CMakeFiles/GigaDevice_Device_GD32C10x_StdPeripherals_DBG_1_0_0.dir/G_/Robot_v2/BOOT/Robot_V2/RTE/Device/GD32C103CB/gd32c10x_dbg.o afbddcf2f39ba5cd
|
||||
15 163 7892480350876876 G:/Robot_v2/BOOT/tmp/1/CMakeFiles/database cd32a3f4a99f5b2a
|
||||
32 281 7891598951785818 CMakeFiles/GigaDevice_Device_GD32C10x_StdPeripherals_CRC_1_0_0.dir/G_/Robot_v2/BOOT/Robot_V2/RTE/Device/GD32C103CB/gd32c10x_crc.o 67890dbd6b26def8
|
||||
95 288 7890673377735646 CMakeFiles/GigaDevice_Device_Startup_1_0_0.dir/G_/Robot_v2/BOOT/Robot_V2/RTE/Device/GD32C103CB/startup_gd32c10x.o 7333d2a666947fb3
|
||||
55 306 7890673377343008 CMakeFiles/GigaDevice_Device_GD32C10x_StdPeripherals_EXTI_1_0_0.dir/G_/Robot_v2/BOOT/Robot_V2/RTE/Device/GD32C103CB/gd32c10x_exti.o dc69558be82ddab3
|
||||
15 205 7890748941645060 CMakeFiles/Group_sys.dir/G_/Robot_v2/BOOT/Robot_V2/sys/initial.o 671120909b55a6ec
|
||||
64 313 7890673377428831 CMakeFiles/GigaDevice_Device_GD32C10x_StdPeripherals_FWDGT_1_0_0.dir/G_/Robot_v2/BOOT/Robot_V2/RTE/Device/GD32C103CB/gd32c10x_fwdgt.o 77d2407664c0b50e
|
||||
74 322 7890673377525767 CMakeFiles/GigaDevice_Device_GD32C10x_StdPeripherals_MISC_1_0_0.dir/G_/Robot_v2/BOOT/Robot_V2/RTE/Device/GD32C103CB/gd32c10x_misc.o 249b986db23681a2
|
||||
99 340 7890673377786120 CMakeFiles/GigaDevice_Device_Startup_1_0_0.dir/G_/Robot_v2/BOOT/Robot_V2/RTE/Device/GD32C103CB/system_gd32c10x.o 59beee78be430f18
|
||||
69 347 7890673377480049 CMakeFiles/GigaDevice_Device_GD32C10x_StdPeripherals_GPIO_1_0_0.dir/G_/Robot_v2/BOOT/Robot_V2/RTE/Device/GD32C103CB/gd32c10x_gpio.o 54f1765925ee6320
|
||||
50 353 7890673377287203 CMakeFiles/GigaDevice_Device_GD32C10x_StdPeripherals_DMA_1_0_0.dir/G_/Robot_v2/BOOT/Robot_V2/RTE/Device/GD32C103CB/gd32c10x_dma.o d976b2f727d5d643
|
||||
89 355 7890673377680938 CMakeFiles/GigaDevice_Device_GD32C10x_StdPeripherals_USART_1_0_0.dir/G_/Robot_v2/BOOT/Robot_V2/RTE/Device/GD32C103CB/gd32c10x_usart.o 25d66ba79c0b0dee
|
||||
19 274 7890755675430365 CMakeFiles/Group_device.dir/G_/Robot_v2/BOOT/Robot_V2/device/Can.o 45fb475e6531516a
|
||||
85 375 7890673377637734 CMakeFiles/GigaDevice_Device_GD32C10x_StdPeripherals_RCU_1_0_0.dir/G_/Robot_v2/BOOT/Robot_V2/RTE/Device/GD32C103CB/gd32c10x_rcu.o 8a38055acf3e9414
|
||||
17 290 7890755675404147 CMakeFiles/Group_sys.dir/G_/Robot_v2/BOOT/Robot_V2/sys/OTA.o d3ceecf5eb5da62f
|
||||
36 413 7890673377149495 CMakeFiles/GigaDevice_Device_GD32C10x_StdPeripherals_CAN_1_0_0.dir/G_/Robot_v2/BOOT/Robot_V2/RTE/Device/GD32C103CB/gd32c10x_can.o faa264156fd20815
|
||||
20 212 7890715713827432 CMakeFiles/Group_sys.dir/G_/Robot_v2/BOOT/Robot_V2/sys/flash.o b46fd0fc5d6515ff
|
||||
60 464 7890673377385769 CMakeFiles/GigaDevice_Device_GD32C10x_StdPeripherals_FMC_1_0_0.dir/G_/Robot_v2/BOOT/Robot_V2/RTE/Device/GD32C103CB/gd32c10x_fmc.o bf3ed2250296db4a
|
||||
148 349 7890771248462685 G:/Robot_v2/BOOT/out/Robot_V2/GD32C103CB/Release/Robot_V2.axf 8519cd44596d6959
|
||||
148 349 7890771248462685 ac6_linker_script.sct 8519cd44596d6959
|
||||
148 349 7890771248462685 G:/Robot_v2/BOOT/tmp/1/ac6_linker_script.sct 8519cd44596d6959
|
||||
15 125 7890770048307661 CMakeFiles/database cd32a3f4a99f5b2a
|
||||
18 125 7890771250093811 CMakeFiles/database cd32a3f4a99f5b2a
|
||||
18 125 7890771250093811 G:/Robot_v2/BOOT/tmp/1/CMakeFiles/database cd32a3f4a99f5b2a
|
||||
13 220 7890777467367934 CMakeFiles/Group_Source_Files.dir/G_/Robot_v2/BOOT/Robot_V2/main.o a1e7d66abb20e63f
|
||||
17 294 7890777467410485 CMakeFiles/Group_sys.dir/G_/Robot_v2/BOOT/Robot_V2/sys/OTA.o d3ceecf5eb5da62f
|
||||
294 508 7890777471661532 G:/Robot_v2/BOOT/out/Robot_V2/GD32C103CB/Release/Robot_V2.axf 8519cd44596d6959
|
||||
294 508 7890777471661532 ac6_linker_script.sct 8519cd44596d6959
|
||||
294 508 7890777471661532 G:/Robot_v2/BOOT/tmp/1/ac6_linker_script.sct 8519cd44596d6959
|
||||
16 129 7890777473285115 CMakeFiles/database cd32a3f4a99f5b2a
|
||||
16 129 7890777473285115 G:/Robot_v2/BOOT/tmp/1/CMakeFiles/database cd32a3f4a99f5b2a
|
||||
3 127 7890851420401990 CMakeFiles/database cd32a3f4a99f5b2a
|
||||
3 127 7890851420401990 G:/Robot_v2/BOOT/tmp/1/CMakeFiles/database cd32a3f4a99f5b2a
|
||||
12 973 7890851520935204 CMakeFiles/Group_Source_Files.dir/G_/Robot_v2/BOOT/Robot_V2/main.o a1e7d66abb20e63f
|
||||
974 1308 7890851532980991 G:/Robot_v2/BOOT/out/Robot_V2/GD32C103CB/Release/Robot_V2.axf 8519cd44596d6959
|
||||
974 1308 7890851532980991 ac6_linker_script.sct 8519cd44596d6959
|
||||
974 1308 7890851532980991 G:/Robot_v2/BOOT/tmp/1/ac6_linker_script.sct 8519cd44596d6959
|
||||
17 126 7890851534898598 CMakeFiles/database cd32a3f4a99f5b2a
|
||||
17 126 7890851534898598 G:/Robot_v2/BOOT/tmp/1/CMakeFiles/database cd32a3f4a99f5b2a
|
||||
11 149 7890851844694331 CMakeFiles/Group_Source_Files.dir/G_/Robot_v2/BOOT/Robot_V2/main.o a1e7d66abb20e63f
|
||||
149 351 7890851847451868 G:/Robot_v2/BOOT/out/Robot_V2/GD32C103CB/Release/Robot_V2.axf 8519cd44596d6959
|
||||
149 351 7890851847451868 ac6_linker_script.sct 8519cd44596d6959
|
||||
149 351 7890851847451868 G:/Robot_v2/BOOT/tmp/1/ac6_linker_script.sct 8519cd44596d6959
|
||||
15 124 7890851849049063 CMakeFiles/database cd32a3f4a99f5b2a
|
||||
15 124 7890851849049063 G:/Robot_v2/BOOT/tmp/1/CMakeFiles/database cd32a3f4a99f5b2a
|
||||
12 145 7890852052269162 CMakeFiles/Group_Source_Files.dir/G_/Robot_v2/BOOT/Robot_V2/main.o a1e7d66abb20e63f
|
||||
145 347 7890852054982744 G:/Robot_v2/BOOT/out/Robot_V2/GD32C103CB/Release/Robot_V2.axf 8519cd44596d6959
|
||||
145 347 7890852054982744 ac6_linker_script.sct 8519cd44596d6959
|
||||
145 347 7890852054982744 G:/Robot_v2/BOOT/tmp/1/ac6_linker_script.sct 8519cd44596d6959
|
||||
15 125 7890852056602367 CMakeFiles/database cd32a3f4a99f5b2a
|
||||
15 125 7890852056602367 G:/Robot_v2/BOOT/tmp/1/CMakeFiles/database cd32a3f4a99f5b2a
|
||||
12 225 7890855367432401 CMakeFiles/Group_Source_Files.dir/G_/Robot_v2/BOOT/Robot_V2/main.o a1e7d66abb20e63f
|
||||
226 445 7890855371073276 G:/Robot_v2/BOOT/out/Robot_V2/GD32C103CB/Release/Robot_V2.axf 8519cd44596d6959
|
||||
226 445 7890855371073276 ac6_linker_script.sct 8519cd44596d6959
|
||||
226 445 7890855371073276 G:/Robot_v2/BOOT/tmp/1/ac6_linker_script.sct 8519cd44596d6959
|
||||
15 129 7890855372707375 CMakeFiles/database cd32a3f4a99f5b2a
|
||||
15 129 7890855372707375 G:/Robot_v2/BOOT/tmp/1/CMakeFiles/database cd32a3f4a99f5b2a
|
||||
3 121 7890855708250214 CMakeFiles/database cd32a3f4a99f5b2a
|
||||
3 121 7890855708250214 G:/Robot_v2/BOOT/tmp/1/CMakeFiles/database cd32a3f4a99f5b2a
|
||||
3 120 7890856418641784 CMakeFiles/database cd32a3f4a99f5b2a
|
||||
3 120 7890856418641784 G:/Robot_v2/BOOT/tmp/1/CMakeFiles/database cd32a3f4a99f5b2a
|
||||
13 218 7890861809148591 CMakeFiles/Group_Source_Files.dir/G_/Robot_v2/BOOT/Robot_V2/main.o a1e7d66abb20e63f
|
||||
17 239 7890861809189363 CMakeFiles/Group_sys.dir/G_/Robot_v2/BOOT/Robot_V2/sys/systick.o 90049e3a9997d47e
|
||||
27 281 7890861809283737 CMakeFiles/Group_device.dir/G_/Robot_v2/BOOT/Robot_V2/device/Can.o 45fb475e6531516a
|
||||
24 297 7890861809255530 CMakeFiles/Group_sys.dir/G_/Robot_v2/BOOT/Robot_V2/sys/OTA.o d3ceecf5eb5da62f
|
||||
20 977 7890861809222029 CMakeFiles/Group_sys.dir/G_/Robot_v2/BOOT/Robot_V2/sys/flash.o b46fd0fc5d6515ff
|
||||
977 1180 7890861820180394 G:/Robot_v2/BOOT/out/Robot_V2/GD32C103CB/Release/Robot_V2.axf 8519cd44596d6959
|
||||
977 1180 7890861820180394 ac6_linker_script.sct 8519cd44596d6959
|
||||
977 1180 7890861820180394 G:/Robot_v2/BOOT/tmp/1/ac6_linker_script.sct 8519cd44596d6959
|
||||
15 137 7890861821811261 CMakeFiles/database cd32a3f4a99f5b2a
|
||||
15 137 7890861821811261 G:/Robot_v2/BOOT/tmp/1/CMakeFiles/database cd32a3f4a99f5b2a
|
||||
43 285 7891598951884515 CMakeFiles/GigaDevice_Device_GD32C10x_StdPeripherals_EXTI_1_0_0.dir/G_/Robot_v2/BOOT/Robot_V2/RTE/Device/GD32C103CB/gd32c10x_exti.o dc69558be82ddab3
|
||||
51 321 7891598951964792 CMakeFiles/GigaDevice_Device_GD32C10x_StdPeripherals_FWDGT_1_0_0.dir/G_/Robot_v2/BOOT/Robot_V2/RTE/Device/GD32C103CB/gd32c10x_fwdgt.o 77d2407664c0b50e
|
||||
11 147 7892468468738191 CMakeFiles/Group_sys.dir/G_/Robot_v2/BOOT/Robot_V2/sys/initial.o 671120909b55a6ec
|
||||
58 306 7891598952039121 CMakeFiles/GigaDevice_Device_GD32C10x_StdPeripherals_MISC_1_0_0.dir/G_/Robot_v2/BOOT/Robot_V2/RTE/Device/GD32C103CB/gd32c10x_misc.o 249b986db23681a2
|
||||
72 325 7891598952184604 CMakeFiles/GigaDevice_Device_Startup_1_0_0.dir/G_/Robot_v2/BOOT/Robot_V2/RTE/Device/GD32C103CB/system_gd32c10x.o 59beee78be430f18
|
||||
54 338 7891598952001653 CMakeFiles/GigaDevice_Device_GD32C10x_StdPeripherals_GPIO_1_0_0.dir/G_/Robot_v2/BOOT/Robot_V2/RTE/Device/GD32C103CB/gd32c10x_gpio.o 54f1765925ee6320
|
||||
39 340 7891598951846954 CMakeFiles/GigaDevice_Device_GD32C10x_StdPeripherals_DMA_1_0_0.dir/G_/Robot_v2/BOOT/Robot_V2/RTE/Device/GD32C103CB/gd32c10x_dma.o d976b2f727d5d643
|
||||
68 335 7891598952142156 CMakeFiles/GigaDevice_Device_GD32C10x_StdPeripherals_USART_1_0_0.dir/G_/Robot_v2/BOOT/Robot_V2/RTE/Device/GD32C103CB/gd32c10x_usart.o 25d66ba79c0b0dee
|
||||
32 197 7892467927615674 CMakeFiles/Group_device.dir/G_/Robot_v2/BOOT/Robot_V2/device/Can.o 45fb475e6531516a
|
||||
11 205 7892480664196713 CMakeFiles/Group_sys.dir/G_/Robot_v2/BOOT/Robot_V2/sys/OTA.o d3ceecf5eb5da62f
|
||||
65 372 7891598952109689 CMakeFiles/GigaDevice_Device_GD32C10x_StdPeripherals_RCU_1_0_0.dir/G_/Robot_v2/BOOT/Robot_V2/RTE/Device/GD32C103CB/gd32c10x_rcu.o 8a38055acf3e9414
|
||||
29 390 7891598951738894 CMakeFiles/GigaDevice_Device_GD32C10x_StdPeripherals_CAN_1_0_0.dir/G_/Robot_v2/BOOT/Robot_V2/RTE/Device/GD32C103CB/gd32c10x_can.o faa264156fd20815
|
||||
21 426 7891478081486856 CMakeFiles/Group_sys.dir/G_/Robot_v2/BOOT/Robot_V2/sys/flash.o b46fd0fc5d6515ff
|
||||
47 462 7891598951927716 CMakeFiles/GigaDevice_Device_GD32C10x_StdPeripherals_FMC_1_0_0.dir/G_/Robot_v2/BOOT/Robot_V2/RTE/Device/GD32C103CB/gd32c10x_fmc.o bf3ed2250296db4a
|
||||
205 433 7892480667690259 G:/Robot_v2/BOOT/out/Robot_V2/GD32C103CB/Release/Robot_V2.axf f808250924f73eee
|
||||
205 433 7892480667690259 ac6_linker_script.sct f808250924f73eee
|
||||
205 433 7892480667690259 G:/Robot_v2/BOOT/tmp/1/ac6_linker_script.sct f808250924f73eee
|
||||
15 163 7892480350876876 CMakeFiles/database cd32a3f4a99f5b2a
|
||||
14 5581 7891491160826172 build.ninja d9a30fa45660d8a5
|
||||
15 158 7892480669577242 CMakeFiles/database cd32a3f4a99f5b2a
|
||||
15 158 7892480669577242 G:/Robot_v2/BOOT/tmp/1/CMakeFiles/database cd32a3f4a99f5b2a
|
||||
11 172 7892482016805059 CMakeFiles/Group_Source_Files.dir/G_/Robot_v2/BOOT/Robot_V2/main.o a1e7d66abb20e63f
|
||||
14 228 7892482016845060 CMakeFiles/Group_sys.dir/G_/Robot_v2/BOOT/Robot_V2/sys/OTA.o d3ceecf5eb5da62f
|
||||
228 451 7892482020528367 G:/Robot_v2/BOOT/out/Robot_V2/GD32C103CB/Release/Robot_V2.axf f808250924f73eee
|
||||
228 451 7892482020528367 ac6_linker_script.sct f808250924f73eee
|
||||
228 451 7892482020528367 G:/Robot_v2/BOOT/tmp/1/ac6_linker_script.sct f808250924f73eee
|
||||
16 166 7892482022420515 CMakeFiles/database cd32a3f4a99f5b2a
|
||||
16 166 7892482022420515 G:/Robot_v2/BOOT/tmp/1/CMakeFiles/database cd32a3f4a99f5b2a
|
||||
12 161 7892485293122981 CMakeFiles/Group_Source_Files.dir/G_/Robot_v2/BOOT/Robot_V2/main.o a1e7d66abb20e63f
|
||||
161 401 7892485296253827 G:/Robot_v2/BOOT/out/Robot_V2/GD32C103CB/Release/Robot_V2.axf f808250924f73eee
|
||||
161 401 7892485296253827 ac6_linker_script.sct f808250924f73eee
|
||||
161 401 7892485296253827 G:/Robot_v2/BOOT/tmp/1/ac6_linker_script.sct f808250924f73eee
|
||||
19 187 7892485298385558 CMakeFiles/database cd32a3f4a99f5b2a
|
||||
19 187 7892485298385558 G:/Robot_v2/BOOT/tmp/1/CMakeFiles/database cd32a3f4a99f5b2a
|
||||
|
||||
@@ -329,8 +329,6 @@ CMAKE_OBJCOPY-ADVANCED:INTERNAL=1
|
||||
CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
|
||||
//Platform information initialized
|
||||
CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_RANLIB
|
||||
CMAKE_RANLIB-ADVANCED:INTERNAL=1
|
||||
//noop for ranlib
|
||||
CMAKE_RANLIB:INTERNAL=:
|
||||
//ADVANCED property for variable: CMAKE_READELF
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+6
-59
File diff suppressed because one or more lines are too long
@@ -23,12 +23,6 @@
|
||||
"file": "G:\\Robot_v2\\BOOT\\Robot_V2\\sys\\initial.cpp",
|
||||
"output": "CMakeFiles\\Group_sys.dir\\G_\\Robot_v2\\BOOT\\Robot_V2\\sys\\initial.o"
|
||||
},
|
||||
{
|
||||
"directory": "G:/Robot_v2/BOOT/tmp/1",
|
||||
"command": "c:\\Users\\cbb\\.vcpkg\\artifacts\\2139c4c6\\compilers.arm.armclang\\6.24.0\\bin\\armclang.exe --target=arm-arm-none-eabi -DGD32C10x -D_RTE_ -IG:/Robot_v2/BOOT/Robot_V2/RTE/_Release_GD32C103CB -IC:/Users/cbb/AppData/Local/arm/packs/ARM/CMSIS/4.5.0/CMSIS/Include -IC:/Users/cbb/AppData/Local/arm/packs/GigaDevice/GD32C10x_DFP/1.0.1/Device/Firmware/Peripherals/inc -IC:/Users/cbb/AppData/Local/arm/packs/GigaDevice/GD32C10x_DFP/1.0.1/Device/Include -IC:/Users/cbb/AppData/Local/arm/packs/GigaDevice/GD32C10x_DFP/1.0.1/Device/Utilities -IG:/Robot_v2/BOOT/Robot_V2 -IG:/Robot_v2/BOOT/Robot_V2/sys -IG:/Robot_v2/BOOT/Robot_V2/device -isystem C:/Users/cbb/.vcpkg/artifacts/2139c4c6/compilers.arm.armclang/6.24.0/include/libcxx -isystem C:/Users/cbb/.vcpkg/artifacts/2139c4c6/compilers.arm.armclang/6.24.0/include --target=arm-arm-none-eabi -mcpu=Cortex-M4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard --target=arm-arm-none-eabi -mcpu=Cortex-M4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard --target=arm-arm-none-eabi -c -mlittle-endian -fshort-enums -fshort-wchar -D__MICROLIB -Wno-register -gdwarf-5 -Wno-macro-redefined -Wno-pragma-pack -Wno-parentheses-equality -Wno-license-management -O2 -o CMakeFiles\\Group_sys.dir\\G_\\Robot_v2\\BOOT\\Robot_V2\\sys\\flash.o -c G:\\Robot_v2\\BOOT\\Robot_V2\\sys\\flash.cpp",
|
||||
"file": "G:\\Robot_v2\\BOOT\\Robot_V2\\sys\\flash.cpp",
|
||||
"output": "CMakeFiles\\Group_sys.dir\\G_\\Robot_v2\\BOOT\\Robot_V2\\sys\\flash.o"
|
||||
},
|
||||
{
|
||||
"directory": "G:/Robot_v2/BOOT/tmp/1",
|
||||
"command": "c:\\Users\\cbb\\.vcpkg\\artifacts\\2139c4c6\\compilers.arm.armclang\\6.24.0\\bin\\armclang.exe --target=arm-arm-none-eabi -DGD32C10x -D_RTE_ -IG:/Robot_v2/BOOT/Robot_V2/RTE/_Release_GD32C103CB -IC:/Users/cbb/AppData/Local/arm/packs/ARM/CMSIS/4.5.0/CMSIS/Include -IC:/Users/cbb/AppData/Local/arm/packs/GigaDevice/GD32C10x_DFP/1.0.1/Device/Firmware/Peripherals/inc -IC:/Users/cbb/AppData/Local/arm/packs/GigaDevice/GD32C10x_DFP/1.0.1/Device/Include -IC:/Users/cbb/AppData/Local/arm/packs/GigaDevice/GD32C10x_DFP/1.0.1/Device/Utilities -IG:/Robot_v2/BOOT/Robot_V2 -IG:/Robot_v2/BOOT/Robot_V2/sys -IG:/Robot_v2/BOOT/Robot_V2/device -isystem C:/Users/cbb/.vcpkg/artifacts/2139c4c6/compilers.arm.armclang/6.24.0/include/libcxx -isystem C:/Users/cbb/.vcpkg/artifacts/2139c4c6/compilers.arm.armclang/6.24.0/include --target=arm-arm-none-eabi -mcpu=Cortex-M4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard --target=arm-arm-none-eabi -mcpu=Cortex-M4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard --target=arm-arm-none-eabi -c -mlittle-endian -fshort-enums -fshort-wchar -D__MICROLIB -Wno-register -gdwarf-5 -Wno-macro-redefined -Wno-pragma-pack -Wno-parentheses-equality -Wno-license-management -O2 -o CMakeFiles\\Group_sys.dir\\G_\\Robot_v2\\BOOT\\Robot_V2\\sys\\OTA.o -c G:\\Robot_v2\\BOOT\\Robot_V2\\sys\\OTA.cpp",
|
||||
|
||||
@@ -28,7 +28,6 @@ target_link_libraries(Group_Source_Files PUBLIC
|
||||
add_library(Group_sys OBJECT
|
||||
"${SOLUTION_ROOT}/Robot_V2/sys/systick.cpp"
|
||||
"${SOLUTION_ROOT}/Robot_V2/sys/initial.cpp"
|
||||
"${SOLUTION_ROOT}/Robot_V2/sys/flash.cpp"
|
||||
"${SOLUTION_ROOT}/Robot_V2/sys/OTA.cpp"
|
||||
)
|
||||
target_include_directories(Group_sys PUBLIC
|
||||
|
||||
Reference in New Issue
Block a user