历史上的今天
返回首页

历史上的今天

今天是:2025年02月19日(星期三)

正在发生

2020年02月19日 | avr的flash和ram存放的数据问题

2020-02-19 来源:eefocus

简介:本文介绍了AVR单片机内flash和RAM存放数据的区别以及使用等内容。


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中的变量定义方法不一样。

推荐阅读

史海拾趣

CST Master Electronic Co Ltd公司的发展小趣事

在国内市场取得一定成绩后,CST Master决定进军国际市场。然而,国际市场的竞争更加激烈,法律法规和文化差异也给公司带来了不小的挑战。公司积极调整市场策略,加强与当地合作伙伴的合作,逐步打开了国际市场的大门。通过不断的努力,CST Master在国际市场上也取得了一定的份额。

德欣(COV)公司的发展小趣事

面对电子行业的快速发展和市场竞争的加剧,德欣公司始终将技术创新作为发展的核心动力。公司不断加大研发投入,引进先进的生产设备和技术人才,加强与高校和科研机构的合作。通过不断的技术创新和产品升级,德欣公司在保持传统产品优势的同时,也成功拓展了新的业务领域,实现了产业升级和可持续发展。

Conexcon Group公司的发展小趣事

面对日益激烈的市场竞争,Conexcon Group积极寻求与国内外知名企业的战略合作。通过与行业巨头的联合研发和市场推广,公司成功将自身产品推向了更广阔的市场。同时,这些合作也为公司带来了先进的技术和管理经验,进一步提升了公司的核心竞争力。在合作中,Conexcon Group始终坚持开放、共赢的原则,与合作伙伴共同推动电子行业的发展。

Heyco公司的发展小趣事

Heyco公司成立于1906年(部分资料提及为1926年或1937年,这里以多个资料综合为准),最初在德国柏林成立。起初,公司专注于制造手工工具,随着汽车工业的兴起,Heyco迅速转型为汽车装配线所需工具的生产商。在二战后,Heyco抓住了汽车工业快速发展的机遇,进一步扩大了生产规模,不仅为德国本土汽车制造商如宝马、奥迪、大众和梅赛德斯奔驰提供定制工具,还逐渐拓展到国际市场。这一时期,Heyco凭借其高质量的产品和卓越的服务赢得了市场的广泛认可。

爱普特半导体(APTSEMI)公司的发展小趣事

爱普特半导体的产品因其卓越的性能和稳定的质量,赢得了众多大型企业的青睐。公司与小米、美的、阿里、LG等多家知名企业建立了战略合作关系。这些合作不仅为爱普特带来了稳定的订单和市场份额,还提升了公司的品牌影响力和行业地位。通过与这些企业的深度合作,爱普特不断吸收行业最新技术和管理经验,推动了自身技术水平和市场竞争力的提升。

DREMEL公司的发展小趣事

在电子行业的快速发展中,Dremio公司以其独特的数据治理技术崭露头角。他们开发了一种新型的数据处理引擎,能够直接在云数据湖中查询和分析数据,无需将数据复制到专有数据仓库中。这一创新技术大大提高了数据处理效率,降低了成本,并为企业提供了更灵活的数据管理方式。Dremio凭借这一技术,迅速在电子行业中树立了领先地位。

问答坊 | AI 解惑

STM32的USART发送数据时如何使用TXE和TC标志

在USART的发送端有2个寄存器,一个是程序可以看到的USART_DR寄存器(下图中阴影部分的TDR),另一个是程序看不到的移位寄存器(下图中阴影部分Transmit Shift Register)。 对应USART数据发送有两个标志,一个是TXE=发送数据寄存器空,另一个是TC=发送 ...…

查看全部问答>

摩托罗拉电子设计大赛优秀作品(六)

本帖最后由 paulhyde 于 2014-9-15 08:55 编辑  …

查看全部问答>

求助,懂硬件配置的请进!

大虾们,这样的配置怎么样? AMAX供应商给我的配置, CPU:intel Xeon 5504 硬盘:250G SATA 内存:12G 显卡:Tesla C1060  &  Quadro FX380 最近在选型,大家帮忙参谋参谋,我导师让我买台做教学实验用。他们给的价格 ...…

查看全部问答>

鼠年最后一张帖

在eeworld又度过了一年,学到了不少的东西,谢谢帮助过我的朋友,也谢谢顶帖的朋友!…

查看全部问答>

求Wince下OV2640驱动的源码

哪个达人有啊,帮帮忙。。 邮箱:lhl8502@tom.com…

查看全部问答>

关于编译mame的问题

我在编译mamece3的时候出现如下错误 LINK : fatal error LNK1104: cannot open file \'subsystem:windowsce,4.00\' 请问高手如何解决这个问题,谢谢…

查看全部问答>

大家帮看看413控制串口的程序

这是在TI网站找到的例程: // // MSP430F413 // ----------------- // /|\\| XIN|- // | | | 32kHz // --|RST XOUT|- // | ...…

查看全部问答>

盐雾对材料腐蚀研究

盐雾对材料腐蚀研究腐蚀是材料或其性能在环境的作用下引起的破坏或变质。大多数的腐蚀发生在大气环境中,大气中含有氧气、湿度、温度变化和污染物等腐蚀成分和腐蚀因素。盐雾腐蚀就是一种常见和最有破坏性的大气腐蚀。这里讲的盐雾是指氯化物的 ...…

查看全部问答>

模拟芯片设计的四重境界(转载)

从复旦攻读微电子专业模拟芯片设计方向研究生开始到现在五年工作经验,已经整整八年了,其间聆听过很多国内外专家的指点。最近,应朋友之邀,写一点心得体会和大家共享。 我记得本科刚毕业时,由于本人打算研究传感器的,后来阴差阳错进了复旦 ...…

查看全部问答>

MSP430f4152无法烧写程序的问题

用IAR给MSP430f4152烧写程序,总提示找不到单片机。仿真器用的UIF。 出错信息是: IarIdePm The debugging session could not be started。 Either the debugger initialization failed,or else the file \"F:\\Examination\\E-Meter\\Debug\\ ...…

查看全部问答>