Thông báo

Collapse
No announcement yet.

Hướng dẫn tạo project keil-c cho vdk arm cortex m3 stm32f103rc

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

  • Hướng dẫn tạo project keil-c cho vdk arm cortex m3 stm32f103rc



    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.

    Chuyển sang thẻ C/C++ , tại đây chúng ta sẽ điền các tham số tiền định nghĩa cho thư viện với các tham số như: USE_STDPERIPH_DRIVER, STM32F10X_HD, đây là định nghĩa cho thư viện rằng chúng ta đang xây dựng code trên nền chip STM32 HD của ST, ngoài ra còn có XL,CL...các bạn có thể tìm hiểu thêm tại ST Microelectronics. Trong mục Optimization các bạn chọn Level 3 (-O3) , tick chọn Optimize for Time và One ELF Section per Function, tất cả các tham số này đều sử dụng để cấu hình cho code của bạn khi biên dịch sẽ được tối ưu và hoạt động ở tốc độ cao nhất có thể.


    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.


  • #2
    Bài viết khá dài nên mình sẽ post thành 2 bài, Mod thứ lỗi

    Trỏ tới các đường dẫn sau:


    Sau khi trỏ xong hết các đường dẫn chúng ta thu được danh sách các đường dẫn inlcude sau:


    Sang thẻ Linker các bạn tick vào Use Memory Layout from Target Dialog, để trình biên dịch mặc định phân chia vùng code đã được cấu hình bên thẻ Target.


    Cuối cùng là thẻ Debug, điền các tham số như hình dưới dành cho việc debug online trên KeilC và nhấn OK để Save việc cấu hình này lại. Việc debug online trên Keil-C sẽ giúp chúng ta khá nhiều trong việc cấu hình phần cứng của chip STM32 cũng như các dòng khác nếu như Keil-C hỗ trợ.


    Trở về workspace chứa project của chúng ta, các bạn sẽ tạo file main.c rồi lưu vào thư mục ./source/src và lần lượt add các file như trong hình vào thư mục tương ứng của project bằng các double click vào Group tương ứng, đường dẫn chứa các file cũng đã được mình ghi chi tiết trong hình.


    Trên đây là bài viết hướng dẫn cách tạo một project sử dung Keil-C cho các dự án sử dụng chip STM32F103x của ST, hy vọng bài viết sẽ giúp ích cho những ai đang bắt đầu quá trình nghiên cứu của mình. Trong các bài tiếp theo, mình sẽ hướng dẫn cụ thể và chi tiết các bài về lập trình cho dòng chip này trên ngôn ngữ C.

    Đây được xem là một project chuẩn để sử dụng cho các project khác sau này, vì thế các bạn nên copy và lưu lại chuẩn này để mỗi lần tạo project mới thì chúng ta không cần phải thao tác lại các bước trên để tránh mất thời gian.

    Các bạn có thể download project mẫu ở link dưới đây:

    [Tutorial]Project_KeilC_ARM_Cortex_M3.rar


    Nguồn VietComp Electronics

    Comment


    • #3
      tiếp tục đi bác
      Website chính thức đổi địa chỉ website thành
      Mời các bạn ghé thăm !!!

      Comment


      • #4
        Mở cái project đính kèm nó lên wainning báo unable to open primary entity là sao bác [MENTION=111013]chumanh[/MENTION]

        Comment


        • #5
          [MENTION=280035]NHDang04[/MENTION], bạn ktra lại xem đã cài MDK-ARM chưa

          Comment


          • #6
            Mình làm y như ậy nhưng báo lỗi .\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\stm32f1 0x.h(8297): error: #5: cannot open source input file "stm32f10x_conf.h": No such file or directory ?

            Comment


            • #7
              Nguyên văn bởi i1020242 Xem bài viết
              Mình làm y như ậy nhưng báo lỗi .\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\stm32f1 0x.h(8297): error: #5: cannot open source input file "stm32f10x_conf.h": No such file or directory ?
              Tự xử đc rồi

              Comment


              • #8
                Với dma của thư viện CMSIS cho STM32 sẽ có 1 chút vấn đề .

                Comment

                Về tác giả

                Collapse

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

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

                Collapse

                Đang tải...
                X