请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
主题中讨论的其他器件:MSP430G2453工具/软件:TI C/C++编译器
你(们)好
我想知道如何在编程时(仅限)将初始值设置(写入)到闪存。
编程后、微控制器将更改闪存的值并保持该值。 再说一次、我希望仅在编程时间内设置初始值。
我使用的是"CCS6.2.0"、"TI 编译器"、我的器件是"MSP430G2453"。
谢谢
此致、
最小
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:TI C/C++编译器
你(们)好
我想知道如何在编程时(仅限)将初始值设置(写入)到闪存。
编程后、微控制器将更改闪存的值并保持该值。 再说一次、我希望仅在编程时间内设置初始值。
我使用的是"CCS6.2.0"、"TI 编译器"、我的器件是"MSP430G2453"。
谢谢
此致、
最小
您好、Min、
您可以参考此代码作为示例。
//
// MSP430G2xx3演示-闪存系统内编程、将 SegC 复制到 SegD
//
说明:此程序首先擦除闪存段 C、然后将
段 C 中的所有//值递增、然后擦除段 D、然后将段 C 复制到段 D。
//假定 MCLK 771kHz - 1428kHz。
////////*在主循环中的 NOP 上设置断点,以避免对闪存造成应力*//
////// MSP430G2xx3
// --------
// /|\| XIN|-
// || |
// -|RST XOUT|-
// | |////
D. Dang
// Texas Instruments Inc.
// 2010年12月
//使用 CCS 版本4.2.0和 IAR 嵌入式工作平台版本构建:5.10
//*********
#include
unsigned int i;
unsigned short value[10]; //要存储在闪存中的值
//*在闪存段中定义变量,具有持久性类型和初始值
**在编程时间内设置(初始值)闪存上的配置数据
*/
#pragma PERSISTENT (configureData)
unsigned short configureData[10]={1、2、3、4、5、6、7、8、9、10};
//函数
Write_ConfigureData (unsigned ConfigureData)
void read_ConfigureData (无符号短整型*值);
int main (void)
{
WDTCTL = WDTPW + WDTHOLD; //如果
(CALBC1_1MHz=0xFF)则停止看门狗计时器//如果校准常数被擦除
{
while (1); //不加载,陷阱 CPU!!
}
DCOCTL = 0; //选择最低 DCOx 和 MODx 设置
BCSCTL1 = CALBC1_1MHZ; //将 DCO 设置为1MHz
DCOCTL = CALDCO_1MHz;
FCTL2 = FWKEY + FSSEL0 + FN1; //针对闪存时序发生器
READ_ConfigureData (Value)的 MCLK/3; //从 configureData (闪存中)读取
(i=0;i<10;i++)
{的值
Value[i]++; //每次重新引导的增量
}
WRITE_ConfigureData (value); //将值写入 configureData (在闪存中)
while (1){;}//永远重复
}
void write_ConfigureData (unsigned short *值)
{
unsigned short * Flash_ptr; //闪存指针
unsigned int i;
Flash_ptr = configureData; //初始化闪存指针
FCTL1 = FWKEY + ERASE; //设置擦除位
FCTL3 = FWKEY; //清除锁定位
* Flash_ptr = 0; //虚拟写入擦除闪存段
FCTL1 = FWKEY + WRT; //将 WRT 位设置为
(i=0;i<10;i++)
{
*闪存_PTR++=值[i]; //将值写入闪存
}
FCTL1 = FWKEY; //清除 WRT 位
FCTL3 = FWKEY + LOCK; //设置锁定位
}
void read_ConfigureData (unsigned short *值)
{
unsigned short * Flash_ptr; //段 C 指针
unsigned int i;
Flash_ptr = configureData; //初始化(
i=0;i<10;i++)
{的闪存段 C 指针
Value[i]=* Flash_PTR++; //将值写入闪存
}
此致、
冬季