这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » WinAVR,SRAM WinAVR中关于变量与SRAM

共9条 1/1 1 跳转至

WinAVR,SRAM WinAVR中关于变量与SRAM

院士
2006-09-17 18:14:16     打赏
WinAVR,SRAM WinAVR中关于变量与SRAM



关键词: WinAVR     关于     变量    

院士
2006-12-22 22:43:00     打赏
2楼
问 例用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中,但担心影响普通变量。 1: 不会出现你所说的现象。估计你的变量总数超过了512字节。 2: 当然函数中还有其他很多临时变量,当然函数中还有其他很多临时变量, 3: RAM不够用当然要扩512字节可不全是给变量用的,堆栈还要占一部分呢 4: 临时变量和全局变量超过了512BYTE了。

专家
2022-10-16 16:38:43     打赏
3楼

学习一下


高工
2022-10-16 19:36:05     打赏
4楼
感谢分享

工程师
2022-10-19 23:58:57     打赏
5楼

讲解的蛮不错的


专家
2022-10-20 00:59:16     打赏
6楼

感谢分享


高工
2022-10-20 08:32:44     打赏
7楼

谢谢分享


助工
2022-10-20 08:59:38     打赏
8楼

感谢分享


工程师
2022-10-20 23:54:14     打赏
9楼

讲解的不错的


共9条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]