linker-scripts

    0熱度

    1回答

    如何基於鏈接器腳本中定義的鏈接器變量的條件值來使構建失敗? 我正在使用GCC編譯C代碼。我定義了一個鏈接器變量BINARY_TEST。如果BINARY_TEST> 32KB的值,那麼我想失敗的構建。如何編寫條件測試並使用鏈接器腳本無法執行構建? 請建議任何腳本。 SECTIONS { . = 0x0000 ; .text : { *(.text)

    1熱度

    1回答

    你好,我有一個「鏈接腳本」爲GNU鏈接ld和我有兩個與之相關的問題: OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(__start) SECTIONS { . = 0x11029000; .text : { _

    6熱度

    1回答

    爲了在主機上執行嵌入式項目的單元測試,我開始使用函數指針來在運行時在函數的「實際」實現和模擬之間進行切換。 所以,我的函數「富」看起來像這樣在.c文件: // the 'real' implementation of the function to be used during runtime void fooImplementation () { /* ... */ } //

    5熱度

    3回答

    我剛剛開始學習一些ARM編程,並且陷入了一個令人討厭的問題。我用來編譯源代碼的工具鏈是Sourcery CodeBench Lite 2013.05-23(可在此處找到:https://sourcery.mentor.com/GNUToolchain/release2449) 我需要的是告訴GCC或LD或OBJCOPY將'main '.text部分開頭處的函數。 有什麼辦法可以達到這個目的嗎? (

    0熱度

    1回答

    我正在研究多核處理器。 我想製作一個AMP系統,也就是說 - 我有一個應用程序在core0上成功運行,我想要完全相同的應用程序來運行core1。但是這兩個應用程序不會互相影響 - 就像兩個不同的應用程序在不同的內核上運行一樣。 我該怎麼辦?可能的計劃是: 1.將已編譯的應用程序複製到RAM的不同位置,並將新位置的起始地址提供給core1,以便從那裏開始執行。使用鏈接器腳本。 有沒有人試過它?如果你

    14熱度

    2回答

    我在編寫內核時試圖調試我有的鏈接器問題。 的問題是,我有一個變量SCAN_CODE_MAPPING,我是無法使用 - 它顯示爲空或東西。我可以通過更改鏈接我的程序的方式來解決此問題,但我不知道爲什麼。 當我使用objdump查看生成的二進制文件時,變量的數據肯定存在,因此只有一些參考文件被破壞。 Here's a gist同時與連接器腳本和符號表的這兩個文件之間不同的部分。 什麼讓我困惑的是,這兩

    2熱度

    1回答

    鏈接描述文件中的位置計數器出現問題。不知道這是一個錯誤還是我期望輸出錯誤。 我有一個BSS部分 /* Program bss, zeroed out during init. */ .bss : { . = ALIGN(4); __bss_start = .; *(.bss*) *(.COMMON*) . = ALIGN(4); __

    2熱度

    1回答

    我使用Bash獲取c程序變量的地址。如何知道地址是否與整數,浮點數或雙變量有關?

    0熱度

    1回答

    我有一個非常簡單的程序(simple.c): #include <stdio.h> int main(){ int a = 4; return 0; } 我嘗試使用下面的鏈接腳本(MEMORY): MEMORY { m_text : ORIGIN = 0x0000000000400000, LENGTH = 0x0001FBF0 m_data : ORIGIN =

    2熱度

    1回答

    我正在編寫一個裸機ARM引導加載器,並試圖使用一些內部SRAM作爲便箋與應用程序代碼進行通信。爲了我的需要,我不需要初始化或清零內存。使用這個腳本,我可以將我想要的變量放在內存中。 /** * Linker script for secondary bootloader. * * Allocatest the first 1Mb of DRAM for its use. * Scratch