一种基于精简8051MCU的SFR设计方法技术

技术编号:15188408 阅读:42 留言:0更新日期:2017-04-19 13:48
本发明专利技术公开了一种基于精简8051MCU的SFR设计方法,主程序运行过程中,若发生了中断,MCU跳转至中断子程序处理中断,此时若使用了SFR自动堆栈功能(EN置1),硬件便自动将PGCON寄存器压栈(即PGCON_LV2保存至PGCON_LV3、PGCON_LV1保存至PGCON_LV2、PGCON_LV0保存至PGCON_LV1、PGCON保存至PGCON_LV0)。本发明专利技术的有益效果是:1、通过分页增加特殊寄存器的地址空间,支持更多的外部设备,增强系统功能;2、通过堆栈的方法,中断处理时硬件自动保存现场和恢复现场,提高了工作效率;3、分页寄存器堆栈深度为4,支持4层中断嵌套的现场保存和恢复;4、堆栈中所有地址均允许软件修改,提高了软件开发的灵活性。

【技术实现步骤摘要】

本专利技术涉及MCU
,具体是一种基于精简8051MCU的SFR设计方法。
技术介绍
随着单片机SOC系统不断地强大,集成的外部设备越来越多,需要的特殊寄存器地址也超过了MCU单页的最大容量128个(地址从0x80至0xff)。现有技术偶有采用特殊寄存器分页的方法,通过分页控制寄存器来选择不同的寄存器页码,用这种方法增加了寄存器容量。KeilC51是51系列兼容单片机C语言软件开发系统,本文中提到的精简8051MCU正是使用KeilC51来完成C语言开发。当系统发生中断时,Keil并不自动保存分页控制寄存器,必须软件手动保存现场和恢复现场,以确保访问不同页的寄存器访问正确,因此便降低了中断处理的效率。
技术实现思路
本专利技术的目的在于提供一种基于精简8051MCU的SFR设计方法,以解决上述
技术介绍
中提出的问题。为实现上述目的,本专利技术提供如下技术方案:一种基于精简8051MCU的SFR设计方法,主程序运行过程中,若发生了中断,MCU跳转至中断子程序处理中断,此时若使用了SFR自动堆栈功能(EN置1),硬件便自动将PGCON寄存器压栈(即PGCON_LV2保存至PGCON_LV3、PGCON_LV1保存至PGCON_LV2、PGCON_LV0保存至PGCON_LV1、PGCON保存至PGCON_LV0);当中断子程序执行完毕,返回主程序时,硬件便自动将PGCON寄存器弹栈(即PGCON_LV0保存至PGCON、PGCON_LV1保存至PGCON_LV0、PGCON_LV2保存至PGCON_LV1、PGCON_LV3保存至PGCON_LV2),使得分页控制寄存器返回到进入该中断之前的值,从而保证了寄存器正常访问。作为本专利技术的优选方案:堆栈最高便支持4层硬件堆栈。作为本专利技术的优选方案:所有堆栈地址(PGCON、PGCON_LV0、PGCON_LV1、PGCON_LV2、PGCON_LV3)的值均支持软件修改,允许中断返回时SFR更新至预期的页码。与现有技术相比,本专利技术的有益效果是:1、通过分页增加特殊寄存器的地址空间,支持更多的外部设备,增强系统功能;2、通过堆栈的方法,中断处理时硬件自动保存现场和恢复现场,提高了工作效率;3、分页寄存器堆栈深度为4,支持4层中断嵌套的现场保存和恢复;4、堆栈中所有地址均允许软件修改,提高了软件开发的灵活性。附图说明图1为MCU内存地址映射图;图2为本专利技术内存地址映射图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参阅图1-2,一种基于精简8051MCU的SFR设计方法,主程序运行过程中,若发生了中断,MCU跳转至中断子程序处理中断,此时若使用了SFR自动堆栈功能(EN置1),硬件便自动将PGCON寄存器压栈(即PGCON_LV2保存至PGCON_LV3、PGCON_LV1保存至PGCON_LV2、PGCON_LV0保存至PGCON_LV1、PGCON保存至PGCON_LV0);当中断子程序执行完毕,返回主程序时,硬件便自动将PGCON寄存器弹栈(即PGCON_LV0保存至PGCON、PGCON_LV1保存至PGCON_LV0、PGCON_LV2保存至PGCON_LV1、PGCON_LV3保存至PGCON_LV2),使得分页控制寄存器返回到进入该中断之前的值,从而保证了寄存器正常访问。堆栈最高便支持4层硬件堆栈。所有堆栈地址(PGCON、PGCON_LV0、PGCON_LV1、PGCON_LV2、PGCON_LV3)的值均支持软件修改,允许中断返回时SFR更新至预期的页码。本专利技术的工作原理是:MCU内存分为三部分,包括片内RAM、片外RAM和SFR。SFR部分为特殊功能寄存器,供给外设使用,地址从0x80至0xff至多容纳128个SFR地址。当单片机集成了更多的外部设备之后,方案中采用了SFR分页的方法,将地址扩展至128*4个SFR地址,开发者通过软件编写PGCON(分页控制寄存器)来选择SFR页码。主程序运行过程中,若发生了中断,MCU跳转至中断子程序处理中断,此时若使用了SFR自动堆栈功能(EN置1),硬件便自动将PGCON寄存器压栈(即PGCON_LV2保存至PGCON_LV3、PGCON_LV1保存至PGCON_LV2、PGCON_LV0保存至PGCON_LV1、PGCON保存至PGCON_LV0),由于单片机中最高支持4层中断嵌套,这里的堆栈最高便支持4层硬件堆栈。当中断子程序执行完毕,返回主程序时,硬件便自动将PGCON寄存器弹栈(即PGCON_LV0保存至PGCON、PGCON_LV1保存至PGCON_LV0、PGCON_LV2保存至PGCON_LV1、PGCON_LV3保存至PGCON_LV2),使得分页控制寄存器返回到进入该中断之前的值,从而保证了寄存器正常访问。为了更灵活的支持软件应用,所有堆栈地址(PGCON、PGCON_LV0、PGCON_LV1、PGCON_LV2、PGCON_LV3)的值均支持软件修改,允许中断返回时SFR更新至预期的页码。此方案中所用的方法,相比于软件保存现场和恢复现场的做法,明显提高了中断处理的效率,同时减少了软件开发的工作量。本专利技术通过分页增加了寄存器的最大容量,把分页数量提高到4页,从而使MCU系统支持更多的外部设备,功能也更加强大;通过分页控制寄存器,来选择不同的寄存器,为了提高中断处理效率,此方案采用了硬件自动保存现场和恢复现场,确保处理中断子程序之后,寄存器的页码访问正确。本文档来自技高网...
一种基于精简8051MCU的SFR设计方法

【技术保护点】
一种基于精简8051MCU的SFR设计方法,其特征在于,主程序运行过程中,若发生了中断,MCU跳转至中断子程序处理中断,此时若使用了SFR自动堆栈功能(EN置1),硬件便自动将PGCON寄存器压栈(即PGCON_LV2保存至PGCON_LV3、PGCON_LV1保存至PGCON_LV2、PGCON_LV0保存至PGCON_LV1、PGCON保存至PGCON_LV0);当中断子程序执行完毕,返回主程序时,硬件便自动将PGCON寄存器弹栈(即PGCON_LV0保存至PGCON、PGCON_LV1保存至PGCON_LV0、PGCON_LV2保存至PGCON_LV1、PGCON_LV3保存至PGCON_LV2),使得分页控制寄存器返回到进入该中断之前的值,从而保证了寄存器正常访问。

【技术特征摘要】
1.一种基于精简8051MCU的SFR设计方法,其特征在于,主程序运行过程中,若发生了中断,MCU跳转至中断子程序处理中断,此时若使用了SFR自动堆栈功能(EN置1),硬件便自动将PGCON寄存器压栈(即PGCON_LV2保存至PGCON_LV3、PGCON_LV1保存至PGCON_LV2、PGCON_LV0保存至PGCON_LV1、PGCON保存至PGCON_LV0);当中断子程序执行完毕,返回主程序时,硬件便自动将PGCON寄存器弹栈(即PGCON_LV0保存至PGCON、PGCON_LV1保存...

【专利技术属性】
技术研发人员:叶媲舟涂柏生
申请(专利权)人:深圳市博巨兴实业发展有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1