Thông báo

Collapse
No announcement yet.

Sử dụng Piklab, SDCC và gpsim cho PIC

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

  • Sử dụng Piklab, SDCC và gpsim cho PIC

    Quả thật, trước giờ em có 1 quan niệm thế này, mình đã học được cái gì thì tận dụng nó để phục vụ cho mục đích của mình cái đã, không nên học lang man nhảy từ cái này sang cái kia, cốt là biết cái nào thì tường tận và tận dụng hết ưu thế của cái đó. Thế cho nên học PIC thì em chỉ học mỗi CCS C, vì em nghĩ CCS C là quá đủ đối với những thiết kế tầm cỡ "em" rồi. Thế nhưng, sau một đêm ngồi các bài viết của các đại cao thủ bqviet, F về Core Linux và Ubuntu, em cũng có hơi tò mò, thế là cái cái Vista không làm ăn được gì của em bằng cái Ubuntu 8.04. Em bắt đầu nhảy vào 1 thứ hoàn toàn mới - Linux

    Wow, thật sự rất ngạc nhiên vì khả năng của Ubutu (em khoái nhất là cái hiệu ứng "kẹo dẻo" của nó ) Cái gì cũng miễn phí, cũng xài okie cả, đặc biệt là việc cập nhật các phiên bản phần mềm đi kèm, cài đặt các phần mềm mới, hoàn toàn đơn giản với Synaptic Packge Manager, và một điều đặt biệt, đó là Wine, có thể chạy được khá nhiều các file EXE của Windows, (em còn cài được cả cái Proteus yêu thích vào đấy ạ ). Ah, còn 1 thứ nữa, em chẳng phải lo gì đến virút, viriết gì cả, cái này mà ở Windows, mấy ông AVG, Kavs mà chạy thì phải biết, nên cái máy của em nó ít "nóng" hơn đấy ạ

    Tuy nhiên, cái điều mà em thật sự quan tâm ở Ubuntu là MỞ, bởi vì nếu sử dụng Ubuntu mà mà lôi theo mấy cái phần mềm có license thì đúng thật là ở lại với Windows còn hơn, nhưng mà cũng phải nói lại, là trên Ubuntu mà khi cần các ứng dụng quen thuộc bên Windows thì phải restart lại máy cũng quả là chán, nên trong quá trình "quá độ" này, WINE thật sự lợi hại và cần thiết.

    Vậy là sau khi tham khảo bài viết của các bác em đã chọn cho mình một list các phần mềm điện tử trên Ubuntu, nó như sau các bác:
    • Vẽ mạch in bằng KiCad, thay thế cho Orcad ở Windows
    • Lập trình cho PIC bằng IDE PikLab với trình biên dịch SDCC thay thế cho CCS C
    • Lập trình cho MCS51 sử dụng SDCC thay thế cho uC
    • Mô phỏng cho PIC sử dụng gpsim, thay thế cho Proteus
    • QT cho các ứng dụng trên Ubuntu thay thế cho M$VS
    • Openoffice.ORG thay thế cho M$ Office
    • Chỉ có Võ lâm truyền kỳ là em phải dùng Wine thôi he he
    • ...


    Còn mấy cái phần mềm hỗ trợ mạng, đồ hoạ, multimedia thì không phàn nàn vào đâu được.

    Tuy nhiên, vì mới đầu sử dụng Ubuntu, nên em không biết nhiều lắm, và em nghĩ, bác nào cũng vậy thôi, cho nên để tiện lợi, những cái em đã làm được, em sẽ POST lên cho bác nào chưa biết thì tham khảo.

    Lúc đầu em tính dùng CodeBlocks kết hợp với SDCC, vì nó hỗ trợ cho cả PIC, MCS51, AVR, Z80..., nhưng mà vọc mãi cũng không tìm ra cách truyền tham số từ CodeBlocks cho SDCC, nên thôi, em bắt đầu với PikLad đơn giản hơn, vì đơn giản là nó đã được cài đặt sẵn cho PIC rồi.
    Việc cài đặt SDCC, PikLad, gpsim thì cực kỳ đơn giả với Synaptic rồi, các bác cứ vào [System->Administrator->Synaptic Packge Manager] rồi ấn Ctrl+F để mở hộp thoại tìm kiếm, gõ tên của 3 cái phần mềm trên rồi Apply là okie thôi, nhớ cắm cáp mạng vào nhé

    Sau khi có đầy đủ 3 phần mềm rồi, chúng ta bắt đầu làm việc nhé. Đầu tiên, mở PikLad lên, tạo mới 1 Project [Project-> New Project] với các thông số như tên, đường dẫn, loại Chip, đường dẫn project của em là [/home/minhtuan04/Documents/PIC/Hello] tên Project là [helloUbuntu], và toolchain là [Small Device C Complier], xem hình nhé
    Next + Finish

    Và viết đoạn mã test , sau đó nhấn vào cái nút build:

    PHP Code:
    /* ----------------------------------------------------------------------- */
    /* Template source file generated by piklab */
    #include <pic16f877a.h>
    /* ----------------------------------------------------------------------- */
    /* Configuration bits: adapt to your setup and needs */
    typedef unsigned int word;
    word at 0x2007 CONFIG _RC_OSC _WDT_ON _PWRTE_OFF _BODEN_ON _LVP_ON _CPD_OFF _WRT_OFF _DEBUG_OFF _CP_OFF;

    void isr() interrupt 0 {                                                                                                   /* interrupt service routine */
        /* << insert interrupt code >> */
    }
    void delay_ms() {
        
    unsigned int ji;
        for(
    i=0i<120i++) 
            for(
    j=0j<1000j++);
    }
    void main() {
        
    /* << insert code >> */
        
    TRISB 0x00;
        while(
    1) {
            
    PORTB 0xFF;
            
    delay_ms();
            
    PORTB 0x00;
            
    delay_ms();
        }


    Tiếp theo, cần mô phỏng các bác nhỉ, khởi động Terminal, thứ thự thì theo menu, còn nhanh thì nhấn [ALT+F2] mở cửa sổ Run Application, gõ và gnome-terminal là nó ra ngay, gõ lần lược các dòng lệnh để chuyển về thư mục cần mô phỏng, và mô phỏng
    PHP Code:
      cd -L Documents/PIC/Hello
      gpsim 
    -pp16f877a -s helloUbuntu.cod helloUbuntu.asm 
    Hình ảnh sau khi khởi động và chạy mô phỏng

    Cái PortB nó nhấp nháy cũng vui các bác nhỉ
    Last edited by minhtuan04; 27-06-2008, 14:07.
    Diễn đàn Vi điều khiển:

  • #2
    Tiện đây em hỏi có bác nào có kinh nghiệm nạp PIC trong Linux, các bác cho em ý kiến về xài thằng nào thì tốt nhất (trên tất cả các phương diện), ưu tiên cổng USB nhé các bác - Cái GTP+ của em nó bị hư rồi, nên tiện thể sắm cái mới xài cho nhà mới luôn , mà nếu nạp với PikLad luôn thì okie quá.
    Diễn đàn Vi điều khiển:

    Comment


    • #3
      Piklab chứ không phải Piklad nhé. Bạn tự chọn programmer thích hợp cho bạn:
      http://piklab.sourceforge.net/progs.php

      Thân,
      Biển học mênh mông, sức người có hạn

      Comment


      • #4
        Nguyên văn bởi namqn Xem bài viết
        Piklab chứ không phải Piklad nhé. Bạn tự chọn programmer thích hợp cho bạn:
        http://piklab.sourceforge.net/progs.php

        Thân,
        hì, ngay cái tiêu đề đã chẳng đi vào đâu rồi nhỉ
        Sao em không nghĩ ra là vào ngay chỗ thằng piklab này ha , cám ơn anh nhiều nhé, chắc Pickit2 là nhất nhỉ
        Last edited by minhtuan04; 27-06-2008, 19:09.
        Diễn đàn Vi điều khiển:

        Comment


        • #5
          Nguyên văn bởi minhtuan04 Xem bài viết
          Tiện đây em hỏi có bác nào có kinh nghiệm nạp PIC trong Linux, các bác cho em ý kiến về xài thằng nào thì tốt nhất (trên tất cả các phương diện), ưu tiên cổng USB nhé các bác - Cái GTP+ của em nó bị hư rồi, nên tiện thể sắm cái mới xài cho nhà mới luôn , mà nếu nạp với PikLad luôn thì okie quá.
          Dùng cái PG2C là ổn hơn cả: đơn giản mà vẫn đủ để làm việc. Không muốn mua có thể tự làm, thậm chỉ cắm trên breadboard cũng được.
          Phần mềm tự do hoặc không dùng máy tính nữa !.

          Comment


          • #6
            Xét mức độ khả dụng cho một nhóm công việc cụ thể (lập trình hoặc điện tử hoặc làm văn phòng, đồ họa ...), nói một cách thẳng thắn, Windows XP vẫn là vô địch. Tuy nhiên khi làm công việc liên quan tới tương đối nhiều ngành, không gì so sánh được Linux nói chung. Nếu bạn làm công việc liên quan tới nhiều ngành sẽ thấy Linux có nhiều ưu điểm thực dụng hơn hẳn, sau khi đã gạt phần triết lý mã mở sang một bên. Vẫn nhìn trên khía cạnh ứng dụng tại thời điểm này, Windows Vista còn tệ hơn cả Windows 98 SE.

            Xin bổ sung thêm một số phần mềm tôi thường dùng trong công việc thực tế
            • Dia thay cho Visio
            • Varkon, QCad ---- AutoCad
            • Cutecom ---- HyperTerminal
            • K3b ---- Nero
            Phần mềm tự do hoặc không dùng máy tính nữa !.

            Comment


            • #7
              Nguyên văn bởi minhtuan04 Xem bài viết
              hì, ngay cái tiêu đề đã chẳng đi vào đâu rồi nhỉ
              Sao em không nghĩ ra là vào ngay chỗ thằng piklab này ha , cám ơn anh nhiều nhé, chắc Pickit2 là nhất nhỉ
              PICKit 2 theo thông báo vẫn chưa chạy ổn lắm. Cái hay nhất trên piklab có lẽ vẫn là ICD2.

              Cấu hình cho ICD2 trên PIKlab đã được ngohaibac viết bài hướng dẫn cụ thể. F đã thực hiện thành công. Tuy nhiên, nó vẫn chưa support một số PIC mới nhất, đang nghiên cứu thêm và xử lý cho các PIC mới nhất.

              Ngoài SDCC như anh nói em, thì còn một đồng chí nữa chạy với Wine mà anh có hướng dẫn trên picvietnam, đó là CC5X. Đồng chí này chạy cũng tương đối OKI.

              Nói chung, công cụ dành cho PIC bắt đầu mở ra tương đối rồi, có lẽ tới một ngày nào đó chúng ta sẽ phải xử piklab ra mà xem. Bởi piklab hiện nay đang được phát triển rất chậm, do thiếu người phát triển.

              Có thể một ngày đẹp trời nào đó chúng ta sẽ lấy Piklab về phát triển ở VN chăng? hehe...

              Cho tới giờ, chúng ta đã đánh 2 dấu nhấn quan trọng, bác Việt là người đầu tiên thành công trong việc biên dịch C30 v3.10, còn picvietnam thì đi đầu trong việc xây dựng bộ thư viện Orcad/Protel cho PIC/dsPIC.

              Tiến tới đây sẽ có nhiều trò để chơi .

              Tuấn, em chuẩn bị tinh thần để phát triển lập trình ứng dụng trên Ubuntu đi, anh sẽ nói songthanjp (Hoà) hỗ trợ em, vì Hoà cũng làm được một thời gian rồi. Vẫn đang làm giao tiếp RS232 và USB cho Ubuntu. Em cứ cày cái Piklab cho nóng đít đã, và thử hết với các PIC/dsPIC em có, cần thì lại qua RP lấy mà test.

              Chúc vui.
              Falleaf
              Công ty TNHH Thương mại và Giao nhận R&P
              58/57 Nguyễn Minh Hoàng - Phường 12 - Quận Tân Bình - TP.HCM
              mail@falleaf.net - VP: (04) 36408561 - (08) 38119870

              Comment


              • #8
                Nguyên văn bởi falleaf Xem bài viết
                PICKit 2 theo thông báo vẫn chưa chạy ổn lắm. Cái hay nhất trên piklab có lẽ vẫn là ICD2.

                Cấu hình cho ICD2 trên PIKlab đã được ngohaibac viết bài hướng dẫn cụ thể. F đã thực hiện thành công. Tuy nhiên, nó vẫn chưa support một số PIC mới nhất, đang nghiên cứu thêm và xử lý cho các PIC mới nhất.

                Ngoài SDCC như anh nói em, thì còn một đồng chí nữa chạy với Wine mà anh có hướng dẫn trên picvietnam, đó là CC5X. Đồng chí này chạy cũng tương đối OKI.

                Nói chung, công cụ dành cho PIC bắt đầu mở ra tương đối rồi, có lẽ tới một ngày nào đó chúng ta sẽ phải xử piklab ra mà xem. Bởi piklab hiện nay đang được phát triển rất chậm, do thiếu người phát triển.

                Có thể một ngày đẹp trời nào đó chúng ta sẽ lấy Piklab về phát triển ở VN chăng? hehe...

                Cho tới giờ, chúng ta đã đánh 2 dấu nhấn quan trọng, bác Việt là người đầu tiên thành công trong việc biên dịch C30 v3.10, còn picvietnam thì đi đầu trong việc xây dựng bộ thư viện Orcad/Protel cho PIC/dsPIC.

                Tiến tới đây sẽ có nhiều trò để chơi .

                Tuấn, em chuẩn bị tinh thần để phát triển lập trình ứng dụng trên Ubuntu đi, anh sẽ nói songthanjp (Hoà) hỗ trợ em, vì Hoà cũng làm được một thời gian rồi. Vẫn đang làm giao tiếp RS232 và USB cho Ubuntu. Em cứ cày cái Piklab cho nóng đít đã, và thử hết với các PIC/dsPIC em có, cần thì lại qua RP lấy mà test.

                Chúc vui.

                Phát triển Piklab cũng không phải quá khó. Cái này viết bằng thư viện Qt, không dùng công cụ nào quá bí mật. Cái khó ở chỗ đa phần người biết làm thì phải cày cuốc kiếm sống. Người chưa phải lo gì nhiều cho gia đình lại chưa đủ tầm, ít nhất trong cộng đồng dtvn.

                Về vụ C30, gói binutils của nó có vấn đề khi chạy là báo lỗi segmentation fault nên cho tới nay vẫn chưa thử được. Xem lại trong mã nguồn thì có 6 chỗ nó dùng hàm strcpy() (string copy) mà không kiểm tra kích thước chuỗi đích được chép. Quả thật khó tin là kỹ sư MCHP lại mắc lỗi này. Làm thế nào để report bug này đây ? Tự sửa thì quá dễ, nhưng chỉ là hack thuần túy vì mình không hiểu ngữ cảnh của chương trình.

                Quay lại với Piklab, cái này còn nhiều vấn đề ngăn cản lập trình viên mới tham gia
                • Sử dụng thư viện Qt3, để port sang Qt4 (dùng cho KDE4 bắt đầu từ Kubuntu 8.04) mất không ít thời gian mặc dù không khó
                • Biên dịch dùng công cụ autotools (m4, automake, autoconf) truyền thống của GNU cực kỳ khó chịu. Mấy ông viết phần mềm này từ đầu không chịu dùng ngay qmake của Qt mà cứ phải autotools cho nó ra vẻ chuyên nghiệp (mặc dù đọc mã nguồn viết cũng chưa phải chuyên nghiệp lắm). Giới lập trình thường bảo rằng dùng thì cứ dùng, nhưng trên cả thế giới chỉ có vài ông là thực sự hiểu được cái autotools mà thôi.
                Phần mềm tự do hoặc không dùng máy tính nữa !.

                Comment


                • #9
                  Nguyên văn bởi bqviet Xem bài viết
                  ....
                  Vẫn nhìn trên khía cạnh ứng dụng tại thời điểm này, Windows Vista còn tệ hơn cả Windows 98 SE.
                  @Anh bqviet:
                  Anh nói thế mà không sợ mấy bác thân với ông Bill phật lòng àh

                  Nguyên văn bởi falleaf Xem bài viết
                  ...
                  Tuấn, em chuẩn bị tinh thần để phát triển lập trình ứng dụng trên Ubuntu đi, anh sẽ nói songthanjp (Hoà) hỗ trợ em, vì Hoà cũng làm được một thời gian rồi. Vẫn đang làm giao tiếp RS232 và USB cho Ubuntu. Em cứ cày cái Piklab cho nóng đít đã, và thử hết với các PIC/dsPIC em có, cần thì lại qua RP lấy mà test.

                  Chúc vui.
                  @Anh Falleaf:
                  Em thấy trên 4r hình như không có BOX nào về lập trình nhúng trên Linux, hay em kiến nghị thế này nhé, anh mở thêm box lập trình nhúng trên linux, cho PIC, AVR, hay MCS51 ..., Ở đây mình sẽ xây dựng các thư viện mở để lập trình cho mấy chú này trở nên đơn giản hơn. Tuy nhiên, nếu được, thì cần phải đánh giá chính xác trình dịch nào tối ưu nhất cho từng loại hiện nay, để phát triển trên đó luôn
                  Diễn đàn Vi điều khiển:

                  Comment


                  • #10
                    Linus có nói đại ý rằng: Chỉ có những con người lạc quan mới có thể tồn tại với Linux.
                    Last edited by opentdoors; 28-06-2008, 13:00.
                    Opentdoors- Thành viên của Rock'n'Roll club

                    Comment


                    • #11
                      [QUOTE=bqviet;115811][*]Dia thay cho Visio[*]Varkon, QCad ---- AutoCad[*]Cutecom ---- HyperTerminal[*]K3b ---- Nero
                      QUOTE]
                      Cái Dia này hơi xấu. Trước kia KOffice có Kivio xài cũng được, không hiểu sao gói này không còn trong các bản Fê đô
                      Opentdoors- Thành viên của Rock'n'Roll club

                      Comment


                      • #12
                        Nguyên văn bởi opentdoors Xem bài viết
                        Cái Dia này hơi xấu. Trước kia KOffice có Kivio xài cũng được, không hiểu sao gói này không còn trong các bản Fê đô

                        Dia có giao diện khá xấu, khó dùng vì giao diện của nó theo kiểu nhiều cửa sổ tương tự GIMP, nhưng chất lượng bản vẽ của nó thì tuyệt vời và tốc độ vẽ nhanh hơn nhiều khi đã quen. Ưu điểm nữa là nó vẽ được nhiều kiểu sơ đồ, thậm chí bqviet vẫn dùng nó thay cho AutoCAD cho những bản vẽ không quá phức tạp: dù là điện, điện tử, thủy khí hay cơ khí, xây dựng.
                        Phần mềm tự do hoặc không dùng máy tính nữa !.

                        Comment


                        • #13
                          Nguyên văn bởi minhtuan04 Xem bài viết
                          [
                          @Anh Falleaf:
                          Em thấy trên 4r hình như không có BOX nào về lập trình nhúng trên Linux, hay em kiến nghị thế này nhé, anh mở thêm box lập trình nhúng trên linux, cho PIC, AVR, hay MCS51 ..., Ở đây mình sẽ xây dựng các thư viện mở để lập trình cho mấy chú này trở nên đơn giản hơn. Tuy nhiên, nếu được, thì cần phải đánh giá chính xác trình dịch nào tối ưu nhất cho từng loại hiện nay, để phát triển trên đó luôn

                          Thì nội dung của box này chủ yếu để trao đổi những vấn đề Linux nhúng, Linux cho điện tử là chính. Những vấn đề chung chung về sử dụng phần mềm / lập trình Linux thông dụng nên sang bên vnlinux.org hỏi sẽ phù hợp hơn và nhận được câu trả lời nhanh hơn.

                          Offtopic: bạn học điều khiển mà vẫn phát biểu "tối ưu nhất" ?
                          Phần mềm tự do hoặc không dùng máy tính nữa !.

                          Comment


                          • #14
                            @Tuấn,

                            Em quên một cái là trong Piklab nó có sẵn cái cửa sổ Konsole, chính là một cái giống gnome-terminal vậy, cho nên em có thể gõ trực tiếp vào đó bằng cách chuyển cái thẻ chỗ Output sang thẻ Konsole để gõ luôn, khỏi phải mở thêm cái terminal.

                            Tùy thói quen làm việc, nhưng thêm thông tin cho em thôi.

                            Chúc vui.
                            Falleaf
                            Công ty TNHH Thương mại và Giao nhận R&P
                            58/57 Nguyễn Minh Hoàng - Phường 12 - Quận Tân Bình - TP.HCM
                            mail@falleaf.net - VP: (04) 36408561 - (08) 38119870

                            Comment


                            • #15
                              anh F ơi ! anh có thể hướng dẫn em cài đặt piklab được không ạ ?
                              em dùng bản ubuntu 12.10 , tìm không thấy trong software center cái piklab down về nhưng không biết cài thế nào ạ
                              [ xin lỗi mọi người vì em mới dùng nên có nhiều cái hỏi hơi ngu mong mọi người bỏ qua cho em ]

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X