打印
[STM32F1]

ST分享大集结 + STM32F103内部SRAM启动

[复制链接]
2150|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
muelfox|  楼主 | 2017-11-30 15:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


在STM32的数据手册上都有SRAM启动, 不知道这样做的动机是什么, 但可能的话你要改程序如能在SRAM运行的话就能少擦写Flash
这个工程刚开是有普中开发板上做的
主要定义了中断向量表偏移, 重写复位中断, 指定分散加载描述文件, 调试的话要加SRAM调试文件
感觉有点写不清了, 见工程文件吧
沙发
muelfox|  楼主 | 2017-11-30 15:58 | 只看该作者
当时也是脑子抽风在乱来, 有能用到的地方给也请给我说说

LED.rar

413.71 KB, 阅读权限: 20

使用特权

评论回复
板凳
muelfox|  楼主 | 2017-11-30 16:18 | 只看该作者


主要代码

#include "stm32f10x.h"

#include <absacc.h>                /* 支持__section() */

#define VECT_TAB_SRAM        0x20001000                                /* 中断向量表偏移, 必须为0x100的倍数 */

extern void __main(void);                                                /* 程序入口 */

void Reset_Handler(void) __section("Reset_");        /* 复位中断 */

/* 复位中断 */
void Reset_Handler(void)
{
        __set_MSP(*(u32*)VECT_TAB_SRAM);                        /* 设置堆栈指针 */
        SystemInit();                                                                /* 系统时钟配置 */
        SCB->VTOR = VECT_TAB_SRAM & 0xFFFFFF00;                /* 中断向量表偏移 */
        __main();                                                                        /* 程序入口 */
}



使用特权

评论回复
地板
muelfox|  楼主 | 2017-11-30 16:19 | 只看该作者
;************************** 分散加载描述文件 ***************************


LR_IROM1 0x20001000 0x00004000                        ; 加载区 加载地址 区域尺寸
{
        ER_IROM1 0x20001000                                        ; 执行区 执行地址 区域尺寸
        {
                *.o (RESET, +First)
                .ANY (+RO)
        }

        RW_IRAM1 +0                                                        ; 数据区 数据地址 区域尺寸
        {
                .ANY (+RW +ZI)
        }
}

LR_IROM2 0x20000108 0x00000100
{
        ER_IROM2 0x20000108
        {
                *.o (RESET_, +First)
        }
}


;******************************   结束   ******************************


使用特权

评论回复
5
mmuuss586| | 2017-11-30 17:47 | 只看该作者
感谢分享;

使用特权

评论回复
6
会飞的大白| | 2017-11-30 19:50 | 只看该作者
内部SRAM启动有什么好处呢?

使用特权

评论回复
7
nobleliom| | 2017-11-30 19:53 | 只看该作者
会飞的大白 发表于 2017-11-30 19:50
内部SRAM启动有什么好处呢?

从SARM启动,速度快,减轻flash的寿命。

使用特权

评论回复
8
zhuomuniao110| | 2017-11-30 20:04 | 只看该作者
指针的强大功能在此体现

使用特权

评论回复
9
zhuotuzi| | 2017-11-30 21:07 | 只看该作者
学习了,虽然我目前没有用过这样的方法

使用特权

评论回复
10
jingwang| | 2017-12-1 09:44 | 只看该作者
学习了,

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

513

帖子

2

粉丝