ID bài viết: 000079417 Loại nội dung: Xử lý sự cố Lần duyệt cuối: 17/12/2013

Tại sao lỗi "di chuyển được cắt ngắn để phù hợp: R_NIOS2_CALL26" xảy ra khi mã Nios II được đặt ở các vị trí bộ nhớ riêng biệt?

Môi Trường

  • Bộ xử lý Intel® Nios® II
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Mô tả

    Lỗi này xảy ra khi các chức năng nằm ở vị trí bộ nhớ cách bộ nhớ chính hơn 256MB vì trình biên dịch Nios II sử dụng lệnh gọi có giới hạn biên 256MB.

     

    Độ phân giải

    Có hai giải pháp khắc phục vấn đề này:

    1) Trong ACDS phiên bản 13.1, tùy chọn -relax-all được triển khai để sử dụng lệnh người gọi thay vì hướng dẫn gọi . Trong Software Build Tools cho Eclipse mềm, thêm tùy chọn -Wa,-relax-all trong thuộc tính Ứng dụng hoặc BSP làm cờ người dùng.

    Giải pháp này có thể ảnh hưởng đến hiệu suất phần mềm khi hướng dẫn người gọi sử dụng nhiều hướng dẫn lắp ráp hơn so với lệnh gọi .

    2) Lệnh gọi không tính toán msB 4 bit của địa chỉ , do đó giới hạn biên 256MB. Xác định vị trí bộ nhớ để MSB 4 bit của địa chỉ cơ sở bộ nhớ giống nhau, để đảm bảo các chức năng nằm trong ranh giới 256MB.

    Ví dụ. SDRAM: trình điều 0x10000000, bộ nhớ onchip : 0x12000000

    hoặc SDRAM: 0x08000000, bộ nhớ onchip: 0x02000000

    Các sản phẩm liên quan

    Bài viết này áp dụng cho 1 sản phẩm

    Thiết bị có thể lập trình Intel®

    Nội dung gốc bằng tiếng Anh trên trang này vừa do con người vừa do máy dịch. Nội dung này chỉ để cung cấp thông tin chung và giúp quý vị thuận tiện. Quý vị không nên tin đây là thông tin hoàn chỉnh hoặc chính xác. Nếu có bất kỳ mâu thuẫn nào giữa bản tiếng Anh và bản dịch của trang này, thì bản tiếng Anh sẽ chi phối và kiểm soát. Xem phiên bản tiếng Anh của trang này.