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

[复制链接]
1273|26
 楼主| supernan 发表于 2020-1-11 21:37 | 显示全部楼层 |阅读模式
我用的编译器是PICKiT3,现在是写好了一段程序,可以正常运行。正常烧录进去都是从0x200开始存放。然后我想问下有没有什么办法可以让我的程序从0xC00这个地址开始存放?
wenfen 发表于 2020-1-11 21:41 | 显示全部楼层
这个你查查资料,若我没有记错,我记得程序是可以写得
 楼主| supernan 发表于 2020-1-11 21:43 | 显示全部楼层
用程序来制定地址么?好吧我试着找找看。
tian111 发表于 2020-1-11 21:48 | 显示全部楼层

然后呢?你是怎么应对这个的呢        
 楼主| supernan 发表于 2020-1-11 21:50 | 显示全部楼层
其实我是写了个bootloader,然后用户程序希望从0xC00开始存放。
zhuww 发表于 2020-1-11 21:55 | 显示全部楼层

什么意思?不是很明白你说的什么,能再解释一下这个现象吗
 楼主| supernan 发表于 2020-1-11 22:01 | 显示全部楼层
但是在编写调试完用户程序后希望把对应的数据流通过表写指令写到0xC00开始的空间里,但是这就涉及到数据流里的偏移量问题
红星照我去战斗 发表于 2020-1-11 22:03 | 显示全部楼层
如果是MCU08, 在项目属性里可以直接设置代码起始位置;
MCU16的话就需要修改GLD文件了


本帖子中包含更多资源

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

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

本帖子中包含更多资源

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

×
gongche 发表于 2020-1-11 22:25 | 显示全部楼层

本帖子中包含更多资源

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

×
 楼主| supernan 发表于 2020-1-11 22:28 | 显示全部楼层
谢谢!!!不过我用的是MPLABX版本,你知道在哪里设置offset么,我好像找不到
 楼主| supernan 发表于 2020-1-11 22:31 | 显示全部楼层
又或者我得换个版本。。。
 楼主| supernan 发表于 2020-1-11 22:33 | 显示全部楼层
谢谢哦,不过这个指令我这个单片机(PIC24F)貌似用不了,所以才想着通过其他方式实现。
happy_10 发表于 2020-1-11 22:37 | 显示全部楼层
就那么点东西,自己原本动动手花点时间就可以找到的  
happy_10 发表于 2020-1-11 22:37 | 显示全部楼层

本帖子中包含更多资源

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

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

730

主题

10412

帖子

6

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