Hướng dẫn cài đặt SDCC và Code::Blocks lập trình Nuvoton

Cài đặt SDC Complier và Code::Blocks IDE

Ở bài này chúng ta sẽ cài đặt các công cụ cần thiết cho việc lập trình Nuvoton N76E885 trên máy tính Windows đó là SDCC và Code::Blocks. Các bạn có thể sử dụng các trình biên dịch khác nhau cho dòng chi này, nhưng làm việc với nhiều trình biên dịch và IDE khác nhau sẽ giúp chúng ta dễ dàng tiếp cận dòng chip mới hơn.

Bài 2 trong Serie Học lập trình 8051 Nuvoton từ A tới Z

Cài đặt trình biên dịch SDCC

Tải SDCC

Các bạn vào trang chủ http://sdcc.sourceforge.net/ mục download để tải SDCC phiên bản mới nhất:

word image 5

word image 6

word image 7

Cài đặt SDCC

Các bạn cài đặt SDCC tương tự như hầu hết các phần mềm khác:

word image 8

Cứ việc để mặc định và nhấn Next đến bước này thì dừng lại:

word image 9

Các bạn tích chọn vào ô Add…to the PATH như hình dưới:

word image 10

Tiếp tục nhấn Next và hoàn thành:

word image 11

Các bạn mở công cụ Command Prompt của máy tính Windows và gõ sdcc -v, nếu hiện ra như hình bên dưới là đã cài đặt thành công:

word image 12

Hướng dẫn cài đặt IDE Code::Blocks

Tải Code::Blocks

Các bạn vào trang chủ https://www.codeblocks.org/ mục download để tải Code::Blocks phiên bản mới nhất:

word image 13

word image 14

word image 15

Cài đặt Code::Blocks.

Các bạn cũng cài đặt Code::Blocks tương tự những phần mềm khác:

word image 16

Cứ để mặc định và nhấn Next đến khi hoàn thành:

word image 17

Liên kết SDCC vào Code::Blocks

Mặc định sau khi cài SDCC và kiểm tra lại bằng Command Prompt thành công thì Code::Blocks sẽ tự liên kết với trình biên dịch SDCC. Ở lần chạy Code::Blocks đầu tiên, các bạn sẽ thấy một của sổ thông báo như hình dưới:

word image 18

Trường hợp gặp phải chữ “Not found” thay vì “Detected” ở cột Status?

Nguyên nhân lỗi này chính là SDCC chưa được thêm vào biến môi trường (PATH). Điều này có thể do các bạn đã bỏ qua bước tích vào mục “Add…to PATH” (các bạn xem lại phần 1.2).

Để fix lỗi:

  • Các bạn hãy thêm SDCC vào biến môi trường (Tương tự cài đặt VS code)
  • Hoặc đơn giản hơn, các bạn hãy cài đặt lại SDCC.

Làm quen với giao diện Code::Blocks.

Tối giản giao diện Code::Blocks

Khi chạy Code::Blocks lần đầu, ta có giao diện khá nhiều nút chức năng.

word image 19

Để gọn lại, các bạn vào “View Perspectives Code::Blocks minimal”

word image 20

Giao diện lúc này gọn hơn:

word image 21

Các bạn có thể tắt “Start here” đi. Sau đó vào “View” chọn 2 mục “Manager” và “Logs”

word image 22

Giới thiệu giao diện Code::block

Không gian làm việc của chúng ta gồm 3 phần chính như hình sau:

  • Phần 1: đây là phần của editor, là phần để viết code (các file .c, .h,…).
  • Phần 2: phần này chứa các thông tin liên quan đến project như cây thư mục, các file, tùy chọn đường dẫn, tùy chọn trình biên dịch…
  • Phần 3: phần này chứa thông tin về quá trình biên dịch (các lỗi, cảnh báo, dữ liệu debug,…).

Cũng tương tự những IDE khác như KeilC, VS code mà thôi.

word image 23

Tạo project Code::Blocks cho 8051 và biên dịch bằng SDCC

Tại giao diện Code::Blocks, chúng ta vào File -> New -> Project:

word image 24

Vào Categories, chọn Embedded Systems, rồi chọn MCS51 Project:

word image 25

word image 26

word image 27

Đặt tên và chọn nơi lưu project:

word image 28

word image 29

Các bạn memory model là “small”.

Phần Memory sizes, các bạn dựa vào datasheet của MCU để thiết lập cho đúng theo đơn vị byte.

Ví dụ mình lập trình cho N76E885, theo như datasheet ta có ROM là 18 Kbyte = 18432 Byte (không dùng LDROM), RAM nội (IDATA) là 256 Byte, RAM ngoại (XDATA) là 256 Byte. Việc khai báo này giúp ích trong trường hợp project của bạn quá lớn, ROM, RAM của chương trình đích (chạy trên MCU) có thể vượt qua con số đã thiết lập, từ đó trình biên dịch sẽ báo lỗi cho chúng ta trong quá trình biên dịch.

Nhớ chọn Output Format là Intel hex luôn nhé.

word image 30

Như vậy là đã tạo xong project:

word image 31

Mặc định khi tạo 1 project MCS51, Code::Blocks sẽ tạo sẵn 1 file main.c với nội dung như hình trên và include sẵn một header file của 8051 chuẩn (định nghĩa các thanh ghi cơ bản nhất).

Build Project dùng Code::Blocks

Trước khi build project, ta cần chọn trình biên dịch, các bạn làm như hình sau:

word image 32

Ở đây mình chọn Small Device C Compiler (SDCC) để biên dịch.

word image 33

Lưu ý, các bạn làm tương tự cho cả “Debug” và “Release” luôn nhé.

Sau các bước thiết lập, chúng ta sẽ biên dịch (build project). Các bạn nhấn “Ctrl + F9” hoặc vào Build -> Build như hình:

word image 34

Biên dịch thành công (0 error, 0 warning):

word image 35

Chuẩn bị header file cho Nuvoton N76E885

Header file là gì?

Chúng ta đều biết, thực chất lập trình là thay đổi giá trị của các ô nhớ trong vi điều khiển. Header file tương ứng với các con vi điều khiển khác nhau sẽ định nghĩa sẵn các vị trí trên ô nhớ cho từng ngoại vi, Ram, thanh ghi, vector ngắt…

Thông thường các file header này được định nghĩa sẵn trong các IDE lập trình cho loại vi điều khiển đó hoặc ở trong thư viện viết cho dòng vđk đó.

Tạo header file cho N76E885

Để viết code cho N76E885, chúng ta cần header file của nó theo chuẩn của SDCC.

Trong serie mình đã tạo sẵn header file, các bạn có thể để tải tại đây: https://github.com/nguyenkhue2608/8051-Nuvoton-N76E885-Example

Trong thư mục Header file. Các bạn có thể clone hoặc download về.

File nén bao gồm 2 file: “N76E885.h” (định nghĩa các thanh ghi, bit của N76E885) và “Define.h” (chứa các Macro và hằng số hay sử dụng).

Sau khi tải về các bạn giải nén và copy 2 file đó vào thư mục cài đặt của SDCC theo như hình sau:

word image 36

Kết luận

Như vậy chúng ta đã chuẩn bị xong công cụ để viết code đó là trình biên dịch SDCC và IDE Code::Blocks. Hẹn các bạn ở bài sau, chúng ta sẽ viết chương trình và nạp code lên MCU.

Nếu cảm thấy bài viết có ích hay đánh giá và chia sẻ cho bạn bè. Đừng quên tham gia nhóm Nghiện lập trình để cùng trao đổi và kết nối nhé!

3.5/5 - (4 bình chọn)

Trả lời

Email của bạn sẽ không được hiển thị công khai.