|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
WinAVR中关于变量与SRAM |
作者:winsu 栏目:单片机 |
例用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 于 2004/3/24 19:43:00 发布:
不会出现你所说的现象。估计你的变量总数超过了512字节。 |
3楼: | >>参与讨论 |
作者: winsu 于 2004/3/25 13:57:00 发布:
当然函数中还有其他很多临时变量, 当然函数中还有其他很多临时变量, |
4楼: | >>参与讨论 |
作者: mxh0506 于 2004/3/26 20:38:00 发布:
RAM不够用当然要扩 512字节可不全是给变量用的,堆栈还要占一部分呢 |
5楼: | >>参与讨论 |
作者: zsmbj 于 2004/3/27 15:52:00 发布:
临时变量和全局变量超过了512BYTE了。 |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |