打印
[开发工具]

怎么让程序烧录到指定FLASH地址空间

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

来自 2楼
青鸟的虚像|  楼主 | 2015-8-31 13:37 | 只看该作者
yklstudent 发表于 2015-8-28 11:26
就那么点东西,自己原本动动手花点时间就可以找到的

谢谢你之前的耐心帮忙。我也终于找到XC16编译器设置偏移量的方法了!!!
相对XC8会隐蔽的多,安装好XC16之后,默认烧录程序是烧录到0x200.假如需要自定义烧录到某个地址(如0xC00),
1.需打开如下路径“D:\Program\Microchip\xc16\v1.24\support\PIC24F\gld”,注意,前面的D盘和Program文件夹是我自己创立的,关键是看你安装时安装在哪。
2.由于我是使用PIC24F单片机,所以接下来依次打开“PIC24F”文件夹和“gld”文件夹,打开之后会有许多“.gld”后缀的文件。
3.将对应你单片机型号的文件拖到MPLABX中打开,如我是PIC24FJ128GC006,所以打开的是“p24FJ128GC006.gld”这个文件。
4.找到MEMORY这部分内容,如下图。5.将圈起来的两处修改为希望烧录的地址,如我就是修改成0xC00.保存一下,再重新烧录以下你的程序,你会发现程序顺利烧录到0xC00处开始了。(可以通过MPLABX的READ DEVICE MEMORY操作然后打开菜单window>>PIC Memory Views>>Program Memory查看。)

DXFQ_9}Y3E){){)]7X%%{KM.png (40.82 KB )

DXFQ_9}Y3E){){)]7X%%{KM.png

使用特权

评论回复
板凳
dogglove| | 2015-8-27 15:36 | 只看该作者
这个你查查资料,若我没有记错,我记得程序是可以写得

使用特权

评论回复
地板
青鸟的虚像|  楼主 | 2015-8-27 17:04 | 只看该作者
dogglove 发表于 2015-8-27 15:36
这个你查查资料,若我没有记错,我记得程序是可以写得

用程序来制定地址么?好吧我试着找找看。
其实我是写了个bootloader,然后用户程序希望从0xC00开始存放。
但是在编写调试完用户程序后希望把对应的数据流通过表写指令写到0xC00开始的空间里,但是这就涉及到数据流里的偏移量问题(毕竟编写调试时是没有bootloader的,所以那时用户程序还是从0x200开始,直接将这部分数据流导入到有bootloader的flash里的话执行就会有错了)。
所以才想有没有办法通过设置MPLABX或者XC16编译器来使我编写的用户程序直接增加一定的偏移量,到时就可以直接传入到有bootloader的flash内正常运行。

使用特权

评论回复
5
yklstudent| | 2015-8-27 20:49 | 只看该作者
开发平台MPLAB中可以设置的

使用特权

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

使用特权

评论回复
7
youss| | 2015-8-27 22:17 | 只看该作者
...

使用特权

评论回复
8
yklstudent| | 2015-8-28 08:30 | 只看该作者
看图说话

使用特权

评论回复
9
青鸟的虚像|  楼主 | 2015-8-28 09:00 | 只看该作者

谢谢!!!不过我用的是MPLABX版本,你知道在哪里设置offset么,我好像找不到
又或者我得换个版本。。。

使用特权

评论回复
10
青鸟的虚像|  楼主 | 2015-8-28 09:02 | 只看该作者

谢谢哦,不过这个指令我这个单片机(PIC24F)貌似用不了,所以才想着通过其他方式实现。

使用特权

评论回复
11
yklstudent| | 2015-8-28 11:26 | 只看该作者
青鸟的虚像 发表于 2015-8-28 09:00
谢谢!!!不过我用的是MPLABX版本,你知道在哪里设置offset么,我好像找不到
又或者我得换个 ...

就那么点东西,自己原本动动手花点时间就可以找到的

使用特权

评论回复
12
青鸟的虚像|  楼主 | 2015-8-31 08:58 | 只看该作者
yklstudent 发表于 2015-8-28 11:26
就那么点东西,自己原本动动手花点时间就可以找到的

XC8编译器找得到,可是我的是XC16按理应该也找得到,但是我翻了各种设置选项都没看到。网上找到的也都是XC8怎么设置。。。

使用特权

评论回复
13
StevenLau2008| | 2015-9-7 13:45 | 只看该作者

Microchip:

TEL:13148736025
QQ:359920019

使用特权

评论回复
14
kfhzy| | 2016-2-17 15:58 | 只看该作者
青鸟的虚像 发表于 2015-8-31 13:37
谢谢你之前的耐心帮忙。我也终于找到XC16编译器设置偏移量的方法了!!!
相对XC8会隐蔽的多,安装好XC16 ...

谢谢

使用特权

评论回复
15
睡神耗子| | 2017-8-12 13:55 | 只看该作者
青鸟的虚像 发表于 2015-8-31 13:37
谢谢你之前的耐心帮忙。我也终于找到XC16编译器设置偏移量的方法了!!!
相对XC8会隐蔽的多,安装好XC16 ...

谢谢楼主。我最近也想做bootloader。
时间挺久了,不知道还能回答吧,请教楼主两个问题。
不知道楼主知道MPLABX里面有没有设置方式?
还有修改了起始地址,是不是应该把后面的长度也修改了?

使用特权

评论回复
16
henglin| | 2017-8-13 10:21 | 只看该作者
方法1.  在编译器上设置,去自己找资料
方法2.  用hex/bin 编辑软件,就像编辑普通文档那样把程序部分挪动位置

使用特权

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

本版积分规则

8

主题

37

帖子

1

粉丝