문서 ID: 000081636 콘텐츠 형태: 문제 해결 마지막 검토일: 2012-09-11

코드에서 (void) __attribute__(섹션(".rwdata")를 선언할 때 링커 스크립트가 대상 메모리 섹션에 하위 루틴을 포함하지 않는 이유는 무엇입니까?

환경

  • 인텔® Nios® II (클래식) 프로세서
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    설명

    Nios® II IDE의 링커는 .text로 지정되지 않은 메모리에 서브루틴을 자동으로 넣지 않습니다.

    .text 이외의 특정 메모리 섹션에 서브루틴을 포함하려면 다음을 수행합니다.

    1. 이 특정 루틴에 대한 사용자 지정 섹션을 정의합니다(예: void my_subroutine(void) __attribute__(섹션(".usersection"))
    2. _syslib/Debug/system_description 폴더에 있는 generated.x 파일을 열고 __ram_rwdata_end
    3. generated.x 파일에 다음 줄을 추가합니다.


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

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

    } >onchip_ram

    PROVIDE(__flash_alt_partition_usersection_start = LOADADDR(.usersection)) );

    1. 사용자 지정 섹션 복사 작업을 수행하려면 alt_load.c를 수정합니다. 참조는 아래를 참조하십시오.

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

    /*

    * .usersection 섹션을 복사합니다.

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

    관련 제품

    이 문서는 다음 항목에 적용됩니다. 1 제품

    인텔® 프로그래밍 가능 장치

    이 페이지의 콘텐츠는 원본 영어 콘텐츠에 대한 사람 번역 및 컴퓨터 번역의 조합으로 완성되었습니다. 이 콘텐츠는 편의와 일반적인 정보 제공을 위해서만 제공되었으며, 완전하거나 정확한 것으로 간주되어선 안 됩니다. 이 페이지의 영어 버전과 번역 간 모순이 있는 경우, 영어 버전이 우선적으로 적용됩니다. 이 페이지의 영어 버전을 확인하십시오.