Xin chào, để hâm nóng cho khí thế học vi điều khiển ARM hôm nay mình sẽ viết bài hướng dẫn tạo project bằng Keil-C cho những ai bắt đầu tìm hiểu về ARM Cortex M3 STM32F103x của hãng ST Microelectronics, chú ý bài viết sẽ chi tiết và cụ thể nhất cho Newbie , vậy nên sai sót chỗ nào các cao thủ chém nhẹ . Trong project này mình sẽ đi một cách rất chi tiết và cụ thể dành cho những người mới bắt đầu bằng việc step-by-step bao gồm cả hình ảnh và chú thích.
Để chuẩn bị cho tutorial này, các bạn được yêu cầu tải phiên bản Keil-C ARM MDK phiên bản mới nhất của Keil-C về tại trang chủ Keil Embedded Development Tools for ARM, Cortex-M, Cortex-R4, 8051, C166, and 251 processor families., sau khi tải về, các bạn tiến hành cài đặt vào máy tính host PC chạy hệ điều hành Windows.
Bước 1: Tạo project
Các bạn mở Keil-C lên, vào menu Project -> New uVision Project... -> tạo thư mục lưu cho project, đặt tên cho project và lưu lại, giống như dialog phía dưới trong hình.
Sau khi nhấn Save các bạn được chuyển sang một cửa sổ Select Device for Target , tại cửa sổ này, các bạn chọn dòng chip mình muốn sử dụng cho project, cụ thể thì ở đây mình sẽ chọn dòng STM32F103RC của ST Microelectronics ,hiện nay thì dòng này khá phổ biến trên thị trường Việt Nam. Chọn chip xong, các bạn nhấn OK để đóng cửa sổ lại, sẽ xuất hiện một hộp thoại yêu cầu bạn add file Startup của vi điều khiển được chỉ định, các bạn nhấn Yen để nó add vào, đây là file cần thiết để khởi tạo hệ thống trong ARM processor core.
Tiếp theo, các bạn vào thư mục chứa project, cụ thể như đã tạo ở trên mình có đặt tên là [Tutorial] Project_KeilC_ARM_Cortex_M3 , trong thư mục này các bạn tạo một thư mục đặt tên là thư mục soucre, thư mục source sau này sẽ là thư mục chứa các file có đuôi mở rộng *.h và *.c, trong thư mục source các bạn có thể phân chia ra 2 thư mục con nữa là inc và src, để lưu tương ứng các file .h và .c. Việc phân chia như thế sẽ giúp chúng ta quản lý dễ dàng hơn đối với các dự án có số lượng file chương trình lớn.
Trở lại workspace của KeilC với dự án đã tạo lúc nãy, các bạn chuột phải vào Target và chọn Add Group... để tạo các file group, các file group này được sử dụng để tạo một view tổng quan cho toàn bộ project trong KeilC của bạn, với các group Sources sử dụng để chứa các file mở rộng *.c, group Header sử dụng để chứa các file header *.h, group STM32 Lib sử dụng để chứa các file driver phần cứng của thư viện cung cấp bởi ST Microelectronics dành cho series ARM Cortex M3 STM32F10x, và cuối cùng là group Core M3, đây là group chứa các file định nghĩa địa chỉ cũng như phân bổ vùng nhớ của các dòng chip lõi ARM Cortex M3.
Tiếp theo, các bạn chép thư mục Libraries vào thư mục chứa project của mình, đây là thư mục được cung cấp trong gói STM32_StdPeriph_Driver của ST Microelectronics hoặc các bạn cũng có thể tại tại đây STM32F10x_StdPeriph_Driver.rar , thư mục này sẽ bao gồm các file cho phép chúng ta truy suất tới các thanh ghi cũng như các hàm cho phép khởi tạo phần cứng của chip. sau khi chép xong vào thư mục, chúng ta sẽ có được một cây thư mục project như hình dưới:
Bước 2: Cấu hình cho project
Để cấu hình cho project, các bạn click vào mục Target Options... như hình dưới:
Tại thẻ Target, các bạn tick vào mục Use MicroLIB để trình biên dịch cho phép các bạn sử dụng thư viện bên ngoài, cụ thể ở đây là thư mục Libraries.
Sang thẻ Output, các bạn tick chọn mục Create HEX File, nó sẽ cho phép các bạn tạo ra file hex để nạp vào chip qua programming tool, sau đó nhấn vào Select Folder for Object..., đây là thư mục sẽ sử dụng để chứa các file object khi trình biên dịch build chương trình, các bạn nên làm điều này bởi khi build, trình biên dịch sẽ tạo ra khá nhiều file object với mỗi dự án sử dụng chip ARM, việc làm này sẽ giúp các bạn tối ưu được thời gian làm việc và quản lý một cách chuyên nghiệp nhất.
Sau khi nhấn vào Select Folder for Objects... sẽ xuất hiện cửa sổ yêu cầu bạn chọn thư mục để lưu, tại đây nếu chưa có thư mục để lưu các bạn có thể tạo và đặt tên, như hình dưới thì mình đặt tên nó là obj, tạo xong các bạn phải mở nó lên sau đó mới nhấn OK để nó lấy đường dẫn.
Sang thẻ Listing, tương tự như trong thẻ Output, các bạn cũng sẽ tạo và mở một thư mục để lưu các file .lst khi trình biên dịch sinh ra, như hình thì mình đặt là lst.
Tại mục Include Paths, nhấn vào nút [...] để mở hộp thoại add các đường dẫn tới thư mục chứa các file header của thư viện cũng như do chúng ta tự tạo. Việc này nhằm mục đích khi chúng ta include 1 file header bất kỳ, sẽ ko phải nêu hẳn đường dẫn của nó ra nữa mà chúng ta chỉ việc điền tên nó vào 2 dấu <tên_file.h> phía trên mỗi nơi chúng ta cần include, nhấn tạo mới và trỏ các đường dẫn.
Comment