AVR单片机的boot代码区是什么意思?

AVR单片机的boot代码区是什么意思?,第1张

某些avr芯片,内置的flash程序存皮信储器可以分为两块纯晌逻辑区:boot区和app区,boot区中的程序可以使用spm指令燃裤轮修改app区的内容(程序或数据),但app区的程序就不能修改boot区中的内容。

这种机制主要是为了方便地更新或升级flash中的程序,你可以通过可用的通信接口(比如串口等等),把更新的程序接收到RAM中,然后使用boot区中的程序烧写app。

当然,boot在出厂时是空的,你必须通过isp或并口编程器把boot程序写烧进boot区。

刚开始学单片机不要或滚去动boot区。里面驻留的晌哗通常是厂家写入的导引程序,配合厂家或第三方PC软件实现对单片机的调试,烧写等功能。当你有能力自衫谨余己写boot程序了,再去研究如何使用boot区吧。

AT89S51单片机是由英特尔公司设计的一款8位微控制器,采用低功耗CMOS工艺,具有高性能、高可靠性、易于编程和广泛应用等特点。在AT89S51单片机中,程序通常从0030H单元开始存放,这是由芯片内部的特殊设计所决定的。AT89S51单片机的内部结构由程序存储器、数据存储器、中断系统、定时器/计数器、串行口、并行口等组成。其中程序存储器的地址范围是0000H~7FFFH,共32KB。为了方便编程和调试,AT89S51单片机的程序存储器采用了按照16字节为一段的分页方式,每页对应一个地址范围。具体来说,程序存储器被分为256页,每哗数页包含16个字节,每个字节8位,总共可以存储256*16*8=32KB的程序。

在AT89S51单片机中,程序存储器有两个特殊的页,分别是00H~1FH和20H~2FH,它们被称为“boot loader区域”。这两个区域共占64字节用于存储启动程序或者初始化程序,用于检测外部存储器或者其他外设的状态,以便后续程序的正常执行。这两个区域位于程序存储器的前面从0000H到003FH的地址范围内,其中从0030H开始的32字节 (2页) 被预留乱竖首出来,用于存储启动程序或者初始化程序。因此,AT89S51单片机的程序通常从0030H单元开始存放,这样可以避免覆盖boot loader区域纤轿,保证程序正常执行。总之,AT89S51单片机程序经常从0030H单元开始存放,是由芯片内部的特殊设计所决定的,主要是为了保证程序的正常执行和系统的稳定性。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12517783.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存