打印
[其它应用]

51单片机实现BootLoader功能

[复制链接]
1311|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位机的意义不大呢

使用特权

评论回复
5
keaibukelian| | 2024-8-9 20:01 | 只看该作者
如果使用c语言的话 可以使用相对地址来操作吗

使用特权

评论回复
6
八层楼| | 2024-8-12 21:32 | 只看该作者
实现这个功能必须要使用汇编语言吗

使用特权

评论回复
7
heimaojingzhang| | 2024-8-14 15:11 | 只看该作者
中断的跳转地址是可以自行更改的吗

使用特权

评论回复
8
guanjiaer| | 2024-8-14 18:05 | 只看该作者
bootloader区的大小是固定的 不可更改的吗

使用特权

评论回复
9
观海| | 2024-8-14 18:05 | 只看该作者
无论上是哪种单片机实现bootloader功能,基本上步骤都不会变化吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1734

主题

15124

帖子

10

粉丝