Nios® II IDE의 링커는 .text로 지정되지 않은 메모리에 서브루틴을 자동으로 넣지 않습니다.
.text 이외의 특정 메모리 섹션에 서브루틴을 포함하려면 다음을 수행합니다.
- 이 특정 루틴에 대한 사용자 지정 섹션을 정의합니다(예: void my_subroutine(void) __attribute__(섹션(".usersection"))
- _syslib/Debug/system_description 폴더에 있는 generated.x 파일을 열고 __ram_rwdata_end
- 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)) );
- 사용자 지정 섹션 복사 작업을 수행하려면 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);