历史上的今天
返回首页

历史上的今天

今天是:2024年11月02日(星期六)

2021年11月02日 | ATmega128 堆栈指针

2021-11-02 来源:eefocus

堆栈指针主要用来保存临时数据,局部变量和中断/ 自程序的返回地址。堆栈指针总是指 向堆栈的顶部。要注意AVR 的堆栈是向下生长的,即新数据推入堆栈时,堆栈指针的数 值将减小。


堆栈指针指向位于SRAM 的函数及中断堆栈。堆栈空间必须在调用函数或中断使能之前 定义。指针必须指向高于$60 的地址。用PUSH 指令推数据入栈时,堆栈指针将减一, 而当调用函数或中断时,指针将减二。使用POP 指令时,堆栈指针将加一,而用RET 或 RETI 返回时,指针将加二。


AVR堆栈指针占用了I/O空间两个8位寄存器。使用的位数由实际情况决定。注意,在AVR 结构中某些操作使用的数据空间很小,只要SPL 即可 ,此时,不会给出SPH 寄存器。


RAM 页面的Z 选择寄存器-RAMPZ

ATmega128 RAMPZ

• Bits 7..2 – Res: 保留
保留位,读操作返回值为零。在写数据时要写入0 以保证与未来产品的兼容。

• Bit 1 – RAMPZ0: 扩展RAM 页面Z 指针
RAMPZ 寄存器用于选择Z 指针访问的是哪一个64K RAM。由于ATmega128 不支持超过64K的存储器,因此RAMPZ只用来协助ELPM/SPM指令决定访问哪一个程序存储器页。不同的RAMPZ0 的作用如下:
RAMPZ0 = 0: ELPM/SPM 可以访问程序存储器地址$0000 - $7FFF ( 低64K 字节)
RAMPZ0 = 1: ELPM/SPM 可以访问程序存储器地址$8000 - $FFFF ( 高64K 字节)

LPM 不受RAMPZ 设置的影响。


推荐阅读

史海拾趣

Anixter Inc公司的发展小趣事

Anixter Inc 是一家全球性的供应链解决方案提供商,以下是该公司发展的相关故事:

  1. 公司成立与初期发展:Anixter Inc 成立于 1957 年,总部位于美国伊利诺伊州格伦维尔回。最初,公司主要从事电线电缆的销售和分销。随着时间的推移,Anixter 不断扩大业务范围,逐步涉足网络设备、安全解决方案、电子元器件等领域。

  2. 业务拓展与国际化:随着市场需求的变化和全球化的趋势,Anixter 不断拓展业务,并加速国际化进程。公司在全球范围内建立了广泛的分销网络和供应链体系,在北美、欧洲、亚洲和拉丁美洲等地区设立了办事处、仓库和物流中心,以更好地满足客户的需求。

  3. 技术创新与解决方案提供:Anixter 不断注重技术创新和解决方案提供,与各种供应商合作,推出了多种先进的产品和服务。公司致力于为客户提供全方位的供应链解决方案,包括设计、采购、仓储、配送和技术支持等,帮助客户提高效率、降低成本并增强竞争力。

  4. 收购与合并:为了加速业务发展和扩大市场份额,Anixter 进行了一系列收购和合并活动。通过收购具有特定技术或地区优势的公司,Anixter 不仅增强了自身的竞争实力,还拓展了业务领域和市场覆盖范围。

  5. 可持续发展与未来展望:Anixter 积极响应可持续发展的呼声,致力于推动环保和社会责任的实践。公司在供应链管理、能源管理和环境保护等方面持续改进,致力于减少碳排放、资源浪费和环境污染。未来,Anixter 将继续秉承技术创新和客户导向的理念,不断适应市场变化和挑战,保持行业领先地位,并为客户和股东创造持续增长的价值。

鸿展光电(GPO)公司的发展小趣事

在电子行业中,鑫雁公司(这里主要指鑫雁电子科技(上海)有限公司及其后续发展形态,如上海鑫雁微电子股份有限公司)的崛起与发展,伴随着一系列重要的里程碑和战略决策。以下是五个与鑫雁公司发展相关的故事:

1. 初创与立足上海

鑫雁公司始建于2004年(另有说法为2009年或2010年,以最新信息为准,这里采用2010年作为起点),选址于中国之魔都——上海。公司自成立之初便专注于集成电路及相关产品的研发与销售,并迅速在竞争激烈的电子行业中站稳脚跟。得益于上海作为国际大都市的地理位置优势和丰富的产业链资源,鑫雁公司逐渐吸引了一批具有丰富经验的研发和管理人才,为公司后续的发展奠定了坚实的基础。

2. 研发实力积累与技术创新

鑫雁公司的主要研发和管理人员均来自国内知名集成电路设计企业,他们拥有十五年乃至二十年以上的集成电路产品研发经验。公司在多个工艺平台上成功开发了包括霍尔磁传感器电路、电源管理电路等在内的一系列拥有自主知识产权的数模混合集成电路产品,并获得了多项发明专利、实用新型专利和集成电路版图保护专利。这些技术成果不仅提升了公司的核心竞争力,也为公司在市场上赢得了良好的口碑。

3. 全国布局与国际化拓展

随着业务的不断扩展,鑫雁公司开始在全国范围内布局,先后在杭州、西安等地设立了研发机构或技术合作团队,并在江苏、广东等国内主要发达经济区域设立了客户服务的办事处。此外,公司还将目光投向了国际市场,在美国硅谷等地建立了研发合作团队,进一步提升了公司的国际影响力。这种全国乃至全球的布局策略,为公司带来了更多的市场机会和合作伙伴。

4. “无工厂化”模式与品质保障

鑫雁公司采用“无工厂化”(Fabless)的设计公司模式,通过委外加工方式进行生产。公司精心挑选了具有世界先进制造设备和技术的晶圆代工和封装合作伙伴,以确保产品品质的可靠性和充足的市场供应能力。这种灵活的生产模式不仅降低了公司的运营成本,还使公司能够专注于产品研发和市场拓展等核心业务。

5. 持续创新与多元化发展

秉承“提升自我、超越期待”的核心理念,鑫雁公司始终坚持技术创新和多元化发展。公司不断加大技术研发投入,积极探索新产品的开发和推广,逐步形成了以汽车电子为主赛道,并在新能源、工业自动化、消费电子等多个领域深入发展的格局。这些努力不仅丰富了公司的产品线,也进一步提升了公司的市场竞争力。同时,公司还积极与国内外知名企业建立合作关系,共同推动电子行业的发展和进步。

Crystal Semiconductor Corp公司的发展小趣事

近年来,随着人工智能、物联网等新兴技术的快速发展,半导体行业正面临着前所未有的变革。Crystal Semiconductor Corp积极应对这一挑战,加大了对新兴技术的研发投入,推出了一系列适应市场需求的新产品。同时,公司还加强了与上下游企业的合作,共同推动产业链的发展。

DAPAudio公司的发展小趣事

随着数字化和智能化的快速发展,音频处理行业也面临着巨大的变革。DAPAudio积极应对这一变革,不断推出适应市场需求的新产品和技术。通过与科技公司、高校和研究机构的合作,DAPAudio在人工智能、物联网等新兴领域取得了重要突破,为公司未来的发展奠定了坚实的基础。

Cincon公司的发展小趣事

随着业务的快速发展,Cincon开始将目光投向国际市场。1999年,公司在美国加州设立了办事处,以便更好地服务北美市场。同一年,为了应对日益增长的生产需求,Cincon在中国东莞设立了新工厂。这些举措极大地提升了公司的生产能力和国际市场竞争力,为Cincon的全球化发展打下了坚实的基础。

Federal Custom Cable公司的发展小趣事

随着电子行业的快速发展,电缆产品的技术要求也越来越高。Federal Custom Cable不断引进先进的生产设备和技术,提升电缆产品的性能和质量。公司注重研发创新,投入大量资金用于新产品开发和工艺改进。这些努力使得Federal Custom Cable的电缆产品逐渐在行业内树立了高品质、高性能的形象。

问答坊 | AI 解惑

求助谁有4位led共阴(protel99se)封装

求助谁有4位led共阴(protel99se)pcb封装? 小弟先谢谢了!!!…

查看全部问答>

OALPAtoVA出问题吗?寄存器不听使唤了??

我想利用2450的GPB3口的TOUT3功能发出PWM波。 在Kernel/Oal/init.c下的OEMInit()中添加代码。下面是我的代码:     volatile S3C2450_IOPORT_REG *s2450IOP = (S3C2450_IOPORT_REG *)OALPAtoVA(S3C2450_BASE_REG_PA_IOPORT, FALSE); & ...…

查看全部问答>

向大家请教一个编译错误。

我往BSP中加6*6矩阵键盘: 编译出错: BUILD: [01:0000000086:ERRORE] C:\\WINCE600\\PLATFORM\\DEVICEEMULATOR\\src\\drivers\\matrixkey\\.\\MATRIXKEY.cpp(9) : fatal error C1083: Cannot open include file: \'matrixkey.h\': No such file ...…

查看全部问答>

关于C51内置EEPROM的问题

现在需要用EEPROM保存一些参数,程序用KEIL C写的,现在就不知道参数该怎么保存,直接赋值?还是需要其他什么操作 直接赋值的话: .... int xdata canshu; ..... canshu=122; .... 但有个EECON寄存器,不知道需不需要对这个寄存器进行操作? ...…

查看全部问答>

请高手指点---请教并口EPP模式通信的问题

我用电脑并口与51单片机通信的时候,采取的是EPP1.9模式,发现老是nWait=1,不知道什么原因, 有没有这方面的前辈指导一下。感谢不尽。 源码如下: #include /* inp, outp */ #include   /* kbhit() et al  */ #incl ...…

查看全部问答>

FLASH写后,程序在main中跳不出来。

我的写FLASH程序如下: void Flash_write(void) { unsigned z; _DINT(); // 禁止系统中断 Flash_clr(piFLASH); // 擦除信息段B for(z=0;z<4;z++) Flash_ww(piFLAS ...…

查看全部问答>

SOPC自定义外设(LED数码管扫描)的问题

module Display(clk,data,addr,read_en,write_en,data_out,seg,lbit);input clk;input read_en,write_en;input [7:0]data;input [3:0]addr;output [7:0] seg;output [7:0] lbit;output [7:0]data_out;reg [7:0]data_in[7:0];reg [7:0]seg;reg [7:0] ...…

查看全部问答>

【问TI】 EZ2500开发板上那陶瓷天线

是什么型号的,有没有PDF资料。?…

查看全部问答>

不同时延的频率脉冲可以用加法器直接相加么

对于不同时间内到来的频率脉冲信号 可以使用加法器直接进行相加么 要是不行的话 我想将它们相加 应该采用什么方法呢………

查看全部问答>