Mục lục:

Bắt đầu phát triển STM32 trên Linux: 4 bước
Bắt đầu phát triển STM32 trên Linux: 4 bước

Video: Bắt đầu phát triển STM32 trên Linux: 4 bước

Video: Bắt đầu phát triển STM32 trên Linux: 4 bước
Video: Lập trình STM32 sử dụng những công cụ tuyệt vời và miễn phí - Thư viện Standard - Hệ điều hành Linux 2024, Tháng bảy
Anonim
Image
Image
Tải xuống mọi thứ bạn cần
Tải xuống mọi thứ bạn cần

Trong phần Có thể hướng dẫn này, tôi sẽ cho bạn thấy việc bắt đầu phát triển các chương trình STM32 trên Linux dễ dàng như thế nào. Tôi đã bắt đầu sử dụng Linux làm máy chính của mình cách đây 2 năm và chưa bị thất vọng. Mọi thứ hoạt động nhanh hơn và tốt hơn so với cửa sổ. Tất nhiên, theo thời gian thì ít tiện lợi hơn, nhưng nó buộc bạn phải tìm hiểu những thứ sâu hơn để có thể sử dụng nó.

Dù sao, trong phần hướng dẫn này, một phần của loạt bài tôi đang bắt đầu ở đây VÀ trên youtube là về cách bắt đầu nó. Hãy đảm bảo xem video youtube của tôi cũng như nơi tôi giải thích mọi thứ dưới dạng một phân đoạn và bạn có thể viết mã cùng với tôi.

Trong loạt bài này, tôi sẽ chỉ cho bạn cách bạn có thể phát triển chỉ bằng một trình soạn thảo văn bản như notepad, SublimeText hoặc Atom, vì vậy bạn không cần bất kỳ phần mềm độc quyền hoặc IDE nào. Điều này giống như xương trần và nó dễ dàng một cách đáng ngạc nhiên.

Bước 1: Tải xuống mọi thứ bạn cần

Bạn cần tải xuống ba phần để mọi thứ hoạt động:

  • Trình biên dịch GCC cho ARM
  • Tệp phần sụn STM32
  • Tiện ích liên kết St
  • Dự án mẫu

Trình biên dịch là phần mềm chính biên dịch mã C của chúng tôi với tất cả các tệp thư viện khác sang ngôn ngữ máy mà bộ điều khiển stm32 của chúng tôi có thể hiểu được. Tải xuống phiên bản biên dịch trước mới nhất của trình biên dịch này.

Thư mục chứa phần sụn STM32 là thư mục chứa tất cả các tệp khởi động và lõi cần thiết cho hoạt động của bộ xử lý chính. Chúng tôi sẽ sử dụng Thư viện Ngoại vi Chuẩn đã bị HAL vượt qua. Tôi thích StPeriphLibrary hơn vì các công ty làm việc trên bộ vi xử lý này sử dụng chúng vì nó mạnh mẽ và cũ hơn và được hỗ trợ. Nó cũng gồ ghề hơn. Nó không cắt giảm công việc bạn phải làm để khởi tạo thiết bị ngoại vi hoặc bật đèn LED, nhưng nó buộc bạn phải tìm hiểu cách hoạt động của các bộ xử lý này. Nhờ đó, bạn có thêm kiến thức về hoạt động bên trong, do đó có ý nghĩa khi lập trình bất kỳ tác vụ nào.

Phần mềm cuối cùng để tải xuống là tiện ích liên kết. Nó được duy trì trên github và được sử dụng để chuyển các tệp nhị phân đã biên dịch sang bộ xử lý bằng cách sử dụng vi mạch liên kết trên bo mạch đóng vai trò là trình gỡ lỗi / lập trình viên SWD / JTAG.

Ngoài ra, tôi đã cung cấp một thư mục dự án mẫu mà tôi sẽ nói sau và bạn có thể tải xuống. Nó nằm trong thư mục VIDEO1 đầu tiên.

Bước 2: Cài đặt phần mềm

Cài đặt phần mềm
Cài đặt phần mềm
Cài đặt phần mềm
Cài đặt phần mềm

Sau khi bạn đã tải xuống tất cả các tệp, tôi khuyên bạn nên đặt chúng vào trong một thư mục chung vì tất cả chúng đều được sử dụng cùng nhau cho cùng một mục đích. Tôi đặt tất cả các thư mục bên trong một thư mục có tên "Embedded" trong thư mục HOME của mình.

Chúng ta sẽ bắt đầu với thư viện STM32 dễ dàng nhất. Thư mục mà bạn đã tải xuống có thể được để ở đó. Chỉ cần đảm bảo tìm hiểu xung quanh để xem các tệp thích hợp được lưu trữ ở đâu. Do đó, bạn có thể thay đổi và chỉnh sửa MakeFile chính để nó hoạt động với nền tảng của bạn.

Dễ thứ hai là trình biên dịch. Bạn cũng không cần phải làm gì với nó, nhưng chúng tôi sẽ làm cho trình biên dịch trở thành một chức năng có thể truy cập toàn cầu để bạn có thể gọi trình biên dịch từ bất kỳ thư mục nào bất kể đường dẫn. Tất cả các bước có thể được thực hiện trong thiết bị đầu cuối hoặc trong gui, nhưng tôi thích sử dụng thiết bị đầu cuối vì khi bạn có kinh nghiệm, nó sẽ nhanh hơn và dễ dàng hơn và tôi khuyến khích bạn sử dụng thiết bị đầu cuối nhiều hơn, nếu bạn sợ nó. Dưới đây là các bước:

  1. Vào thư mục chính của bạn "/ home / YOURUSERNAME /" hoặc "~ /" hoặc nhập cd vào terminal
  2. mở tệp ".bashrc" bằng cách nhập: nano.bashrc
  3. cuộn xuống cuối tệp và thêm dòng này: export PATH = $ PATH: ~ / Embedded / gcc-arm-none-eabi-8-2018-q4 / bin
  4. thoát bằng cách lưu: CTRL + X, nhấp vào Y, ENTER
  5. chạy lệnh: source.bashrc để làm mới các nguồn đầu cuối
  6. kiểm tra xem mọi thứ có hoạt động không bằng cách nhập: arm-none-eabi-gcc --version, nó sẽ hiển thị phiên bản mới nhất của trình biên dịch

Để cài đặt liên kết st, hãy giải nén tệp lưu trữ mà bạn đã tải xuống vào thư mục Nhúng. Sau đó, hãy làm theo các bước sau:

  1. Chạy: làm
  2. Vào thư mục "build / Release": cd build / Release
  3. Gõ ls và bạn sẽ thấy hai tệp thực thi được gọi là "st-flash" và "st-use"
  4. Di chuyển hai thứ đó vào thư mục mẹ stlink: mv st-flash st-use../../
  5. Bạn có thể, nếu bạn muốn sử dụng hai chức năng này, chỉnh sửa lại tệp ".bashrc" trên toàn cầu bằng cách thêm:

    xuất PATH = $ PATH: ~ / Embedded / stlink /

Đó là tất cả! Bạn có mọi thứ bạn cần. Bây giờ hãy lấy cho mình trình soạn thảo văn bản yêu thích của bạn. Chỉ sử dụng một tiêu chuẩn, một thông minh hơn như SublimeText hoặc Atom, đó là những gì tôi sử dụng.

Bước 3: Thiết lập một dự án mẫu

Thiết lập một dự án mẫu
Thiết lập một dự án mẫu

Bây giờ chúng tôi sẽ tạo một dự án mẫu mà bạn có thể sử dụng để bắt đầu mọi dự án. Nó giống như một mẫu với tất cả cài đặt chính đã được xử lý.

Bạn có thể tải xuống trên MEGA của tôi, liên kết ở bước đầu tiên của hướng dẫn này và dưới mọi video youtube của tôi. Bên trong là tệp main.c trống cùng với một số tệp khởi động cho bộ xử lý này và Makefile. Makefile là phần mềm cho trình biên dịch C biết nơi tìm trình biên dịch nhánh, cách biên dịch và tất cả các thư viện ở đâu. Để lấy các tệp thích hợp này cho dự án của bạn, bạn có thể vào thư mục thư viện STM32 và kiểm tra thư mục "dự án" hoặc "ví dụ". Bên trong, bạn sẽ thấy và sao chép các tệp này: main.c, Makefile và XXX_conf.h, system_XXX.c. Ngoài ra, bạn sẽ cần tệp liên kết stm32_flash.ld có thể được tìm thấy trong thư mục:

"/ FLASH_Program / TrueSTUDIO / FLASH_Program /" nằm trong thư mục mẫu hoặc chỉ tìm kiếm tệp.

Makefile có thể được tìm thấy trực tuyến hoặc được sao chép từ thư mục của tôi, nhưng bạn sẽ cần thay đổi một vài thứ. Hãy cùng xem xét hồ sơ thực hiện của tôi và những gì bạn có thể thay đổi.

# Đường dẫn đến thư mục liên kết để tải mã lên bảng

STLINK = ~ / Embedded / stlink # Đặt tệp nguồn của bạn tại đây (*.c) SRCS = main.c system_stm32f4xx.c # Tệp nguồn thư viện #SRCS + = stm32f4xx_rcc.c #SRCS + = stm32f4xx_gpio.c # Tài nguyên sẽ được tạo bằng tên này (.elf,.bin,.hex) PROJ_NAME = test # Đặt thư mục mã thư viện STM32F4 của bạn tại đây, thay đổi TÊN BẠN thành STM_COMMON của bạn = / home / matej / Embedded / STM32F4-Discovery_FW_V1.1.0 # Cài đặt trình biên dịch. Chỉ chỉnh sửa CFLAGS để bao gồm các tệp tiêu đề khác. CC = arm-none-eabi-gcc OBJCOPY = arm-none-eabi-objcopy # Compiler flags CFLAGS = -g -O2 -Wall -Tstm32_flash.ld CFLAGS + = -DUSE_STDPERIPH_DRIVER CFLAGS + = -mlittle-endian -mthumb -mcpu = cortex-m4 -mthumb-interwork CFLAGS + = -mfloat-abi = hard -mfpu = fpv4-sp-d16 CFLAGS + = -I. # Bao gồm tệp từ thư viện STM CFLAGS + = -I $ (STM_COMMON) / Thư viện / CMSIS / Bao gồm CFLAGS + = -I $ (STM_COMMON) / Thư viện / CMSIS / ST / STM32F4xx / Bao gồm CFLAGS + = -I $ (STM_COMMON) / Libraries / STM32F4xx_StdPeriph_Driver / inc CFLAGS + = -I $ (STM_COMMON) / Utilities / STM32F4-Discovery # thêm tệp khởi động để tạo SRCS + = $ (STM_COMMON) / Thư viện / CMSIS / ST / STM32F4xx / Nguồn / Mẫu / True_STUDIOf4xx s OBJS = $ (SRCS:.c =.o) vpath%.c $ (STM_COMMON) / Libraries / STM32F4xx_StdPeriph_Driver / src \. PHONY: proj all: proj proj: $ (PROJ_NAME).elf $ (PROJ_NAME).elf: $ (SRCS) $ (CC) $ (CFLAGS) $ ^ -o $ @ $ (OBJCOPY) -O ihex $ (PROJ_NAME).elf $ (PROJ_NAME).hex $ (OBJCOPY) -O nhị phân $ (PROJ_NAME). Chính mình $ (PROJ_NAME).bin clean: rm -f *.o $ (PROJ_NAME).elf $ (PROJ_NAME).hex $ (PROJ_NAME).bin # Flash ghi STM32F4: proj $ (STLINK) / st-flash ghi $ (PROJ_NAME).bin 0x80000000

  • Bạn có thể chỉnh sửa dòng đầu tiên để thay đổi đường dẫn đến thư mục tiện ích liên kết của bạn
  • Bạn có thể thay đổi dòng đến đích của thư mục của mình với các thư viện và TÊN BẠN

    STM_COMMON = / home / YOURUSERNAME / Embedded / STM32F4-Discovery_FW_V1.1.0

  • Cũng kiểm tra phần nơi tất cả các thư viện được liên kết. Điều này có thể thay đổi tùy thuộc vào nền tảng mà bạn đang sử dụng, vì vậy vui lòng kiểm tra các thay đổi trong cây tệp. Có thể thay đổi các đường dẫn khác bao gồm bất kỳ đường dẫn nào đến các tệp nhất định, chẳng hạn như dòng tiếp theo với tệp khởi động.

Sau khi bạn đã chỉnh sửa tất cả những thứ này bên trong Makefile, bạn có thể kiểm tra xem nó có hoạt động hay không bằng cách mở một thiết bị đầu cuối bên trong thư mục của bạn và gõ: make. Nếu nó biên dịch mọi thứ mà không có vấn đề gì, thì bạn đã sẵn sàng. Nếu không, hãy xem các lỗi trình biên dịch và chỉnh sửa Makefile.

Ngoài ra, khi tôi sử dụng Atom, tôi đặt hai đoạn mã cạnh nhau. Thông thường main.c và Makefile ở bên trái vì bạn chỉ cần chỉnh sửa Makefile một lần và các thư viện ở bên phải. Bạn có thể thấy trên hình là tôi đã mở thư mục chứa các tệp.c và.h cho mỗi thư viện. Bạn có thể thấy tất cả những điều này trong video.

Bước 4: Đã hoàn thành

Hoàn thành!
Hoàn thành!

Bây giờ bạn đã cấu hình Makefile và trình biên dịch đang hoạt động, bạn có thể sử dụng thư mục này cho tất cả các dự án làm mẫu, vì vậy hãy đảm bảo bạn lưu một bản sao của thư mục này.

Ngoài ra, bạn có thể kiểm tra các chương trình st-flash và st-info bằng cách cắm vào bảng phát triển của bạn và nhập vào thiết bị đầu cuối:

st-info --probe

Bạn có thể thấy nền tảng mà phần mềm stlink nhận dạng và họ vi mạch cùng với bộ nhớ cache và những thứ khác. Bạn có thể nhập:

st-thông tin

để xem tất cả các thông số có sẵn.

Bây giờ bạn có thể bắt đầu lập trình. Trong video và hướng dẫn tiếp theo, tôi sẽ chỉ cho bạn những kiến thức cơ bản về GPIO và đồng hồ. Hai điều này là cơ bản cho mọi thứ khác vì hầu hết mọi thứ mà bo mạch tương tác đều thông qua GPIO và mọi thứ hoạt động trên đồng hồ và bạn sẽ thấy mô hình để lập trình các bộ xử lý này.

Cho đến lúc đó, cảm ơn bạn đã xem video hướng dẫn của tôi và trên youtube của tôi, nếu bạn chưa làm như vậy.

Đề xuất: