可以把变量设置在flash中吗?

[复制链接]
4259|10
 楼主| armfan 发表于 2008-3-19 16:35 | 显示全部楼层 |阅读模式
我可以设置一个变量的在flash中吗?我的目的是每次重新上电后根据这个变量的值执行不同的应用程序。这样的想法可以实现吗?
computer00 发表于 2008-3-19 16:52 | 显示全部楼层

不可以,需要自己写到FLASH或者加载到RAM中

用C++的重载或许能够实现直接操作。
 楼主| armfan 发表于 2008-3-19 16:58 | 显示全部楼层

re

写到flash的意思是类似于&nbsp;&nbsp;(*(volatile&nbsp;unsigned&nbsp;*)0x00000000=变量,这样的操作吗?<br />
阿南 发表于 2008-3-19 17:43 | 显示全部楼层

可以以参数的形式保存在Flash中,启动后读该参数

  
samzhou 发表于 2008-3-19 17:53 | 显示全部楼层

re:可以如下定义

(*(volatile&nbsp;unsigned&nbsp;*)0x00000000,这样还不够的,应该再加上变量生命CONST,你可以这样来定义:CONST&nbsp;(*(volatile&nbsp;unsigned&nbsp;*)0x00000000
 楼主| armfan 发表于 2008-3-19 18:13 | 显示全部楼层

re

<br />re阿南:<br /><br />“可以以参数的形式保存在Flash中,启动后读该参数”<br /><br />能举个简单的例子吗?<br /><br /><br />re:samzhou&nbsp;<br /><br />应该是(*(volatile&nbsp;unsigned&nbsp;*&nbsp;const)0x00000000这样的吧?<br /><br />&nbsp;&nbsp;<br /><br /><br />
阿南 发表于 2008-3-19 19:29 | 显示全部楼层

不知道你的程序是在Flash中运行,还是RAM中

在程序中定义一个变量(可以是单个,数组或结构都可以)<br />你再在Flash中留一段空间,程序启动后将这段空间的数据读出传给定义的变量.程序运行当中也可以修改该变量,然后保存在Flash中,下次启动时就是你最后保存的值
 楼主| armfan 发表于 2008-3-19 19:37 | 显示全部楼层

re:

我的程序运行在ram中,你所说的“程序启动后将这段空间的数据读出传给定义的变量”是不是(*(volatile&nbsp;unsigned&nbsp;*&nbsp;const)0x00000000=量&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /><br />这样的一个过程?假设我们把变量的地址是0x00000000
阿南 发表于 2008-3-19 20:18 | 显示全部楼层

不是,const是常量,定义后就改变不了

普通的变量,随便定义,如char&nbsp;a;<br />
 楼主| armfan 发表于 2008-3-19 20:24 | 显示全部楼层

re

呵呵,谢谢,阿南。
twentyone 发表于 2008-3-19 23:18 | 显示全部楼层

RE

其实你这个不叫变量更好,你需要的只是一个标志位。在FLASH里指定的地方存放这个标志位就可以了,你知道地址,就可以访问。需要的时候,改变FLASH的值。启动的时候,读取它,在选择不同的行为。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

38

主题

114

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部