Thông báo

Collapse
No announcement yet.

Hướng dẫn sử dụng trình dịch SDCC (trên windows) cho 8051

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

  • Hướng dẫn sử dụng trình dịch SDCC (trên windows) cho 8051

    SDCC là một trình biên dịch tùy biến cao, hỗ trợ nhiều loại vi điều khiển, và miễn phí. SDCC được phát triển bởi một cộng đồng đông đảo lập trình viên khắp thế giới và rất phổ biến với người dùng Linux. SDCC cũng có phiên bản dành cho Windows. Ở những nước phát triển, việc sử dụng phần mềm ***** bị hạn chế nên SDCC là một giải pháp thay thế rất tốt cho các trình dịch thương mại Keil, Raisonace hay IAR...
    Một chương trình nạp chip khá nổi tiếng được dịch bởi SDCC là EZ downloader (chương trình miễn phí dùng để nạp chip qua cổng COM cho họ 89).
    Sau một thời gian tìm hiểu và sử dụng, tôi có một số nhận xét sau. Ưu điểm của SDCC là miễn phí, được hỗ trợ tốt, hỗ trợ nhiều họ vi điều khiển (8051, PIC, Motorola, Zilog,...), tính tùy biến cao, mã nguồn mở. Nhược điểm của SDCC là cấu hình tương đối phức tạp, không tích hợp sẵn môi trường phát triển và soạn thảo, dùng không cẩn thận sẽ phát sinh lỗi (Tất nhiên cái này thì cả Keil cũng có).

    Để sử dụng SDCC trên Windows và dịch cho 8051, các bạn cần có: bộ cài SDCC và một trình soạn thảo. Ở đây tôi dùng trình soạn thảo Programmers Notepad. Trình soạn thảo này rất tuyệt vời, các bạn thử sẽ biết. (Các bộ cài tìm trên google nhé, tất cả đều free và tải rất dễ). Sau đó thực hiện các bước sau:

    Link download:
    SDCC: http://sourceforge.net/project/showf...ckage_id=28921
    Programmers Notepad: http://www.pnotepad.org/download/

    1. Cài đặt SDCC. Khi cài đặt gần xong, Có một dialog hỏi bạn xem có đặt SDCC như một lời gọi hệ thống không. Bạn chọn Yes.

    2. Cài đặt (hoặc unzip) và chạy Programmers Notepad (PN.EXE).

    3. Định nghĩa một số lệnh trong Programmers Notepad để bắt SDCC dịch:


    3.1. Định nghĩa lệnh dịch (compile, Ctrl+Shift+C) : Vào Tools/Options, vào Tools chọn Scheme: C/C++, sau đó nhấn Add để tạo và định nghĩa lệnh dịch. Điền các tham số như sau:
    Name: Compile with SDCC
    Command: sdcc
    Folder: %d
    Parameters: -c %d%f --stack-auto --nooverlay
    Shortcut: Ctrl+Shift+C (nhấn Ctrl và Shift, gõ C)
    Save: Current File
    Tick vào This tool will modify the current file

    Xong lệnh dịch (compile). Khi bạn nhấn tổ hơp phím Ctrl+Shift+C khi đang mở một file .C nào đó thì sdcc sẽ dịch file đó và tạo ra các object và liên kết. Tuy nhiên để có file hex để nạp vào chip thì cần thêm lệnh build

    3.2. Định nghĩa lệnh dịch tạo file nạp .ihx (build, Ctrl+Shift+B) : Vào Tools/Options, vào Tools chọn Scheme: C/C++, sau đó nhấn Add để tạo và định nghĩa lệnh dịch tạo file nạp .ihx. Điền các tham số như sau:
    Name: Build with SDCC
    Command: sdcc
    Folder: %d
    Parameters: %d%f *.rel --stack-auto --nooverlay
    Shortcut: Ctrl+Shift+B (nhấn Ctrl và Shift, gõ B)
    Save: Current File
    Tick vào This tool will modify the current file

    Xong lệnh dịch (build). Khi bạn nhấn tổ hơp phím Ctrl+Shift+B khi đang mở một file .C nào đó thì sdcc sẽ dịch file đó và tạo ra file .ihx. File này giống hệt file hex mà các trình dịch khác tạo ra để nạp vào chip.


    4. Test:
    Chạy Programmers Notepad (PN.EXE). Vào File/New/Project
    Click chuột phải vào cửa sổ projects, chọn add files và chọn một file C nào đó có nội dung như sau:


    #include <8051.h>
    #include <stdio.h>

    void main()
    {
    // Khởi tạo cổng COM (rất giống Keil phải không các bạn)
    TMOD|= 0x20; // 00100000 Timer 1, Mode 2
    SCON= 0x50; // 01010000 Data 1-8-1, No Parity
    TH1= 0xFB; // Baud Rate 9600, giả sử Clock= 18.432MHz
    TR1= 1; // Start Timer 1

    // Test hàm printf
    printf("Hello World!\r\nThis is SDCC");

    while(1);
    }


    Nhấn tổ hợp Ctrl+Shift+B bạn sẽ có một file ihx để nạp vào chip.
    Chúc các bạn vui vẻ với trình biên dịch hay ho này nhé.



    -------------------------------------------------------------------------
    Chú ý: Một số chương trình mô phỏng như proteus không chấp nhận tên tệp là .ihx, nên bạn phải đổi tên tệp vừa dịch ra thành .hex. Tôi đưa ra một cách đổi tên tự động với phím nóng trong Programmers Notepad như sau: Bạn tạo ra một file tên là Rename.bat (file tự chạy), click chuột phải vào nó và chọn edit, soạn nội dung như sau:
    IF EXIST *.HEX (del *.HEX & ren *.IHX *.HEX) ELSE (ren *.IHX *.HEX)
    Sau đó save và copy file này vào thư mục bin trong thư mục mà bạn cài SDCC. Định nghĩa một lệnh mới trong SDCC tương tự như ở trên. Ví dụ:
    Name: Rename IHX to HEX
    Command: Rename.bat
    Folder: %d
    Parameters:
    Shortcut: Ctrl+Shift+N (nhấn Ctrl và Shift, gõ N)
    Save: None
    Lệnh tự động đổi tên tệp .ihx bạn vừa dịch sang .hex
    Attached Files
    Last edited by bvhoang; 12-04-2009, 00:05.

  • #2
    Cái này thì nhiều lắm rồi,VD như KEIL C, Pinnacle 5.2,viết chương trình xong biên dich luôn rôi.Cái này có ưu điểm j kô.T thấy cần phải có 2 chương trình bạn nói trên là không tối ưu cho lắm.

    Comment


    • #3
      Đề nghị bạn đọc lại phần giới thiệu! Keil thì quá tuyệt rồi, mỗi tội đắt (vài nghìn $). Các công ty nhỏ lẻ mà trang bị mỗi máy một lisence thì vỡ nợ. Tất nhiên chẳng ai cấm sinh viên dùng phần mềm bẻ khóa cả nhưng chúng ta nên suy nghĩ nghiêm túc về vấn đề bản quyền. Đố bạn trả lời được câu hỏi này: Tại sao bây giờ rất nhiều doanh nghiệp, cơ quan, trường học sử dụng OpenOffice thay cho MS Office?

      Comment


      • #4
        Nguyên văn bởi bvhoang Xem bài viết
        Đề nghị bạn đọc lại phần giới thiệu! Keil thì quá tuyệt rồi, mỗi tội đắt (vài nghìn $). Các công ty nhỏ lẻ mà trang bị mỗi máy một lisence thì vỡ nợ. Tất nhiên chẳng ai cấm sinh viên dùng phần mềm bẻ khóa cả nhưng chúng ta nên suy nghĩ nghiêm túc về vấn đề bản quyền. Đố bạn trả lời được câu hỏi này: Tại sao bây giờ rất nhiều doanh nghiệp, cơ quan, trường học sử dụng OpenOffice thay cho MS Office?
        Tại sao bây giờ rất nhiều doanh nghiệp, cơ quan, trường học sử dụng OpenOffice thay cho MS Office ư?

        Vì:
        Ưu điểm thứ 1 là sử dụng OpenOffice.org (OOo), thay vì dùng MS Office (MSO), sẽ cho phép tiết kiệm một số tiền rất lớn nếu như phải mua giấy phép sử dụng phần mềm MSO. Việc này cực kỳ quan trọng đối với các nước đang phát triển như Việt Nam, đặc biệt trong ngành giáo dục. Chu kỳ sống của một Open Source thường bắt đầu là phần mềm nhỏ, miễn phí. Phần mềm này sẽ phát triển tới bản beta, version 1.0, 2.0,... cho tới khi nhận được sự ủng hộ và tài trợ rộng rãi của cộng đồng. Những phần mềm như vậy sẽ nhanh chóng có được thương hiệu riêng và nhóm phát triển bắt đầu đưa ra các dịch vụ hỗ trợ người dùng có chi phí.

        Ưu điểm thứ 2 phải kể đến tính đa dạng của Open Source. Một phần mềm tốt trong môi trường này sẽ nhanh chóng được triển khai, phát triển trong môi trường khác. Các tính năng cũng sẽ được cộng đồng Open Source bổ sung. Để làm như vậy, các phần mềm đều có kiến trúc mở, theo dạng module để có thể sẵn sàng cấu hình các tính năng mới

        Ưu điểm thứ 3 nằm ở độ ổn định và ít lỗi. Một khi đã chọn giải pháp Open Source, khách hàng luôn biết rõ hiện còn tồn tại bao nhiêu bug (lỗi), các bug sẽ sửa lúc nào, phiên bản nào,... Điểm này khác hẳn những phần mềm "closed" source ở chỗ chúng vẫn có bug nhưng không biết lúc nào mới được sửa. Bản chất của Open Source là phát triển bởi nhóm nhỏ nhưng sử dụng và test bởi nhiều người, có thể lên đến hàng trăm, thậm chí hàng ngàn người. Nhóm phát triển, để phần mềm của mình đạt được tiêu chuẩn Open Source thường phải đưa ra đầy đủ các tài liệu thiết kế, hướng dẫn cài đặt, các forum thảo luận, yêu cầu tính năng, các hệ thống kiểm soát mã nguồn, bug...

        Trong công văn, Bộ Giáo dục và Đào tạo khẳng định phần mềm OpenOffice với các module soạn thảo văn phòng (Writer), bảng tính điện tử (Spreasheet), đồ họa (Draw), trình chiếu (Presentation) và cơ sở dữ liệu (Base) hoàn toàn đáp ứng được các yêu cầu sử dụng trong công tác giảng dạy, tương đương với Microsoft Office. Việc mua bản quyền phần mềm Microsoft Office của Microsoft sẽ do Cục Công nghệ thông tin (Bộ Giáo dục và Đào tạo) làm đầu mối, các đơn vị không được tự mua phần mềm này.

        Ông Quách Tuấn Ngọc, Cục trưởng Cục Công nghệ thông tin, Bộ Giáo dục và Đào tạo cho biết việc cài đặt OpenOffice dự kiến sẽ bắt đầu triển khai đồng loạt trong toàn ngành giáo dục trong năm 2008. Để "ốp" các đơn vị trong ngành thực hiện, ông Ngọc nói sẽ đưa việc ứng dụng công nghệ thông tin, trong đó có việc sử dụng phần mềm OpenOffice như chỉ tiêu thi đua trong ngành.
        Theo ông Ngọc, việc cài đặt phần mềm này khá đơn giản, các đơn vị có thể tự triển khai. Phần mềm OpenOffice có thể tải miễn phí tại trang Web OpenOffice.org.

        Ngoài OpenOffice, Bộ Giáo dục và Đào tạo cũng yêu cầu các Sở Giáo dục và Đào tạo, các trường đại học và cao đẳng sử dụng bộ gõ tiếng Việt mã nguồn mở Unikey và trình duyệt nguồn mở FireFox trong công tác giảng dạy.

        Hiện nay, toàn bộ các máy tính của các cơ quan Đảng đã được chuyển sang dùng bộ phần mềm văn phòng Open Office. Bộ Thông tin và Truyền thông đã thành lập Hội đồng tư vấn đánh giá OpenOffice và dự kiến sẽ có hướng dẫn việc dùng Open Office trong các cơ quan nhà nước.

        Như vậy trong tương lai gần Open Office hoàn toàn có thể trở thành đối thủ đáng gờm, thay thế Microsoft Office trong hệ thống giáo dục tại Việt Nam nói riêng và các ngành khác nói chung
        -----------------------------------------------------------------------------------

        Nhưng theo tôi nghĩ rằng những phần mềm hổ trợ cho việc học tai gia thì dùng cái nào chẳng được,một khi dùng phần mềm náo mà có nhiều người dùng thì nó rất dễ hỏi,bạn có đồng ý không?nhưng trong tương lai gần thì chắc là nhiều người dùng phần mềm như bạn nói, tới lúc đó mình thay đổi theo.Cho tiện việc phục vụ học tập của mình đấy mà.
        Last edited by thanhtuan245; 12-04-2009, 14:33.

        Comment


        • #5
          SDCC cho Zilog

          Tôi muốn hỏi là dùng SDCC biên dịch cho họ Zilog thì như thế nào?

          Comment


          • #6
            SDCC Shot

            Hi All!
            Đây là preview, và bộ cài của trình dịch SDCC và bộ soạn thảo Programmers Notepad.
            Bộ SDCC thì chạy cài đặt, cài đặt xong nếu thấy hỏi gì thì nhấn YES.
            Bộ PN thì giải nén ra, chạy pn.exe và config như đã giới thiệu ở trên.
            Attached Files

            Comment


            • #7
              Cảm ơn

              Chưa biết dùng có hay không nhưng cũng xin cảm ơn bạn

              Comment


              • #8
                có ai biết embedded unit - một unit test frame work cho lập trình nhúng với ngôn ngữ C không ạ ?? http://embunit.sourceforge.net/
                bác nào biết cách makefile gói embunit này bằng SDCC chỉ em với ạ, cám ơn các bác nhiều !!

                Comment


                • #9
                  hic, không ai biết cái này à

                  Comment


                  • #10
                    sao em compiler thì không sao nhưng khi buil thì toàn báo thế này

                    > "sdcc" D:\VDK\8051\TestSDCC\kidteam.c *.rel --stack-auto --nooverlay
                    Multiple definition of __start__stack
                    Multiple definition of __sdcc_program_startup
                    Multiple definition of _main
                    Multiple definition of _delaytm
                    Multiple definition of _init
                    Multiple definition of _delay

                    > Process Exit Code: 1
                    > Time Taken: 00:00
                    vậy là sao vậy các bác

                    Comment


                    • #11
                      ngắt sử dụng như thế nào trong SDCC.
                      nhóm điện tử facebook

                      Comment

                      Về tác giả

                      Collapse

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

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

                      Collapse

                      Đang tải...
                      X