首页 > 其他分享 >CH32F系列MCU固件中加入版本信息方法

CH32F系列MCU固件中加入版本信息方法

时间:2023-10-24 19:33:46浏览次数:32  
标签:__ CH32F attribute FLASH VERINFO BASE MCU 版本信息 ADDR

具体方法如下:

1、新建一个.c文件,如banben.c

 

2、新建文件中加入以下信息,如下图

#define VERINFO_ADDR_BASE   (0x0800F000) //存放FLASH的地址

const char Software_Ver[] __attribute__((at(VERINFO_ADDR_BASE + 0x00)))  = "Software: 1.0.0";
const char Compiler_Date[] __attribute__((at(VERINFO_ADDR_BASE + 0x40))) = "Date: "__DATE__;
const char Compiler_Time[] __attribute__((at(VERINFO_ADDR_BASE + 0x60))) = "Time: "__TIME__;
const char Compiler_FILE[] __attribute__((at(VERINFO_ADDR_BASE + 0x80))) = "FILE: "__FILE__;

 其中,VERINFO_ADDR_BASE为固件信息存放的FLASH地址

 

3、对该.c文件进行设置,如下图

 

设置完成后,编译下载,通过WCH-LinkUtility工具读取FLASH信息,在对应FLASH位置可以查看版本信息、日期等,如下:

 

标签:__,CH32F,attribute,FLASH,VERINFO,BASE,MCU,版本信息,ADDR
From: https://www.cnblogs.com/liaigu/p/17785592.html

相关文章

  • 安信可小安派【IO中断】基于AI-M6X MCU
    最近在研究小安派的中断。昨晚写了一个Demo来进行测试。关于什么是中断这里已经讲的很清楚了。首先贴上引用参考。第一个是泽哥写的中断:http://ai-thinker.com/forum.php?mod=viewthread&tid=562&highlight=%E4%B8%AD%E6%96%AD&_dsign=fe47e0a0复制代码这个是我自己写......
  • 关于CH32V系列MCU浮点打印使用配置差异
    当程序中需要打印浮点数时,按照下图配置任意勾选一个即可打印浮点数: 当勾选第一个时,float打印会输出正确数值,具体如下: 当勾选第二个时,float打印输出数值如下(5.20会输出5.19),具体如下。 此时若需要输出正确数值5.20,将float类型改为double类型即可 产生该现象的原因:fl......
  • 关于CH32V系列MCU FLASH地址的分配
    来源:https://www.cnblogs.com/liaigu/p/17784283.html关于在MRS开发环境下,针对CH32V系列MCUFLASH分配,具体方法如下:比如开辟一段空间,存放数组等数据,首先在ld文件中修改FLASH分配,如下图:.consumer_flash1:{.=ALIGN(4);}AT>FLASH1.consumer......
  • 关于CH32系列MCU设置noinit变量
    关于noinit定义:noinit段指的是芯片SRAM的一块内存区域(注意是RAM区而非Flash),在该段定义的变量、或者函数,在除了掉电之外的任何芯片复位的情况下都不会被重新初始化。关于noinit作用:no_init段常用来保存一些敏感信息,特殊应用场合下的不能被复位的数据或者做复位判断标志等数据。这......
  • 嵌入式(MCU)STM32L496QEI6/STM32L496QGI3基于ARM®Cortex®-M4内核
    一、简介STM32L432位MCU+FPU是超低功耗微控制器,基于高性能的ARM®Cortex®-M432位RISC内核,工作频率高达80MHz。Cortex-M4内核具有单浮点单元(SFPU)精度,支持所有ARM单精度数据处理指令与数据类型。同时执行全套DSP指令和存储保护单元(MPU),增强应用安全性。明佳达供求嵌入式(MC......
  • CH32F系列MCU代码在SRAM中运行配置方法
    第一种:使用Keil仿真的方式。因SRAM启动与FLASH无关,在SRAM中运行,断电后数据丢失,故在keil下仅用于仿真。有四个注意事项:1)、BOOT0、BOOT1都需要接高电平,从RAM启动;2)、在Debug选项中,InitializationFile选项加载SRAM.INI文件;3)、FLashDownload界面中算法文件起始地址修改成RAM的起始......
  • RX66T优化用于电机控制R5F566TFFGFP、R5F566TKGGFP、R5F566TKCGFP搭载第三代RXv3 CPU
    1、RX66T 框图2、描述RX66T32位MCU是基于第三代RXv3CPU内核的旗舰32位RXMCU系列中的首款产品。这些MCU优化用于电机控制,可满足实时性能和增强稳定性要求。这些特性帮助实现下一代智能工厂设备和智能家电中的逆变器控制。这些MCU还具有下一代设计中嵌入式AI所需的额外处理能......
  • 【gdb】显示gdb版本信息
    显示gdb版本信息使用gdb时,如果想查看gdb版本信息,可以使用“showversion”命令:(gdb)showversionGNUgdb(GDB)7.7.1Copyright(C)2014FreeSoftwareFoundation,Inc.LicenseGPLv3+:GNUGPLversion3orlater<http://gnu.org/licenses/gpl.html>Thisisfreesof......
  • 关于CH32V系列MCU中断优先级配置以及硬件压栈
    从下图可以看出,第二列与第三列分别为优先级与优先级类型,优先级类型又分为两种,其一是固定优先级,其二是可编程的优先级。以RTC为例,优先级为5,优先级类型为可编程,代表着在不配置RTC的优先级时默认为5,如果需要,也可以将其配置为更高的优先级进行响应。下图关于中断优先级配置,针对CH32V......
  • 关于CH32V系列MCU 免表中断(VTF)的使用配置方法
    可编程快速中断控制器(PFIC)提供四个免表(VectorTableFree)中断通道,可不经过中断向量表的查表过程,直达中断函数入口。个人简单测试过,当开启VTF后,中断延迟时间大概可缩短2个时钟周期左右。关于VTF的具体介绍,可参考对应青稞微处理器手册3.5小节。QingKeV3手册:https://www.wch.cn/do......