打印

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

[复制链接]
1538|31
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我用的编译器是PICKiT3,现在是写好了一段程序,可以正常运行。正常烧录进去都是从0x200开始存放。然后我想问下有没有什么办法可以让我的程序从0xC00这个地址开始存放?

使用特权

评论回复
沙发
renyaq| | 2021-6-16 22:06 | 只看该作者
这个你查查资料,若我没有记错,我记得程序是可以写得

使用特权

评论回复
板凳
supernan|  楼主 | 2021-6-16 22:08 | 只看该作者
用程序来制定地址么?好吧我试着找找看。

使用特权

评论回复
地板
tian111| | 2021-6-16 22:12 | 只看该作者
然后呢?你是怎么应对这个的呢        

使用特权

评论回复
5
supernan|  楼主 | 2021-6-16 22:14 | 只看该作者
其实我是写了个bootloader,然后用户程序希望从0xC00开始存放。

使用特权

评论回复
6
yszong| | 2021-6-16 22:16 | 只看该作者
什么意思?不是很明白你说的什么,能再解释一下这个现象吗

使用特权

评论回复
7
supernan|  楼主 | 2021-6-16 22:18 | 只看该作者
但是在编写调试完用户程序后希望把对应的数据流通过表写指令写到0xC00开始的空间里,但是这就涉及到数据流里的偏移量问题

使用特权

评论回复
8
huangchui| | 2021-6-16 22:21 | 只看该作者
如果是MCU08, 在项目属性里可以直接设置代码起始位置;

使用特权

评论回复
9
wyjie| | 2021-6-16 22:24 | 只看该作者
MCU16的话就需要修改GLD文件了

使用特权

评论回复
10
yszong| | 2021-6-16 22:27 | 只看该作者

使用特权

评论回复
11
stly| | 2021-6-16 22:30 | 只看该作者
什么问题啊

使用特权

评论回复
12
supernan|  楼主 | 2021-6-16 22:37 | 只看该作者
毕竟编写调试时是没有bootloader的,所以那时用户程序还是从0x200开始,直接将这部分数据流导入到有bootloader的flash里的话执行就会有错了

使用特权

评论回复
13
supernan|  楼主 | 2021-6-16 22:41 | 只看该作者
所以才想有没有办法通过设置MPLABX或者XC16编译器来使我编写的用户程序直接增加一定的偏移量,到时就可以直接传入到有bootloader的flash内正常运行。

使用特权

评论回复
14
wyjie| | 2021-6-16 22:44 | 只看该作者
开发平台MPLAB中可以设置的

使用特权

评论回复
15
dingy| | 2021-6-16 22:47 | 只看该作者
我只知道汇编有ORG
org   设置程序起始地址
org用以定义程序代码的起始地址,可以通过该伪指令把程序定位在任何可用的程序空间,它实现程序代码的绝对定位,

使用特权

评论回复
16
tian111| | 2021-6-16 22:50 | 只看该作者

使用特权

评论回复
17
jiajs| | 2021-6-16 22:53 | 只看该作者

使用特权

评论回复
18
supernan|  楼主 | 2021-6-16 22:55 | 只看该作者
谢谢!!!不过我用的是MPLABX版本,你知道在哪里设置offset么,我好像找不到

使用特权

评论回复
19
supernan|  楼主 | 2021-6-16 22:57 | 只看该作者
又或者我得换个版本。。。

使用特权

评论回复
20
supernan|  楼主 | 2021-6-16 22:59 | 只看该作者
谢谢哦,不过这个指令我这个单片机(PIC24F)貌似用不了,所以才想着通过其他方式实现。

使用特权

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

本版积分规则

730

主题

10412

帖子

6

粉丝