首页 > 其他分享 >CH32V系列MCU:关于将“变量”放在FLASH某一位置方法

CH32V系列MCU:关于将“变量”放在FLASH某一位置方法

时间:2024-07-26 10:53:29浏览次数:13  
标签:__ Global u8 FLASH flag CH32V printf MCU

以CH32V307为例,配置方法如下:

 

关于给定义的变量赋值,注意要通过FLASH编程操作写入,将值写入FLASH该位置。完成后可直接通过读取该变量获取该值。如下图:

 配置代码如下:

/********************************** (C) COPYRIGHT *******************************
* File Name          : main.c
* Author             : WCH
* Version            : V1.0.0
* Date               : 2021/06/06
* Description        : Main program body.
*********************************************************************************
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
* Attention: This software (modified or not) and binary are used for 
* microcontroller manufactured by Nanjing Qinheng Microelectronics.
*******************************************************************************/

/*
 *@Note
 USART Print debugging routine:
 USART1_Tx(PA9).
 This example demonstrates using USART1(PA9) as a print debug port output.

*/

#include "debug.h"


/* Global typedef */

/* Global define */

/* Global Variable */

volatile u8 flag __attribute__((section(".TEST")));

//读取指定地址的一个字节(8位数据)
uint8_t FLASH_ReadByte(uint32_t address)
{
   return *(__IO uint8_t*)address;
}

void Flash_Program(uint32_t Address, uint16_t Data)
{
    FLASH_Unlock();
    FLASH_ErasePage(Address);
    FLASH_ProgramHalfWord(Address, Data);


}
/*********************************************************************
 * @fn      main
 *
 * @brief   Main program.
 *
 * @return  none
 */
int main(void)
{
    u8 i=0;
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
    SystemCoreClockUpdate();
    Delay_Init();
    USART_Printf_Init(115200);    
    printf("SystemClk:%d\r\n",SystemCoreClock);
    printf( "ChipID:%08x\r\n", DBGMCU_GetCHIPID() );
    printf("This is printf example\r\n");


    while(1)
    {
        i++;
        Flash_Program(0x0800F000,i);
        printf("flag:%d\r\n",flag);
        printf("u8:%02x\r\n",FLASH_ReadByte(0x0800F000));
        Delay_Ms(1000);

    }
}

 

标签:__,Global,u8,FLASH,flag,CH32V,printf,MCU
From: https://www.cnblogs.com/liaigu/p/18324840

相关文章

  • 揭幕M4内核MCU,航顺新品发布会有哪些看点?
    对于MCU厂商来说,物联网、智能家居、工业自动化和汽车电子等领域近年来的飞速发展是市场繁荣的主要推手,但同时也带来了对MCU的性能、功耗管理、数据安全、集成度等方面提出了更高的需求。目前国内MCU厂商的产品主要集中在M0/M3等中低端性能MCU方面,在M4/M7等高性能MCU的产品还少......
  • 深入探索SemiDrive E3系列的MCU SSDK
    SemiDriveE3 系列MCUSSDK :XIP模式一、 前言本文介绍基于SSDK3.0调试XIP运行模式。硬件平台:芯驰E3_LQFP176_E3200_A03_048开发板软件平台:SemiDriveSSDK3.0二、 模式简介SFCore的程序XIP运行在FLASH上,XIP程序启动前,需先在IRAM中运行SFCore......
  • xss flash钓鱼拿到主机控制权
    第一步:本机已经开启phpstudy的web服务第二步:下载Flash项目源码文件,并部署在网站根目录下,访问项目地址:https://github.com/crow821/crowsec/tree/master/crowsec_FakeFlash第三步:来到xssaq平台,点击公共模块---flash弹窗钓鱼-查看将其中的代码保存成js文件放到我们网站的根......
  • Marvell 88Q6113 如何制作一个完整的量产固件88Q6113_flash.bin并进行烧录
    1、简介本章节介绍如何基于Marvell工具链,制作一个完整的量产固件88Q6113_flash.bin,集成用户自定义的配置文件config.bin,用于88Q6113的Flash烧录。注:Marvell88Q5072与Marvell88Q6113的配置流程是一样的。2、Marvell官方参考资料与工具链准备参考文档《Marvell88Q......
  • 零基础STM32单片机编程入门(二十) 华邦W25Q32 SPI FLASH实战含源码
    文章目录一.概要二.W25Q32SPIFLASH主要参数三.W25Q32SPIFLASH芯片介绍1.W25Q32芯片内部框图2.W25Q32芯片指令表格3.W25Q32芯片通讯时序四.W25Q32SPIFLASH读写实验五.CubeMX工程源代码下载六.小结一.概要FLASH是一种存储芯片,通过程序可以修改数据,即平时所......
  • FlashAttention全解
    目录LLM大模型训练加速利器FlashAttention详解一、FlashAttention1.1硬件基础1.2FlashAttention核心思想1.3计算前提1.4FlashAttention算法二、FlashAttention-22.1硬件特性2.2标准的注意力实现2.3FlashAttention-12.3.1前向传播2.3.2反向传播2.4FlashAttention-22.4......
  • FLV(Flash Video)
    FLV(FlashVideo)是一种用于通过互联网传输视频和音频的文件格式。以下是对FLV文件格式的详细讲解:1.FLVHeaderFLV文件头部包含文件的基本信息,是文件的开头部分,通常占据9个字节。其结构如下:Signature(3bytes):表示文件类型,固定为"FLV"。Version(1byte):表示FLV文件版本,......
  • xss--flash钓鱼
    一.本机下载小皮面板开启环境     二.下载flash源文件下载地址:crowsec/crowsec_FakeFlashatmaster·crow821/crowsec·GitHub三.下载完成把网站部署在phpstudywww根目录下四新建一个1.js文件然后在xss平台找到flash弹窗钓鱼然后查看他的源代码复制到......
  • STM32读写FLASH
    要点:读写前要解锁并擦除整页才可以重新写入 测试代码#include"my_flash.H"/***@brief往内部FLASH写入数据*@paramaddr写入地址*@parampdata存储待写数据*@retvalNone*/voidFLASH_Inside_Wr(uint32_taddr,uint32_tPdata){//定义局部变......
  • STM32F429IGT6 STMCubeMX PWM 控制 180 舵机
    设置PWM对应引脚PA2![[QQ_1721613625998.png]]定时器2受APB1控制![[QQ_1721613709674.png]]配置时钟为72MHZ![[QQ_1721613757231.png]]HAL库定义PWM/*TIM2initfunction*/voidMX_TIM2_Init(void){/*USERCODEBEGINTIM2_Init0*//*USERCODEENDTI......