7166|8

73

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

玩430FRAM看到例程中一句话,没用过,求教是什么意思 [复制链接]

__persistent unsigned long FRAM_write[WRITE_SIZE] = {0};
这句话是什么意思?__persistent是什么用法?求教大神解释
顺便附上整体程序:

#include "msp430.h"

void FRAMWrite(void);

unsigned char count = 0;
unsigned long data;
#define WRITE_SIZE 128

#if defined(__TI_COMPILER_VERSION__)
#pragma PERSISTENT(FRAM_write)
unsigned long FRAM_write[WRITE_SIZE] = {0};
#elif defined(__IAR_SYSTEMS_ICC__)
__persistent unsigned long FRAM_write[WRITE_SIZE] = {0};                                    //这句何解?
#else
#error Compiler not supported!
#endif

int main(void)
{
  WDTCTL = WDTPW | WDTHOLD;                 // Stop WDT

  // Configure GPIO
  P1OUT &= ~BIT0;                           // Clear P1.0 output latch for a defined power-on state
  P1DIR |= BIT0;                            // Set P1.0 to output direction

  // Disable the GPIO power-on default high-impedance mode to activate
  // previously configured port settings
  PM5CTL0 &= ~LOCKLPM5;

  // Initialize dummy data
  data = 0x00010001;

  while(1)
  {
    data += 0x00010001;
    FRAMWrite();                            // Endless loop
    count++;
    if (count > 100)
    {
      P1OUT ^= 0x01;                        // Toggle LED to show 512K bytes
      count = 0;                            // ..have been written
      data = 0x00010001;
    }
  }
}

void FRAMWrite(void)
{
  unsigned int i=0;

  for ( i= 0; i   {
    FRAM_write = data;
  }
}


最新回复

实验证明,是可以初始化的,而且必须初始化赋值才会把放到FRAM的地址上去,不初始化话的话,就放在RAM的地址上去了  详情 回复 发表于 2017-2-9 08:31
 
点赞 关注

回复
举报

855

帖子

5

TA的资源

一粒金砂(高级)

沙发
 
IAR编译器专用,百度得到的http://processors.wiki.ti.com/index.php/IAR_Embedded_Workbench_Kickstart_for_TI_MSP430_Release_Notes

点评

谢谢指导!注释上说这相当于定义了一个全局变量,而且还不会被起始文件初始化。在这句话中,将它放入预编译,有什么特殊意义吗?在这里如果只是换成普通的定义全局变量stactic,会有什么其他影响呢?。谢谢  详情 回复 发表于 2016-11-15 10:02
看不太明白是什么意思  详情 回复 发表于 2016-11-14 19:10
 
个人签名作为一个菜逼,干货并没有多少。唯一会的就是水,所以回帖水分大。望见谅!
 

回复

578

帖子

0

TA的资源

纯净的硅(初级)

板凳
 
人民币的幻想 发表于 2016-11-14 10:10
IAR编译器专用,百度得到的http://processors.wiki.ti.com/index.php/IAR_Embedded_Workbench_Kickstart_fo ...

看不太明白是什么意思
 
个人签名刻苦学习,共同进步
 
 

回复

73

帖子

0

TA的资源

一粒金砂(中级)

4
 
人民币的幻想 发表于 2016-11-14 18:10
IAR编译器专用,百度得到的http://processors.wiki.ti.com/index.php/IAR_Embedded_Workbench_Kickstart_fo ...

谢谢指导!注释上说这相当于定义了一个全局变量,而且还不会被起始文件初始化。在这句话中,将它放入预编译,有什么特殊意义吗?在这里如果只是换成普通的定义全局变量stactic,会有什么其他影响呢?。谢谢!

点评

不初始化就是说这段代码不需要依赖初始化默认行为比如全局变量初始化为0,或者没有其他初始化行为比如a[1]={0},启动时初始化没必要,因为你明确的知道初始数据内容的合法性你自己保障(否则你加这个keyword做什么?)  详情 回复 发表于 2017-2-8 19:42
加了那个关键字,就会把你定义的数组强制放在FRAM的地址上去,如果不加,只是普通的全局变量,就会放在RAM的地址去,这样掉电的话,数据会被清掉  详情 回复 发表于 2017-2-8 15:59
 
 
 

回复

348

帖子

0

TA的资源

一粒金砂(高级)

5
 
今夜雨夹雪 发表于 2016-11-15 10:02
谢谢指导!注释上说这相当于定义了一个全局变量,而且还不会被起始文件初始化。在这句话中,将它放入预编 ...

加了那个关键字,就会把你定义的数组强制放在FRAM的地址上去,如果不加,只是普通的全局变量,就会放在RAM的地址去,这样掉电的话,数据会被清掉

点评

你理解错了。是不初始化,等价于noinit,不是清零,相反是状态未知。  详情 回复 发表于 2017-2-8 19:32
 
 
 

回复

7671

帖子

2

TA的资源

五彩晶圆(高级)

6
 


你理解错了。是不初始化,等价于noinit,不是清零,相反是状态未知。
 
 
 

回复

7671

帖子

2

TA的资源

五彩晶圆(高级)

7
 


不初始化就是说这段代码不需要依赖初始化默认行为比如全局变量初始化为0,或者没有其他初始化行为比如a[1]={0},启动时初始化没必要,因为你明确的知道初始数据内容的合法性你自己保障(否则你加这个keyword做什么?)。或者不能初始化,比如这段代码的地址指向器件寄存器地址,用这些地址加相应偏移来访问寄存器,你就不能初始化。

点评

实验证明,是可以初始化的,而且必须初始化赋值才会把放到FRAM的地址上去,不初始化话的话,就放在RAM的地址上去了  详情 回复 发表于 2017-2-9 08:31
这个初始化是有意义的,这个关键字在这个上下文中的作用就是指示放到FRAM空间中,这个初始化的值就是FRAM的初始值。  详情 回复 发表于 2017-2-8 20:33
 
 
 

回复

6040

帖子

202

TA的资源

版主

8
 
freebsder 发表于 2017-2-8 19:42
不初始化就是说这段代码不需要依赖初始化默认行为比如全局变量初始化为0,或者没有其他初始化行为比如a[1 ...

这个初始化是有意义的,这个关键字在这个上下文中的作用就是指示放到FRAM空间中,这个初始化的值就是FRAM的初始值。
 
 
 

回复

348

帖子

0

TA的资源

一粒金砂(高级)

9
 
freebsder 发表于 2017-2-8 19:42
不初始化就是说这段代码不需要依赖初始化默认行为比如全局变量初始化为0,或者没有其他初始化行为比如a[1 ...

实验证明,是可以初始化的,而且必须初始化赋值才会把放到FRAM的地址上去,不初始化话的话,就放在RAM的地址上去了
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表