在atmel studio7中更改起始地址.hex

时间:2019-05-12 15:27:51

标签: avr atmel avr-gcc atmelstudio avrdude

我正在ATMELStudio7中为AVR做一个引导加载程序,当生成.hex时,它是从地址0x00创建的,但是如果有人知道如何在编译选项中更改它,则引导加载程序必须从地址0x1e000开始。感谢它。

1 个答案:

答案 0 :(得分:4)

  • 转到项目属性(Alt + F7)
  • 选择工具链
  • 选择 AVR / GNU链接器-> 内存设置
  • “闪存段” 部分中,按“添加项目” 按钮并输入:

.text = 0xF000

(UPD)注意,此地址用 words 表示,即,如果要将8KB引导加载程序放入128KB设备中(字节偏移为0x1E000),则字偏移量将为 0xF000 。在32KB设备上的4KB引导加载程序将为0x3800,依此类推。

按OK,然后编译项目。它将告诉链接程序主代码段的起始地址位于何处。

顺便说一句,在> 64k设备上的引导程序中使用 pgmspace.h 时要小心,因为闪存中的常量(通常放置在较低的64k中)现在将放置在较高的地址中,如很好,并且可能无法使用常规的 pgm_read ... 宏进行访问。在这种情况下,请使用 pgm_get_far_address pgm_read _..._ far 宏。