Một số lỗi khi biên dịch file hex năm 2024
Tiếp theo ta chọn loại Chip: ở đây ta lựa chọn STM32F100x Ấn Yes và ta đã hoàn thành Bước 1 – tạo project mới. Show v Bước 2: Tạo File.CTiếp theo ta cần tạo 1 File.C để viết chương trình cho Chip lên file đó.Vào File->New: Sau đó chọn Save Chọn đường dẫn vào cùng thư mục với Project vừa tạo ở Bước 1. Sau đó đặt tên, với phần đuôi mở rộng là .C: Chọn Save, và ta đã hoàn thành xong bước 2 – Tạo File.C v Bước 3: Add File.C và ProjectTa cần phải liên kết File.C với Project vừa tạo với nhau: Trong giao diện Keil C, ở không gian làm việc của Project: Chuột phải vào phần “Source Group 1” -> Add files to Group “Source Group 1”: Chọn đường dẫn đến thư mục Project => chọn File.C vừa tạo ở bước 2 => Và ta đã hoàn tất giai đoạn tạo Project, chuẩn bị viêt code v Bước 4: Biên dịch và tạo File HexTùy chỉnh Options: + Sửa tần số thạc anh + Tạo file Hex Biên dịch chương trình: Ấn vào biểu tượng Build. Nếu thành công sẽ có thông báo: “Creating hex file from …”, 0 Error. Và ta sẽ có 1 file Hex được tạo ra cùng thư mục với project. v Bước 5: Gỡ lỗi chương trình (nếu có)Nếu chương trình còn có lỗi, để tiến hành gỡ lỗi chương trình (Debug) ta thực hiện từng bước: v Bước 6: Nạp chương trình cho Vi điều khiểnTùy từng mạch nạp chuyên dụng mà ta cần cài đặt Driver, và phần mềm nạp Chip khác nhau. Trong đề tài này dùng Flash loader. + Giới thiệu Flash Loader Demonstrator (viết tắt FLD) được viết bởi STMicroelectronics, là công cụ được sử dụng cho việc nạp file thực thi chương trình lập trình (file .hex, .bin) vào chip ARM Cortex - M3 thông qua cổng nối tiếp USART1. + Hướng dẫn nạp và chạy chương trình nạp bằng FLD Trước khi tiến hành nạp chương trình bằng FLD, cần thiết lập chip ở chế độ Boot từ System Memory bằng cách đặt chân Boot 0 ở mức logic cao (mức +5V), chân Boot 1 ở mức điện áp thấp (mức 0V). Tiến hành Reset chip và chạy phần mềm FLD. Sau khi nạp xong, để chạy chương trình cần thiết lập lại cho chip ở chế độ Boot từ User Flash và tiến hành Reset lại chip. + Các bước nạp chương trình bằng FLD Để nạp mã thực thi chương trình bằng FLD, cần thực hiện 5 bước chính như sau: · Bước 1: Kết nối cable COM từ máy tính tới chip thông qua cổng USART1, khởi chạy chương trình Flash Loader Demonstrator. Tiến hành chọn tốc độ Baud Rate ở 57600 và Parity là Even 1. Sau đó chọn “Next” · Bước 2: Khi kết nối thành công, FLD sẽ hiển thị thông tin kích thước bộ nhớ Flash củachip như hình 2, chọn “Next”. · Bước 3: Sau bước hiển thị cấu hình Flash, FLD chuyển sang phần hiển thị thông tin chip, chọn “Next”. · Bước 4: Giao diện lựa chọn điều khiển nạp chương trình, tiến hành thiết lập các thao tác trên chip, chọn “Next”. Lưu ý: chọn “Global Erase” để xóa toàn bộ dữ liệu cũ trước khi nạp dữ liệu mới vào bộ nhớ chương trình. Chọn “Verify after download” để kiểm tra dữ liệu sau khi nạp. · Bước 5: kết thúc việc nạp chip thành công, FLD sẽ hiển thị giao diện thông báo, quá trình nạp là hoàn tất. Để chạy chương trình vừa nạp, cần thiết lập lại cho chip ở chế độ Boot từ User Flash và tiến hành Reset lại chip. Bài này mình sẽ hướng dẫn các bạn dùng Keil C để dịch sang file .hex dùng cho mô phỏng mạch trên Proteus. Công cụ chúng ta cần là Keil C và Proteus 8.4. File .hex là gì ? Hex ở đây được viết tắt bởi từ hexadecimal có nghĩa là hệ cơ số 16 hay hệ thập lục phân. Khi bạn viết code và nạp chương trình cho vi điều khiển thì không đơn thuần là nạp những "câu lệnh" bạn viết ra đưa vào vi điều khiển, mà phải thông qua trình biên dịch (Code Vision, Keil C...đều là trình biên dịch) "dịch" lại những gì mình viết và tạo ra một chuỗi kí tự gồm những chữ (từ A đến F) và số (từ 0 đến 9) thuộc hệ thập lục phân. Những chữ số này nạp vào vi điều khiển thì vi điều khiển mới "hiểu" được. Những chữ số này được đóng gói và lưu lại thành một file có đuôi mở rộng là ".hex". Tại sao lại dịch sang file .hex là không phải là file với định dạng khác? Vi điều khiển chỉ có khả năng làm việc với các tập lệnh dưới định dạng là ở cơ số 16, vì vậy ta cần một file .hex để nạp vào vi điều khiển, qua đó thì vi điều khiển mới hoạt động được. 1. Hướng dẫn dùng Keil C để dịch ra file .hex Để bắt đầu viết code cho một dự án nào đó, các bạn mở Keil C lên và chọn Project/ New uVision Project. Màn hình tiếp theo các bạn điền tên project rồi chọn OK. Ở màn hình tiếp theo, các bạn chọn vi điều khiển mà các bạn đang dùng, ở đây mình chọn là AT89S52. Ở màn hình tiếp theo, đây là lựa chọn không bắt buộc, các bạn có thể đồng ý thêm file STARTUP.A51( Đây là một file trích xuất từ hệ thống, được viết bằng hợp ngữ). File này không ảnh hưởng gì đến chương trình của bạn nên các bạn có thể bỏ chọn. Ở màn hình tiếp theo, ta bắt đầu thêm file C cho project bằng cách chọn chuột phải vào ô Source Group 1 và chọn Add new item to.... Nếu các bạn đã soạn thảo file .c hay .h từ trước đó mà muốn nhập vào project thì các bạn có thể chọn Add existing items to... và chọn các file đã soạn trước đó. Các bạn gõ tên cho file c và ấn Add. Màn hình tiếp theo là phần soạn thảo code, ngôn ngữ dùng ở đây là C. Mình có viết qua chương trình nhấp nháy LEDs như sau: include |