代码之家  ›  专栏  ›  技术社区  ›  Andrew Pikul

是否可能延迟解决问题。连接时间之前gcc中的weakreference?(通用条款)

  •  1
  • Andrew Pikul  · 技术社区  · 7 年前

    如果你想申报 .弱参考

    .weakreference ISR_SPI_HANDLER, defaultExceptionHandler
    

    ISR\u SPI\u处理程序 作为主要功能。c文件, ISR\u SPI\u处理程序 defaultExceptionHandler 弱参考 仅适用于局部范围(术语?预链接)。然而 虚弱的 按预期运行,并允许您使用main中的定义“覆盖”定义。c、 但如果不这样做,则总是解析为0x00,这显然不如解析为默认向量。

    我如何克服这个问题?

    2 回复  |  直到 7 年前
        1
  •  1
  •   artless noise    7 年前

    .weakref 在汇编程序中。相反,只需使用 ISR_SPI_HANDLER 作为外部。汇编器自然希望优化到PC到已知位置的相对跳跃。你正在与之抗争,其他人会希望呼叫 defaultExceptionHandler .

    the linker ,

      .text : {
        *(.text);
        ISR_SPI_HANDLER = DEFINED(ISR_SPI_HANDLER) ? ISR_SPI_HANDLER : defaultExceptionHandler;
        …
      }
    

    或者,拆分 启动。S .威克雷夫 ISR\u SPI\u处理程序

        2
  •  1
  •   Andrew Pikul    7 年前

    显然,你可以使用 .weak NAME .set NAME VALUE 给它一个不同于0x0的默认值