打印

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

[复制链接]
3200|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的意思是类似于  (*(volatile unsigned *)0x00000000=变量,这样的操作吗?

使用特权

评论回复
地板
阿南| | 2008-3-19 17:43 | 只看该作者

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

使用特权

评论回复
5
samzhou| | 2008-3-19 17:53 | 只看该作者

re:可以如下定义

(*(volatile unsigned *)0x00000000,这样还不够的,应该再加上变量生命CONST,你可以这样来定义:CONST (*(volatile unsigned *)0x00000000

使用特权

评论回复
6
armfan|  楼主 | 2008-3-19 18:13 | 只看该作者

re


re阿南:

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

能举个简单的例子吗?


re:samzhou 

应该是(*(volatile unsigned * const)0x00000000这样的吧?

  


使用特权

评论回复
7
阿南| | 2008-3-19 19:29 | 只看该作者

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

在程序中定义一个变量(可以是单个,数组或结构都可以)
你再在Flash中留一段空间,程序启动后将这段空间的数据读出传给定义的变量.程序运行当中也可以修改该变量,然后保存在Flash中,下次启动时就是你最后保存的值

使用特权

评论回复
8
armfan|  楼主 | 2008-3-19 19:37 | 只看该作者

re:

我的程序运行在ram中,你所说的“程序启动后将这段空间的数据读出传给定义的变量”是不是(*(volatile unsigned * const)0x00000000=量             


这样的一个过程?假设我们把变量的地址是0x00000000

使用特权

评论回复
9
阿南| | 2008-3-19 20:18 | 只看该作者

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

普通的变量,随便定义,如char a;

使用特权

评论回复
10
armfan|  楼主 | 2008-3-19 20:24 | 只看该作者

re

呵呵,谢谢,阿南。

使用特权

评论回复
11
twentyone| | 2008-3-19 23:18 | 只看该作者

RE

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

使用特权

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

本版积分规则

38

主题

114

帖子

0

粉丝