自定义数据在FLASH中的存储位置

        在实际开发中经常会需要配置一些参数,一般情况下我们会将这些信息存储在EEPROM中,但如果从成本考虑,也可以直接存储在单片机的内部FLASH中。

        在Keil MDK和IAR中,写法是有所差异的。

#ifndef __SYS_INFO_H
#define __SYS_INFO_H
#include "stm32f2xx_conf.h"
#include <string.h>


#define		INFO_ADDR	            0x08060000   
#define     INFO_FLASH_SECT         FLASH_Sector_7 

typedef struct
{
    u8		AppName[64];
    u8		FwDate[16];
    u8		FwTime[16];
    u8		CopyRight[32];         

}SYS_INFO;

extern const SYS_INFO SysInfo;
	
#endif

 

#include "stm32f2xx.h"
#include <string.h>
#include "SysInfo.h"

/*这是IAR中的配置*/
#pragma location = INFO_ADDR
__root const SYS_INFO	SysInfo	 =
{
    {'A','P','P','N','A','M','E'},
    {__DATE__},
    {__TIME__},
    {'C','o','p','y','r','i','g','h','t'},
} ;



/*这是MDK中的配置*/
const SYS_INFO	SysInfo __attribute__((at(INFO_ADDR))) =
{
    {'A','P','P','N','A','M','E'},
    {__DATE__},
    {__TIME__},
    {'C','o','p','y','r','i','g','h','t'},
} ;
posted @ 2024-01-28 21:56  慕诗客  阅读(93)  评论(0)    收藏  举报  来源