原创 avr的flash和ram存放的数据问题

2009-10-21 22:36 2962 4 6 分类: MCU/ 嵌入式

        avr单片机是基于哈佛结构,它的程序存储器和数据存储器分开。
avr的Flash存储器空间存放的内容有:
(1)text:程序代码区
(2)interrupt vectors:存放中断向量
(3)fun_lit:函数列表区。函数列表区包含了函数的入口地址。
(4)lit:整型数和浮点数常量区。存放的是程序中的常量数据。
(5)idata:全局变量和字符串的初始值存放在该区。


avr的RAM数据内存中存放的内容有:
1)data: 存放全局变量、静态变量和字符串。(注意:全局变量和字符 串的初始值保存在Flash中的idata区域,在启动时被复制到RAM中)
2)bss:包括未初始化的全局变量。avr中的EEPROM存放的是HEX文件。
        AVR系列的SRAM和Flash的结构 SRAM实际上就是AVR的内存,运算只能通过32个工作寄存器,而SRAM在这个过程中起到保存数据的作用。
        在做简单的工程的时候,你使用的变量可能只需要用的寄存器就足够了,但是在比较复杂的工程下,就要频繁的进行寄存器和SRAM之间的数据交换了。
      如果你是使用汇编进行工作,此时你需要知道的是AVR的地址空间分配,对SRAM的操作的汇编指令等,而如果是使用C编译器,知道这些,能有帮助你优化你的程序。
        所有的地址空间能被直接或者间接的寻址。
直接寻址:
        在要保存(加载)数据到(从)你所指定的直接地址的时候,你可以使用sts、lds指令。
         ldi r16,0x55      ;r16装入立即数0x55
         sts 0x0190,r16 ;把r16里的数据保存在SRAM中地址为0x190的地方 
         lds r16,0x0190 ;把SRAM中地址为190的数据装入r16
 间接寻址
       
可以象C或者Pascal里的指针那样操作,这些相应的寄存器我们在上一节提到过,就是32个寄存器里的(R26,R27)X,(R28,R29)Y,(R30,R31)Z。
        还是以地址0x0190为例子
               ldi XL, 0x90 ;加载目标地址的低位
               ldi XH, 0x01 ;加载目标地址的高位
               ld  r16, X ;把目标地址的数据加载到r16
        间接寻址的加载和存储和直接的指令是不一样的,间接的只能使用ls和st来执行。
        AVR的地址空间是由3个主要部分构成的:32个寄存器、I/O寄存器(UART、TIME、等等)、内部SRAM。
        另外不同的编译软件对FLASH中的变量定义方法不一样。

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

用户276134 2013-6-13 15:02

“avr中的EEPROM存放的是HEX文件。”这个不太明白,eeprom不应该存放的是用户存的数据吗?

用户276134 2013-6-13 14:57

挺清楚的
相关推荐阅读
用户185936 2009-11-25 12:08
AMBA、AHB、APB总线简介
AMBA、AHB、APB总线简介AMBA简介        随着深亚微米工艺技术日益成熟,集成电路芯片的规模越来越大。数字IC从基于时序驱动的设计方法,发展到基于IP复用的设计方法,并在SOC设计中得...
用户185936 2009-11-25 12:07
0欧姆电阻的作用
0欧姆电阻的作用1,在电路中没有任何功能,只是在PCB上为了调试方便或兼容设计等原因。2,可以做跳线用,如果某段线路不用,直接不贴该电阻即可(不影响外观)。3,在匹配电路参数不确定的时候,以0欧姆代替...
用户185936 2009-08-29 17:47
"C51+RF" 非法关键字?
        今天在网上看到一篇关于无线网络的文章,想转帖收藏,点击发布日志之后总是报“存在非法关键字”的错误,无法发表。感觉很是奇怪,仔细看了几遍也没发现有什么敏感字眼。为了找出所谓的“非法关键字...
用户185936 2009-08-01 15:39
SPI总线接口
SPI总线接口 1. SPI总线概述        串行外围设备接口SPI(serial peripheral interface)总线技术是Motorola公司推出的一种同步串行接口,Motorol...
用户185936 2009-07-28 22:50
zigbee芯片厂家对比
zigbee芯片厂家对比2008年04月12日 星期六 10:27一、ZigBee无线技术一鸣惊人          ZigBee是一种崭新的,专注于低功耗、低成本、低复杂度、低速率的近程无线网络通信...
EE直播间
更多
我要评论
2
4
关闭 站长推荐上一条 /3 下一条