搜索
bottom↓
回复: 12

非常困惑,在AVR Studio4里,定义的flash变量出现在SDAM里面,而且观察窗口看不到值.而

[复制链接]

出0入0汤圆

发表于 2007-2-27 17:44:50 | 显示全部楼层 |阅读模式
#include <avr\interrupt.h>

#include <avr\pgmspace.h>

#include <avr\io.h>



const prog_char flash_a=0x11;

int main(void)

{

    while(1)

    {

    PORTA=pgm_read_byte(&flash_a);

    }

}







AVR Studio4,AVR Simulator,AT90S8535



编译正常,无警告无错误,运行结果也正常 PORTA=0x11.

但是本应定义的flash变量(flash_a)出现在SRAM里面,地址为0x0022,值为0x00

(在watch中观察的结果).

0x0022是什么地址?为何flash_a不能出现在flash里面?

-----此内容被vlog_user于2007-02-27,17:47:58编辑过


-----此内容被vlog_user于2007-02-27,18:11:13编辑过

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2007-2-27 17:59:36 | 显示全部楼层
>> const prog_char flash_array=0x11;



搂主可试用以下宣称:

const char progmem flash_array[] = { 0x11 } ;

出0入0汤圆

 楼主| 发表于 2007-2-27 18:09:18 | 显示全部楼层
早试过没用,只不过常数与字符串的区别.

出0入0汤圆

发表于 2007-2-27 18:16:14 | 显示全部楼层
重点是使用 progmem 宣称.

出0入0汤圆

 楼主| 发表于 2007-2-27 18:23:58 | 显示全部楼层
prog_char里已经包含了progmem的声明



#include <avr\pgmspace.h>

#define __ATTR_PROGMEM__   __attribute__((__progmem__))

#define PROGMEM   __ATTR_PROGMEM__

typedef char PROGMEM   prog_char;

出0入0汤圆

发表于 2007-2-27 18:30:33 | 显示全部楼层
FLASH与SRAM是重叠空间,用Watch窗口察看是不对的,用Memory窗口看。

出0入0汤圆

发表于 2007-2-27 18:40:32 | 显示全部楼层
怎么会呢看我这个



我的配置AvrStudio4.13 build524 + WinAVR20070122 (最新配置)

出0入0汤圆

 楼主| 发表于 2007-2-27 18:56:24 | 显示全部楼层
请问楼上的,你的AvrStudio4.13 build524 + WinAVR20070122 在那里有下?

出0入0汤圆

发表于 2007-2-27 19:05:27 | 显示全部楼层
http://www.atmel.no/beta_ware/

WinAVR20070122这里有搜一下

出0入0汤圆

 楼主| 发表于 2007-2-27 19:08:51 | 显示全部楼层
我现在用的是AvrStudio4.12 build452+WinAVR-20060421





出0入0汤圆

 楼主| 发表于 2007-2-27 19:55:06 | 显示全部楼层
晕死,刚开始学AVR用AvrStudio4就碰上这么大的bug(就watch而言我已经发现好几处bug了),怪不得AvrStudio4的图标是个小虫子,atmel公司能做出一流的芯片却做不出好的开发平台,

真让人心寒.



升级AvrStudio4后问题解决,谢谢的bozai!

出0入0汤圆

发表于 2007-2-27 20:19:24 | 显示全部楼层
不谢!

出问题是难免的,况且它目前还是个免费软件。

出0入0汤圆

发表于 2013-9-25 21:47:22 | 显示全部楼层
请问 为什么每次读出来的数都是0XFF。。。。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-27 00:20

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表