在 atmel studio7 中更改起始地址 .hex
Posted
技术标签:
【中文标题】在 atmel studio7 中更改起始地址 .hex【英文标题】:change Start address .hex in atmel studio7 【发布时间】:2019-05-12 15:27:50 【问题描述】:我正在 ATMELStudio7 中为 AVR 做一个引导加载程序,在生成 .hex 时,它是从地址 0x00 创建的,但引导加载程序必须从地址 0x1e000 开始,如果有人知道如何在编译选项中更改它,我会欣赏它。
【问题讨论】:
【参考方案1】: 转到项目属性(Alt + F7) 选择工具链 选择AVR/GNU Linker -> 内存设置 在“FLASH 段” 部分按“添加项目” 按钮并键入:.text=0xF000
(UPD) 注意,这个地址是words,也就是说,如果你想把一个 8KB 的 bootloader 放到一个 128KB 的设备中(字节偏移量是 0x1E000),那么字偏移量将是 0xF000。 32KB 设备上的 4KB 引导加载程序将是 0x3800,依此类推。
按 OK,然后编译项目。它会告诉链接器主代码段的起始地址在哪里。
顺便说一句,在 >64k 设备上的引导加载程序中使用 pgmspace.h 时要小心,因为闪存中的常量通常被放置在低 64k 中,现在将被放置在高地址中好吧,使用通常的 pgm_read... 宏可能无法访问。在这种情况下,请使用 pgm_get_far_address 和 pgm_read_..._far 宏。
【讨论】:
谢谢!帮了大忙以上是关于在 atmel studio7 中更改起始地址 .hex的主要内容,如果未能解决你的问题,请参考以下文章
Eclipse J-Link ATMEL ARM ATSAME70Q21。当代码从不同于 0x00400000 的地址开始时进行调试