ATmega128的SRAM结构和编程注意事项

本文详细介绍了ATmega128微控制器的SRAM结构,并提出了编程时的重要注意事项,包括如何有效利用内存空间,以及在特定情况下违反常规以简化程序的方法。
摘要由CSDN通过智能技术生成

  泉注:某些注意事项在特定条件下还是要违反的,为了程序方便。

 

1、 SRAM的结构
工作寄存器区包括32个8位寄存器。编译器使用了R0、R1、R22~R31。R2~R15中的一些寄存器可能会用来存放全局位变量;剩下的寄存器会分配给全局字符串变量和全局整形变量。R16~R21分配给局部字符型变量和局部整形变量。
I/O寄存器区包括64个CPU外围功能地址。
数据对战区用于动态存储变量、传递函数参数,以及中断期间保存R0、R1、R22~R31和SREG的内容。
数据堆栈区指针使用Y指针寄存器。数据堆栈指针的初始值为5Fh+数据对战长度。在数据堆栈保存数据时,数据堆栈指针是递减的。在配置编译选项时,必须分配足够的堆栈空间。
0
           工作寄存器                                          
20h
           I/O寄存器
60h
           栈底数据堆栈
 
60h+数据堆栈长度
           全局变量
 
60h+数据堆栈长度+全局变量长度        
栈底硬件堆栈                    //存放寒暑返回地址,SP寄存器是堆栈指针,初始值为//SRAM的尾部地址. <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值