首页 > 其他分享 >STM32F103使用flash_algo解析FLM相关

STM32F103使用flash_algo解析FLM相关

时间:2025-01-16 16:11:26浏览次数:1  
标签:STM32F103 RAM code 代码 flash 地址 FLM blob

1、全局区(.bss段和.data段)根据实际情况修改

2、栈顶地址根据实际情况修改

/* Flash OS Routines (Automagically Generated)
 * Copyright (c) 2009-2015 ARM Limited
 */
#include "flash_blob.h"

//代码区 flash_code[]使用JLINK/STLINK等放到RAM,一般是0x20000000
static const uint32_t flash_code[] =
{
	0xE00ABE00, 0x062D780D, 0x24084068, 0xD3000040, 0x1E644058, 0x1C49D1FA, 0x2A001E52, 0x4770D1F2,
	0x4603B510, 0x4C5E2000, 0x485E6020, 0x485E6060, 0x485C6060, 0x485C60A0, 0x462060A0, 0xF01069C0,
	0xD1080F04, 0x5055F245, 0x60204C58, 0x60602006, 0x70FFF640, 0x200060A0, 0x4601BD10, 0x69004850,
	0x7080F420, 0x61104A4E, 0x69004610, 0x0080F040, 0x20006110, 0x484A4770, 0xF0406900, 0x49480020,
	0x46086108, 0xF0406900, 0x61080040, 0xF64AE003, 0x494620AA, 0x48426008, 0xF01068C0, 0xD1F60F01,
	0x6900483F, 0x0020F020, 0x6108493D, 0x69004608, 0x0010F040, 0xF6456108, 0x493D20A5, 0xE0038008,
	0x20AAF64A, 0x60084939, 0x68C04835, 0x0F01F010, 0x4833D1F6, 0xF0206900, 0x49310010, 0x46086108,
	0xF01068C0, 0xD0060F14, 0x68C04608, 0x0014F040, 0x200160C8, 0x20004770, 0x4601E7FC, 0x69004828,
	0x0020F040, 0x61104A26, 0x69004610, 0x0040F040, 0xE0036110, 0x20AAF64A, 0x60104A24, 0x68C04820,
	0x0F01F010, 0x481ED1F6, 0xF0206900, 0x4A1C0020, 0x20006110, 0x46034770, 0x47702001, 0x4603B510,
	0xF0201C48, 0xE0260101, 0x69004815, 0x0010F040, 0x61204C13, 0x80188810, 0xF64AE003, 0x4C1320AA,
	0x480F6020, 0xF01068C0, 0xD1F60F01, 0x6900480C, 0x0010F020, 0x61204C0A, 0x68C04620, 0x0F14F010,
	0x4620D006, 0xF04068C0, 0x60E00014, 0xBD102001, 0x1C921C9B, 0x29001E89, 0x2000D1D6, 0x0000E7F7,
	0x40022000, 0x45670123, 0xCDEF89AB, 0x40003000, 0x1FFFF800, 0x00000000
};

const program_target_t flash_opt =
{
	0x20000021,  // Init代码区内的函数入口地址
	0x2000005B,  // UnInit代码区内的函数入口地址
	0x20000077,  // EraseChip代码区内的函数入口地址
	0x200000FB,  // EraseSector代码区内的函数入口地址
	0x2000013D,  // ProgramPage代码区内的函数入口地址

	// BKPT : start of blob + 1						断点地址,通常用于调试。  对应
	// RSB  : address to access global/static data  全局或静态数据的基址。 
	// RSP  : stack pointer                         堆栈指针的初始值。        如果代码比较大的时候需要修改栈顶地址
	{
		0x20000001,
		0x20000C00,                                 //静态变量地址,相当于上一篇中的.bss段和.data段
		0x20001000                                   
	},

	0x20000400,  // mem buffer location							在目标RAM中用于存储数据的缓冲区地址。        (默认放在代码区后,全局变量变量之前)可以尝试修改大于栈顶看效果
	0x20000000,  // location to write prog_blob in target RAM   在目标RAM中写入prog_blob的地址。            对应STM32程序内存分布---代码区
	sizeof(flash_code),  // prog_blob size						rog_blob的大小。
	flash_code,  // address of prog_blob						prog_blob的地址,即前面定义的机器码数组。    对应STM32程序内存分布---代码区的大小
	0x00000010,  // ram_to_flash_bytes_to_be_written			需要写入闪存的RAM中的字节数。                
};
//全部运行在RAM内:
//1、内存分布从0x20000000开始;依次是代码区flash_code[](原版FLM小于1K,通过sizeof(flash_code)<1024)、
//2、固件烧录缓存区(0x20000400)、
//3、全局或静态数据((start of blob + 1)+3KB)(0x20000C00)、
//4、栈顶指针(0x20001000)

 

标签:STM32F103,RAM,code,代码,flash,地址,FLM,blob
From: https://www.cnblogs.com/icaowu/p/18675182

相关文章

  • 基于STM32F103标准库实现FFT,并实现音乐频谱绘制
    整个工程文件是在江科大的OLED显示屏OLED-V2.0版本IIC四针脚接口UTF-8的工程上编写的,在屏幕显示过程中,只用到了OLED显示屏的绘制直线和绘制像素点两个函数(注意,显示屏的绘制函数坐标可以任意指定,而不是按页写入。任一屏幕只要有上述两个函数均可使用。工程接线:STM32F103C8T6......
  • FlashAttention的原理及其优势
    在深度学习领域,尤其是自然语言处理(NLP)和计算机视觉(CV)任务中,注意力机制(AttentionMechanism)已经成为许多模型的核心组件。然而,随着模型规模的不断扩大,注意力机制的计算复杂度和内存消耗也急剧增加,成为训练和推理的瓶颈。为了解决这一问题,研究人员提出了FlashAttention,一种高......
  • 【STM32】MCU运行多段代码,Flash程序更新的实现方式之一
    【STM32】MCU运行多段代码,Flash程序更新的实现方式之一文章目录BootLeader跳转到BootLeader跳转到Flash其他位置MCU运行多段代码其他程序更新烧录方式附录:Cortex-M架构的SysTick系统定时器精准延时和MCU位带操作SysTick系统定时器精准延时延时函数阻塞延时非阻塞延时......
  • 低功耗蓝牙芯片CH57x,CH58x,CH59x回读codeflash及dataflash数据
    一、读取Codeflash数据芯片内部程序是有加密的,不支持外部工具直接读取,因此只能通过内部接口读取,而ISP烧录器工具在烧录时,默认会擦除8k的数据,因此只能读到8k以后的codeflash部分:方式:烧录一份不超过8k的程序,烧录器烧录时不能勾选清空codeflash,保留8k以后的原固件数据,程序主体可......
  • 10.23Flash动画综合设计并发布、嵌入到网页
    【作业要求】 自己选定主题,创意制作Flash动画,并与网页进行集成 【实验环境】 所需硬件环境为微机;所需软件环境为0【创意内容】 我选择的主题是《春夏秋冬》。春天树叶翠绿,花朵和狗尾巴草随风摇摆,小鸟飞来飞去。夏天走到海边,海浪冲刷着沙滩。秋天树叶都变成了红色,风......
  • Flash Attention V3使用
    FlashAttentionV3概述FlashAttention是一种针对Transformer模型中注意力机制的优化实现,旨在提高计算效率和内存利用率。随着大模型的普及,FlashAttentionV3在H100GPU上实现了显著的性能提升,相比于前一版本,V3通过异步化计算、优化数据传输和引入低精度计算等技术......
  • STM32烧写失败之Contents mismatch at: 0800005CH (Flash=FFH Required=29H) !
    一)问题:用ULINK2给STM32F103C8T6下载程序,下载方式设置如下:出现下面两个问题:1)下载问题界面如下:这个错误的信息大概可以理解为,在0x08000063地址上读取到flash存储为FF,但实际上应该写入08H,即校验时读取到数据与实际写入的不符。2)在DEBUG调试的时候,出现如下问题:调试的时候......
  • IAP篇一 —— FLASH内存划分 & Target设置 附Bootloader
    目录前言一、存储器映射                1、外设寄存器                2、运存                3、用户代码区                        1、Mainmemory                ......
  • 从零开始学TiDB(8) TiFlash 主要架构
    一.TiFlash的主要架构 二.TiFlash主要功能1.异步复制2.一致性读取 T0时刻从客户端写入两行数据k=1value=100k=999value=7分别写入到了两个region,并且产生raftlog 此时TiFlash还没有TiKV的这两行数据此时TiFlash同步了key=1value=100的数据还没有同步ke......
  • 设计一个包含KV操作、 磨损均衡的FLASH数据存储组件
    一、需求介绍寿命问题问题描述:在嵌入式环境中常用的存储器有NORFlash、NANDFlash、EEPROM,前两个一般擦写寿命约为10w次,EEPROM的使用次数约为100w次,寿命长的我先不管QAQ,这里的寿命指的是当flash中的存储单元写入或者擦除超过这个次数,这个存储单元可能会出现出错、变慢等无法......