【问题标题】:change Start address .hex in atmel studio7在 atmel studio7 中更改起始地址 .hex
【发布时间】:2019-05-12 15:27:50
【问题描述】:

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

【问题讨论】:

    标签: avr atmel avr-gcc atmelstudio avrdude


    【解决方案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_addresspgm_read_..._far 宏。

    【讨论】:

    • 谢谢!帮了大忙
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-15
    • 1970-01-01
    • 2018-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-04
    相关资源
    最近更新 更多