Thông báo

Collapse
No announcement yet.

Học AVR trên Linux

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

  • Học AVR trên Linux

    Lâu không viết bài, muốn góp bài viết có ích cho box anh bqviet. Mặc dù tôi biết có rất nhiều người dùng Linux để lập trình AVR nhưng k phải bạn nào cũng biết, người biết thì k có time để viết mà thôi. AVR được cộng đồng Linux hỗ trợ khá nhiều, công cụ rất đầy đủ chẳng thiếu thứ gì cả.

    Luồng này ghi lại nhật kí học AVR trên Linux của tôi. Trước kia chưa dùng AVR cảm thấy ngại động vào, nhưng khi đã dùng tới tôi bị chinh phục luôn Cảm giác đầu tiên là: AVR chân cẳng sắp xếp khoa học hơn thằng PIC rất nhiều. Cái thứ 2, tôi rất thích là các công cụ như trình biên dịch, ... đều là miễn phí, và hay nhất ở chỗ là nó hỗ trợ Linux khá tốt, thằng PIC thì không có cửa rồi.

    1. Trình biên dịch

    Để bắt đầu với AVR thì cần tìm hiểu các trình biên dịch có thể dùng. Thông tin đầy đủ và chi tiết nhất là đọc tại đây , khỏi cần dịch lại dài dòng làm gì cả. Thêm nữa là trang này giải thích cực kì rõ, hãy chú ý đọc về GCC và GNU Binutils

    Nên nhớ là trên AVR nó không phải chỉ dùng mỗi 1 trình biên dịch, quá trình dịch của nó bao gồm rất nhiều công đoạn nhỏ, như avr-gcc chỉ dịch ra assembly, còn công việc chuyển sang .hex, ... lại do thằng khác làm đó

    Điều quan trọng lúc này là hãy dành thời gian đọc hết chỗ User manual của AVR Libc đã. Bạn sẽ thấy khá nhiều điều thú vị.

    Tóm lại cuối cùng là, kiểu gì cũng phải cài đầy đủ các gói sau: avr-libc, binutils-avr, gcc-avr, avrdude

    Trên Ubuntu thì gõ lệnh:
    Code:
    sudo apt-get install  avr-libc binutils-avr gcc-avr avrdude

    Trên ArchLinux (cái mà tôi đang dùng) thì gõ lệnh:
    Code:
    sudo pacman -S  avr-libc binutils-avr gcc-avr avrdude
    2. IDE

    Về IDE, tùy theo thói quen, có thể dùng IDE hoặc không. Nếu không dùng IDE thì phải tự viết makefile hoặc sửa từ makefile mẫu tùy vào từng project. Nhược điểm của phương pháp này là hơi tốn thời gian, vì cái nào cũng phải viết makefile cả. Các công cụ tự sinh makefile như CMake dùng rất phức tạp và không hiệu quả trong trường hợp này. Nên tôi khuyên các bạn dùng Eclipse với AVR Plugin.

    Trước hết download phiên bản Eclipse mới nhất (Bản Eclipse CDT), sau đó chọn install new plugin với đường dẫn là: http://avr-eclipse.sourceforge.net/updatesite/

    Thông tin thêm về cách cấu hình với Eclipse xem tại trang chủ

    3. Thư viện cho AVR

    Bản thân khi cài đặt xong avr-libc thì chỉ có các header định nghĩa chân cẳng và vài file định kiểu ở trong thư mục /usr/avr/include và /usr/avr/lib nên túm lại là làm với module nào thì cũng phải viết lại cả.

    Cộng đồng dùng AVR có thư viện Procyon AVRlib viết bởi Pascal Stang, giảng viên của trường Stanford viết từ lâu rồi, nhưng vẫn được nhiều người sử dụng, thể hiện ở sự logic của thư viện. Thư viện được phổ biến dưới giấy phép GPL.

    Thông tin chi tiết về thư viện tại đây

    Tuy nhiên, có thể hơi khó download vì một vài lần k down được, nên tôi đã upload toàn bộ file lên host riêng của tôi tại: http://pptutorials.com/doc/avrlib/

    4. Nạp cho chip

    Có thể dùng AVRDude để nạp cho chip bằng các mạch nạp thông dụng ngon lành. Định nghĩa các mạch hỗ trợ bởi avrdude ở trong /etc/avrdude.conf

    Tuy nhiên, khi nạp có thể sẽ báo về k có quyền truy xuất IO gì đó, thì hãy dùng quyền của superuser để nạp đã rồi tính tiếp. ở đây dùng sudo.

    Cách khắc phục nhược điểm trên là tạo rule cho udev được hướng dẫn tại đây ở phần "Operation not permitted" error đó.

    Minh họa dùng Eclipse IDE để biên dịch AVR:

    Technical sale at WT Microelectronics S'pore
    Hỗ trợ dự án sử dụng các hãng Texas Instrument, STMicro, Freescale, Fairchild, International Rectifier, Ublox, Lumiled, Maxim
    Liên hệ: 0915.560.511 hoặc ngo.haibac@wtmec.com

  • #2
    xin hỏi anh. học AVR là như thế nào?mong a giải thích rõ hơn.

    Comment


    • #3
      Nguyên văn bởi thandieu86 Xem bài viết
      xin hỏi anh. học AVR là như thế nào?mong a giải thích rõ hơn.
      Câu hỏi của bạn quá chuẩn!
      Hãy gọi tôi khi bạn cần

      Comment

      Về tác giả

      Collapse

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

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

      Collapse

      Đang tải...
      X