Trình liên kết trong Nios® II IDE sẽ không tự động đặt một subrourou trong bộ nhớ không được chỉ định là .text.
Để đưa chương trình con vào một phần bộ nhớ cụ thể khác với .text (trong ví dụ này, .rwdata), hãy làm như sau:
- Xác định một phần tùy chỉnh cho chi tiết cụ thể này, ví dụ: void my_subroutine(void) __attribute__ ((section (".usersection")));
- Mở tệp generated.x nằm trong thư mục _syslib/Gỡ lỗi/system_description của bạn và tìm kiếm thông __ram_rwdata_end
- Thêm các dòng sau vào tệp generated.x:
.usersection: AT ( LOADADDR (.rwdata) SIZEOF (.rwdata) ){
CUNG CẤP (_alt_partition_usersection_start = ABSOLUTE(.));
*(.usersection .usersection.*)
. = ALIGN(4);
CUNG CẤP (_alt_partition_usersection_end = TUYỆT ĐỐI(.));} >onchip_ram
CUNG CẤP (__flash_alt_partition_usersection_start = LOADADDR(.usersection));
- Sửa alt_load.c để thực hiện thao tác sao chép phần tùy chỉnh. Xem bên dưới để tham khảo:
khoảng trống extern __flash_alt_partition_usersection_start;
khoảng trống extern _alt_partition_usersection_end;
khoảng trống extern _alt_partition_usersection_start;/*
* Sao chép phần .usersection.
*/
alt_load_section (&__flash_alt_partition_usersection_start,
&_alt_partition_usersection_start,
&_alt_partition_usersection_end);