[其它应用] 51单片机实现BootLoader功能

[复制链接]
2497|8
 楼主| tpgf 发表于 2024-8-1 17:13 | 显示全部楼层 |阅读模式
本文以中颖51单片机为例实现BootLoader功能,该单片机硬件资源RAM为 1KB,ROM为16KB。

1.Flash资源划分,前4KB为BootLoader区,地址为0x0000-0x0FFF。后12KB为APP区,地址为0x1000-0x3FFF。



2.BootLoader区。(一般不能采用中断编写程序)

a.创建keil C51项目,将项目的可用地址范围修改0x0000-0x0FFF。如下图所示



b.修改A51启动文件在里面添加相应的中断跳转地址

                ORG      0003H
                LJMP     1003H

                ORG      000BH
                LJMP     100BH

                ORG      0013H
                LJMP     1013H

                ORG      001BH
                LJMP     101BH

                ORG      0023H
                LJMP     1023H

                ORG      002BH
                LJMP     102BH

                ORG      002BH
                LJMP     102BH

                ORG      0033H
                LJMP     1033H

                ORG      004BH
                LJMP     104BH

                ORG      0053H
                LJMP     1053H

                ORG      005BH
                LJMP     105BH

                ORG      0063H
                LJMP     1063H

                ORG      0073H
                LJMP     1073H

具体以使用单片机的中断源数量为基准有多少修改多少,比如这里将0x0003 INT0向量的地址跳转到0x1000地址(APP区地址)。这里插个题外话,由于51单片机中断向量地址固定,所以采用跳转方式实现中断地址重映射。

c.取消勾选中断向量地址,即可编写BootLoader区域的代码。



3.APP区。

a.创建keil C51项目,将项目的可用地址范围修改0x1000-0x3FFF。如下图所示



b.修改A51启动文件,如下图所示将启动地址修改为0x1000。



c.将中断向量地址修改为0x1000。



4.实现以上2个项目的创建即可在51单片机上实现BootLoader功能,当然还要编写上位机来导入我们的hex文件,具体详细将在以后讲解说明。
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_42088372/article/details/140817816

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
gouguoccc 发表于 2024-8-2 08:15 来自手机 | 显示全部楼层
8位机意义不大
药无尘 发表于 2024-8-6 10:26 | 显示全部楼层
8位机有必要搞这个吗
 楼主| tpgf 发表于 2024-8-9 13:04 | 显示全部楼层

请问为什么说8位机的意义不大呢
keaibukelian 发表于 2024-8-9 20:01 | 显示全部楼层
如果使用c语言的话 可以使用相对地址来操作吗
八层楼 发表于 2024-8-12 21:32 | 显示全部楼层
实现这个功能必须要使用汇编语言吗
heimaojingzhang 发表于 2024-8-14 15:11 | 显示全部楼层
中断的跳转地址是可以自行更改的吗
观海 发表于 2024-8-14 18:05 | 显示全部楼层
无论上是哪种单片机实现bootloader功能,基本上步骤都不会变化吧
guanjiaer 发表于 2024-8-14 18:05 | 显示全部楼层
bootloader区的大小是固定的 不可更改的吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2384

主题

17635

帖子

21

粉丝
快速回复 在线客服 返回列表 返回顶部