Thông báo

Collapse
No announcement yet.

Giúp đỡ về câu lệnh NIOS

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Giúp đỡ về câu lệnh NIOS

    Mình đang tập viết code C trên NIOS,nhưng mà thấy có nhiều câu lệnh chưa hiểu hết ý nghĩa của nó ,ví dụ như cú pháo câu lệnh IOWR,IORD và ý nghĩa của tững thành phàn trong câu lệnh dó là gì,IOWR_8DIRECT khác gì với IOWR và IOWR_32DIRECT.thanks

  • #2
    Đây là các MACRO, sẽ được đổi sang assembly code trong lúc dịch.
    Bạn có thể tham khảo ở file io.h (altera/nios2eds/components/altera_nios2/HAL/inc)
    IOWR & IORD sẽ được expand ra ghi 32bit và đọc 32bit nhưng địa chỉ ở dạng NATIVE.
    IOWR_32DIRECT và IORD_32DIRECT expand ra ghi 32bit và đọc 32bit nhưng địa chỉ ở dạng DIRECT

    Native và Direct addressing:

    - Ví dụ ngoại vi của bạn có 2 thanh ghi, mỗi thanh ghi 32bit ở địa chỉ :
    BASE = 0x8000
    REGISTER0 = 0x8000
    REGISTER1 = 0x8004

    - Khi dùng IOWR:
    IOWR(BASE, 1, DATA)
    - Khi dùng IOWR DIRECT:
    IOWR_32DIRECT(BASE, 4, DATA)

    Offset của IOWR_xxDIRECT luôn tính bằng byte

    IOWR_8/16/32DIRECT sẽ được dịch ra lệnh assembly tương ứng để ghi 8bit/16bit hoặc 32bit

    Altera khuyên chỉ nên dùng IOWR/RD_xxDIRECT

    Comment


    • #3
      vậy còn câu lệnh w32 hay w16 thì nó nghĩa là gì và cú pháp nó ra sao? hoặc là r16 hay r32?

      Comment

      Về tác giả

      Collapse

      somali Tìm hiểu thêm về somali

      Bài viết mới nhất

      Collapse

      Đang tải...
      X