Danh mục

Lập trình nhúng

Số trang: 4      Loại file: doc      Dung lượng: 51.50 KB      Lượt xem: 12      Lượt tải: 0    
Thư viện của tui

Phí lưu trữ: miễn phí Tải xuống file đầy đủ (4 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Để hiểu hơn về hệ thống cũng như cách thức tạo một dự án ARM hoàn chỉnh ở bài nàychúng tôi giới thiệu cách sử dụng phiên bản miễn phí của trình biên dịch Sourcery để tạo,quản lý và biên dịch một dự án dành cho ARM Cortex.
Nội dung trích xuất từ tài liệu:
Lập trình nhúngĐể hiểu hơnvề hệ thống cũng nhưcáchthức tạo một dự án ARM hoàn chỉnh ở bài nàychúng tôi giới thiệu cách sử dụng phiên bản miễn phí của trình biên dịch Sourcery để tạo,quản lý và biên dịch một dự án dành cho ARM Cortex.1. Giới thiệu Sourcery Sourcery là một công ty đối tác của ARM chuyên phát triển các trình biên dịch dành cho lõiARM dựa trên GNU Toolchain. Hiện tại phiên bản Sourcery G++ hỗ trợ biên dịch với các tậplệnh Thumb, Thumb-2 trên tất cả các kiến trúc của ARM bao gồm cả phiên bản ARMv7. Sourcery có cung cấp cho cộng đồng một phiên bản dưới dạng miễn phí và có thể tải vềtừ đây.2. Đặc điểm của dự án nhúng Khác với các ứng dụng viết trên máy tính PC, các dự án nhúng thường có một đặc thù khácbiệt đó là: hệ thống dự án, mã nguồn được viết, quản lý sau đó sẽ được biên dịch trên mộtmáy tính của người phát triển (gọi là host). File thực thi sau đó sẽ được nạp vào board nhúng. Hình 1: Mô hình lập trình nhúng g Một dự án nhúng được phát triển như trên, ngoài các file của người dùng, còn cần phải cócác thư viện lập trình chuẩn, thư viện dành cho nhân xử lý cùng các ngoại vi, thư viện củacác middleware. Để quản lý hệ thống mã nguồn lớn đó người ta hay dùng một công cụ gọi làMakefile. Sau khi biên dịch các file trong dự án, chúng ta cần liên kết tất cả các thành phần cần thiếtnhư: đoạn mã start-up, các thư viện hàm chuẩn, ứng dụng của ngươi dùng, vùng dữ liệu …sắp xếp chúng theo một trật tự vào file thực thi . Quá trình này gọi là linker và được tổ chứcbởi các file viết dưới dạng script thường gọi là linker script.3. Xây dựng dự án Các bạn có thể download framework dự án dành cho STM32 tại đây. Cấu trúc framework như sau + Libraries \\ thư viện chuẩn CMSIS của STM32 + User \\ chứa file ứng dụng của người dùng . Makefile \\ file quản lý dự án . stm32.ld \\ file linker script . STM32_COMMON.ld . STM32_SEC_FLASH.ld Trái tim của dự án chính là file Makefile. Makefile chứa các hướng dẫn biên dịch, quản lýcác thành phần mã nguồn của dự án. Chúng tôi sẽ không đi sâu vào cấu trúc và cách viếtMakefile, người dùng chỉ cần quan tâm đến các thiết lập ảnh hưởng trực tiếp đến dự án.#*********** For user to configure the project *****************#include directory for header files and libraries# Pathes to librariesAPPLIBDIR = ../LibrariesSTMLIBDIR = $(APPLIBDIR)STMSPDDIR = $(STMLIBDIR)/STM32F10x_StdPeriph_DriverSTMSPDSRCDIR = $(STMSPDDIR)/srcSTMSPDINCDIR = $(STMSPDDIR)/incCMSISDIR = $(STMLIBDIR)/CMSIS/CM3/CoreSupportCMSIS_STM32_DIR = $(STMLIBDIR)/CMSIS/CM3/DeviceSupport/ST/STM32F10xCMSISDIR_STARTUP_DIR = $(STMLIBDIR)/CMSIS/CM3/DeviceSupport/ST/STM32F10x/startup/gcc(ride7)#User source codeUSER_OBJS = main.o#Output directory nameOUTDIR = Obj#application name, the executable file will be $(MAIN_OUT).binMAIN_OUT = led#User pre-defineCDEFS = -DUSE_STDPERIPH_DRIVERCDEFS += -DUSE_FULL_ASSERTCDEFS += -DUSE_STM3210RC_GEM31_B+ Thêm file Trong Makefile, biến USER_OBJS chịu trách nhiệm quản lý các file của người dùng cầnđược biên dịch. Để thêm file cần biên dịch, ta sử dụng cú pháp USER_OBJS += file1.o Lưu ý là nếu đặt file ở thư mục khác với Makefile, chúng ta cần cộng dẫn đường dẫntương đối(so với Makefile) vào biến USER_OBJS+ Thêm driver trong thư viện chuẩn CMSIS của STM32 Biến LIBSTM32_OBJS quản lý các driver chuẩn nằm trong bộ thư viện CMSIS củaSTM32. Lưu ý khi chúng ta cần sử dụng driver nào, thì mới cộng thêm nó để giảm kích thướcfile thực thi.+ Thay đổi thư mục biên dịch Biến OUTDIR quản lý tên của thư mục sẽ chứa các file thực thi sau khi biên dịch hoànthành+ Thay đổi tên ứng dụng Thay đổi giá trị MAIN_OUT để tạo ra tên file thực thi theo ý muốn người dùng.+ Xác lập giá trị tiền xử lý CDEFS quản lý các giá trị tiền xử lý của dự án. CDEFS += -D”Giá trị tiền xử lý”Sau khi thiết lập các thành phần dành cho dự án xong, để biên dịch, chúng ta vào màn hìnhconsole của windows, chuyển tới thư mục chứa Makefile và gõ $cs-makeĐể dọn dẹp các file sau khi biên dịch, chúng ta gõ: $cs-make clean4. Nhận xét Thông qua framework dựng sẵn này, chúng ta có thể tự quản lý dự án thay vì sử dụng cáctrình biên dịch có sẵn. Đồng thời cũng hiểu cách thức một dự án được cấu thành như thế nào.Tuy nhiên sử dụng Sourcery phiên bản miễn phí có vài điểm bất tiện như: một số hàm chuẩnlập trình không được hỗ trợ đầy đủ trong newlib, file thực thi sau khi biên dịch lớn hơn nhiềuso với khi biên dịch bằng Keil ARM.

Tài liệu được xem nhiều: