ygtjcng3 发表于 2016-7-13 11:47:36

PICK3能同时烧录Bootloader和应用程序么?

如题,怎么把两个HEX文件一次都烧录到PIC16XXX芯片里面。

michael.yang 发表于 2016-7-13 13:49:19

两个hex合并成1个bin文件,如果烧录器支持bin就直接下, 不支持的话就将bin再转为hex。

techbaby 发表于 2016-7-13 14:04:48

两个HEX合并成一个HEX,Segger的J-Flash可以合并保存成一个文件!

ygtjcng3 发表于 2016-7-13 17:36:21

michael.yang 发表于 2016-7-13 13:49
两个hex合并成1个bin文件,如果烧录器支持bin就直接下, 不支持的话就将bin再转为hex。 ...

哦,这样啊

ygtjcng3 发表于 2016-7-13 17:36:39

techbaby 发表于 2016-7-13 14:04
两个HEX合并成一个HEX,Segger的J-Flash可以合并保存成一个文件!

3q,我试试

stephon1 发表于 2016-7-13 17:44:55

把两个hex文件手工或用软件合并成一个hex文件

ygtjcng3 发表于 2016-7-13 17:49:39

stephon1 发表于 2016-7-13 17:44
把两个hex文件手工或用软件合并成一个hex文件


假设bootloader是地址0x0000.应用程序地址是0x0800.

应用程序的地址偏移要怎么设置啊?那个软件有设置的地方么?可以给个软件名字么?

techbaby 发表于 2016-7-13 18:02:45

ygtjcng3 发表于 2016-7-13 17:49
假设bootloader是地址0x0000.应用程序地址是0x0800.

应用程序的地址偏移要怎么设置啊?那个软件有设置 ...

你的bootloader和app本身地址就不重复,况且HEX文件本身包含地址,所以使用J-Flash直接将两个HEX文件merge在一起,然后另存为一个HEX文件即可,根本不用考虑地址!

michael.yang 发表于 2016-7-13 18:19:25

techbaby 发表于 2016-7-13 18:02
你的bootloader和app本身地址就不重复,况且HEX文件本身包含地址,所以使用J-Flash直接将两个HEX文件merg ...

你要看是哪个编译器才行,像MDK、IAR for ARM这些工具,编译32位的ARM后地址是不重叠的;但用keil、IAR来编译8位单片机,不管你什么设置偏移地址,应用程序的0x0000都是存放它自己的跳转指令。所以在合并的时候需要注意去掉应用程序的跳转指令,而保留bootloader的。
页: [1]
查看完整版本: PICK3能同时烧录Bootloader和应用程序么?