ID Artikel: 000081636 Jenis Konten: Pemecahan Masalah Terakhir Ditinjau: 11/09/2012

Mengapa skrip linker saya tidak menyertakan subroutine saya di bagian memori target ketika saya menyatakan (void) __attribute__ ((section (".rwdata"))) dalam kode?

Lingkungan

  • Prosesor Intel® Nios® II
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Deskripsi

    Linker dalam IDE Nios® II tidak akan secara otomatis menempatkan subroutine dalam memori yang tidak ditetapkan sebagai .text.

    Untuk menyertakan subroutine di bagian memori tertentu selain .text (dalam contoh ini, .rwdata), lakukan hal berikut:

    1. Tentukan bagian kustom untuk rutinitas spesifik ini, misalnya: my_subroutine void(void) __attribute__ ((bagian (".usersection")));
    2. Buka file generated.x yang terletak di folder _syslib/Debug/system_description Anda dan cari __ram_rwdata_end
    3. Tambahkan baris berikut ke berkas generated.x:


    .usersection : AT ( LOADADDR (.rwdata) SIZEOF (.rwdata) )

    {
    SEDIAKAN (_alt_partition_usersection_start = ABSOLUTE(.);;
    *(.usersection .usersection.*)
    . = ALIGN(4);
    SEDIAKAN (_alt_partition_usersection_end = ABSOLUTE(.);

    } >onchip_ram

    PROVIDE (__flash_alt_partition_usersection_start = LOADADDR(.usersection));

    1. Modifikasi alt_load.c untuk melakukan operasi salinan bagian kustom. Lihat di bawah ini untuk referensi:

    __flash_alt_partition_usersection_start void extern;
    _alt_partition_usersection_end void extern;
    _alt_partition_usersection_start void extern;

    /*

    * Salin bagian .usersection.

    */
          
    alt_load_section (&__flash_alt_partition_usersection_start,
    &_alt_partition_usersection_start,
    &_alt_partition_usersection_end);

    Produk Terkait

    Artikel ini berlaku untuk 1 produk

    Perangkat yang Dapat Diprogram Intel®

    Isi halaman ini adalah kombinasi terjemahan manusia dan komputer dari konten berbahasa Inggris. Konten ini diberikan hanya untuk kenyamanan Anda serta sebagai informasi umum dan tidak bisa dianggap sebagai lengkap atau akurat. Jika terdapat kontradiksi antara versi bahasa Inggris halaman ini dan terjemahannya, versi bahasa Inggris akan didahulukan. Lihat versi bahasa Inggris halaman ini.