登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

WinAVR中关于变量与SRAM

作者:winsu 栏目:单片机
WinAVR中关于变量与SRAM
例用AT90S8515,定义全局变量以下:
typedef unsigned CHAR u8;
typedef unsigned int u16;
typedef unsigned LONG u32;
u8 BUF[256];
u32 gTest00;
u32 gTest01;
u32 gTest02;
u32 gTest03;
u32 gTest04;
u32 gTest05;
u32 gTest06;
u32 gTest07;
u32 gTest08;
u32 gTest09;
然后这些变量在main中赋值
编译后查看main.lss
发现有这类传送:
...
sts 0x0284 r24;
...
8515的SRAM地址是0x0060-0x025F,0x0260后是外部SRAM
那么说明有些全局变量定义在外SRAM中。
但WinAVR好象没什么警告,WinAVR中有如何设置避免这种情况?
要使用如此大的数组,是不是一定要加SRAM,有其他办法?
我现在的办法是手动把全局变量放到指定的SRAM中,但担心影响普通变量。

2楼: >>参与讨论
zsmbj
不会出现你所说的现象。估计你的变量总数超过了512字节。
 
3楼: >>参与讨论
winsu
当然函数中还有其他很多临时变量,
当然函数中还有其他很多临时变量,

4楼: >>参与讨论
mxh0506
RAM不够用当然要扩
512字节可不全是给变量用的,堆栈还要占一部分呢

5楼: >>参与讨论
zsmbj
临时变量和全局变量超过了512BYTE了。
 
参与讨论
昵称:
讨论内容:
 
 
相关帖子
请教版主关于AT90S4434的复位
mega16中断向量重定位的问题.
请问哪有介绍AT29S8252资料的?这个网站没有啊
请教各位:奇怪的问题
AtmanAVR向导生成程序的一个错误!
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号