有没有什么办法可以让我的程序从0xC00这个地址开始存放?

[复制链接]
 楼主| supernan 发表于 2021-6-16 22:03 | 显示全部楼层 |阅读模式
我用的编译器是PICKiT3,现在是写好了一段程序,可以正常运行。正常烧录进去都是从0x200开始存放。然后我想问下有没有什么办法可以让我的程序从0xC00这个地址开始存放?
renyaq 发表于 2021-6-16 22:06 | 显示全部楼层
这个你查查资料,若我没有记错,我记得程序是可以写得
 楼主| supernan 发表于 2021-6-16 22:08 | 显示全部楼层
用程序来制定地址么?好吧我试着找找看。
tian111 发表于 2021-6-16 22:12 | 显示全部楼层
然后呢?你是怎么应对这个的呢        
 楼主| supernan 发表于 2021-6-16 22:14 | 显示全部楼层
其实我是写了个bootloader,然后用户程序希望从0xC00开始存放。
yszong 发表于 2021-6-16 22:16 | 显示全部楼层
什么意思?不是很明白你说的什么,能再解释一下这个现象吗
 楼主| supernan 发表于 2021-6-16 22:18 | 显示全部楼层
但是在编写调试完用户程序后希望把对应的数据流通过表写指令写到0xC00开始的空间里,但是这就涉及到数据流里的偏移量问题
huangchui 发表于 2021-6-16 22:21 | 显示全部楼层
如果是MCU08, 在项目属性里可以直接设置代码起始位置;
wyjie 发表于 2021-6-16 22:24 | 显示全部楼层
MCU16的话就需要修改GLD文件了
yszong 发表于 2021-6-16 22:27 | 显示全部楼层

本帖子中包含更多资源

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

×
stly 发表于 2021-6-16 22:30 | 显示全部楼层
什么问题啊
 楼主| supernan 发表于 2021-6-16 22:37 | 显示全部楼层
毕竟编写调试时是没有bootloader的,所以那时用户程序还是从0x200开始,直接将这部分数据流导入到有bootloader的flash里的话执行就会有错了
 楼主| supernan 发表于 2021-6-16 22:41 | 显示全部楼层
所以才想有没有办法通过设置MPLABX或者XC16编译器来使我编写的用户程序直接增加一定的偏移量,到时就可以直接传入到有bootloader的flash内正常运行。
wyjie 发表于 2021-6-16 22:44 | 显示全部楼层
开发平台MPLAB中可以设置的
dingy 发表于 2021-6-16 22:47 | 显示全部楼层
我只知道汇编有ORG
org   设置程序起始地址
org用以定义程序代码的起始地址,可以通过该伪指令把程序定位在任何可用的程序空间,它实现程序代码的绝对定位,
tian111 发表于 2021-6-16 22:50 | 显示全部楼层

本帖子中包含更多资源

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

×
jiajs 发表于 2021-6-16 22:53 | 显示全部楼层

本帖子中包含更多资源

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

×
 楼主| supernan 发表于 2021-6-16 22:55 | 显示全部楼层
谢谢!!!不过我用的是MPLABX版本,你知道在哪里设置offset么,我好像找不到
 楼主| supernan 发表于 2021-6-16 22:57 | 显示全部楼层
又或者我得换个版本。。。
 楼主| supernan 发表于 2021-6-16 22:59 | 显示全部楼层
谢谢哦,不过这个指令我这个单片机(PIC24F)貌似用不了,所以才想着通过其他方式实现。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

730

主题

10412

帖子

6

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