FreeRTOS STM32CubeMX dùng tạo một tác vụ

13 433 0
FreeRTOS STM32CubeMX dùng tạo một tác vụ

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Loạt này ghi chú tổng cộng bảy, là nghiên cứu cá nhân của tôi FreeRTOS ghi chú thực nghiệm. Viết ghi chú trong quá trình học tập có một số lợi thế: Thứ nhất, bạn có thể hiểu sâu hơn về FreeRTOS, thứ hai là làm cho việc học tập cảm giác hoàn thành. Ghi chú có thể được dùng làm bằng chứng về sự tiến bộ và dự trữ tri thức của họ, tất nhiên, không ai kiểm tra được chìa khoá là họ thực sự có nhiều lợi ích hơn. Khi tôi bắt đầu học FreeRTOS, tôi đã lên kế hoạch tổ chức các ghi chú của tôi và tải lên trực tuyến, hy vọng giúp những người mới bắt đầu. Vì Đối với quá trình học tập của tôi cũng rất phụ thuộc vào tài nguyên mạng. Trước khi tôi học FreeRTOS, tôi đã học được về μ C OS II và cũng đã tải lên một số lưu ý nghiên cứu. Hai hệ thống rất giống nhau, là RTOS mã nguồn mở, nhưng một là miễn phí, và một là phí.

Cuongbab bo Tạo project FREERTOS GPIO với Cubemx Loạt ghi tổng cộng bảy, nghiên cứu cá nhân FreeRTOS ghi thực nghiệm Viết ghi q trình học tập có số lợi thế: Thứ nhất, bạn hiểu sâu FreeRTOS, thứ hai làm cho việc học tập cảm giác hồn thành Ghi dùng làm chứng tiến dự trữ tri thức họ, tất nhiên, khơng kiểm tra chìa khố họ thực có nhiều lợi ích Khi bắt đầu học FreeRTOS, lên kế hoạch tổ chức ghi tải lên trực tuyến, hy vọng giúp người bắt đầu Vì Đối với q trình học tập tơi phụ thuộc vào tài nguyên mạng Trước học FreeRTOS, học μ C / OS II tải lên số lưu ý nghiên cứu Hai hệ thống giống nhau, RTOS mã nguồn mở, miễn phí, phí Nội dung ghi để tìm hiểu chế giao tiếp FreeRTOS khác Cấu trúc ghi đơn giản, nghĩa là, thơng qua ví dụ đơn giản để chứng minh việc sử dụng chế truyền thông FreeRTOS khác Sau nghiên cứu lưu ý này, bạn thực sau: Hiểu cấu trúc chương trình FreeRTOS; Hiểu áp dụng semaphores, hàng đợi tin nhắn, hàng đợi mail kiến thức liên quan khác Lưu ý đặc biệt: Chú ý để STM32 tảng, tảng STM32 Tất thói quen sử dụng tài nguyên phần cứng đơn giản: tài nguyên hệ thống nhỏ nhất, đầu LED, đầu UART Để dễ phát triển, thói quen lưu ý tạo cách sử dụng cấu hình STM32Cube cần thêm mã Nếu bạn khơng quen thuộc với việc sử dụng STM32Cube, khơng quan trọng Chỉ cần tải cài đặt STM32CubeMX gói hỗ trợ chip tương ứng, sau làm theo bước ghi được, ghi không bỏ qua bước Để tìm hiểu STM32Cube, truy cập ST Community Forums http://www.stmcu.org/module/forum/forum.php tìm kiếm STM32Cube, bạn xem viết có liên quan Mà chi tiết toàn diện xuất viết điện tử vi tuyết Tài liệu tham khảo quan trọng: Hướng dẫn tiện ích hạt nhân thời gian thực FreeRTOS pdf (dịch chia sẻ Zou Changjun) khuyên người học đọc tài liệu cách trực tiếp, Richard Barry dịch tác năm 2009 tác giả FreeRTOS Tất nhiên, thông tin chi tiết đăng trang web thức www.freertos.org Do mức độ hạn chế tôi, sai lầm khơng thể tránh khỏi, xin vui lòng xác tơi, cảm ơn bạn! FreeRTOS : Tạo tác vụ Điều kiện tiên quyết: Mặc định cài đặt MDK V5 STM32CubeMX, cài đặt gói hỗ trợ STM32F1xx Phần cứng tảng: STM32F1xx series Mục đích: Để tìm hiểu việc tạo tác vụ FreeRTOS Tạo nhiệm vụ bước cần thiết để sử dụng FreeRTOS viết mơ tả ví dụ cách sử dụng cấu hình STM32CubeMX để tạo Nhiệm vụ FreeRTOS Ví dụ viết tạo hai nhiệm vụ, số kiểm sốt nhấp nháy đèn LED Bước Mở STM32CubeMX, nhấn "New Project", chọn mơ hình chip, STM32F103RBTx Bước Cấu hình pin đồng hồ。 Bước Cấu hình PA8 PD2 Output, thay đổi nhãn người dùng thành LED0 LED1 tương ứng Step4 cho phép FreeRTOS。 Bước Cấu hình đồng hồ Khi 8M đầu vào, có đồng hồ nội 72M qua PLL。 Bước 6: Cấu hìnhFreeRTOS。 Config tab tham số thơng số cấu hình, liệt kê tham số cấu hình FreeRTOS, tương ứng với FreeRTOSConfig.h Các tham số cấu hình tệp tin。 Các thơng số thẻ Include parameters sử dụng để cấu hình FreeRTOS trồng。 Công việc Hàng đợi để thêm nhiệm vụ hàng đợi Cấu hình mặc định tác vụ gọi defaultTask, mức độ ưu tiên bình thường, kích thước stack tác vụ 128 từ, tên hàm nhiệm vụ StartDefaultTask Nhấp đúp vào khu vực màu xanh dương, hộp thoại bật lên, tên tác vụ sửa đổi thành Task_LED0, tên chức tác vụ sửa đổi thành Func_LED0。 Nhấp vào nút Thêm để thêm nhiệm vụ Task_LED1, mức độ ưu tiên đặt thành Bình thường, tên chức Func_LED1 Cần lưu ý rằng, STM32Cube FreeRTOS thực số thay đổi, chẳng hạn ưu tiên có bảy, hiển thị bên đếm thời gian Semaphores tùy chọn để thêm phần mềm hẹn semaphores Lưu ý: Trong bước này, ngoại trừ thêm công việc, mục khác sử dụng thông số mặc định Bước Tạo mã Điều bật lên cảnh báo Lý FreeRTSO sử dụng Systick làm tick đồng hồ, thư viện HAL sử dụng Systick làm tham chiếu đồng hồ cho HAL_Delay () thời gian chờ khác Vì vậy, bạn cần phải thay đổi tham chiếu đồng hồ HAL với TIMER khác Nói chung sử dụng đếm thời gian Nhấp vào nút "Khơng", sau chọn nguồn TIM4 trang Cài đặt Pinout Nhấp vào nút tạo mã nữa, mở dự án trực tiếp sau kết thúc Cấu trúc dự án hiển thị đây, mà người dùng sửa đổi tệp Nhóm Ứng dụng / Người dùng nhóm khác tệp nói chung khơng bị sửa đổi Bước Phân tích cấu trúc chương trình Trước nhập hàm chính, định nghĩa hai biến khai báo số hàm Nhìn vào chức Sắp xếp chức chính, xóa nhiều ý kiến, nhận nội dung hiển thị Phần thứ cấu hình phần cứng, phần thứ hai, tạo hai chủ đề (hoặc nhiệm vụ), phần thứ ba, bắt đầu lên lịch Đây cấu trúc chương trình Sau bắt đầu lên lịch, chương trình quản lý lập lịch FreeRTOS thực hai nhiệm vụ tạo Func_LED0 Func_LED1, phần sau (1) không thực Bước Thêm mã Trong tệp main.c, tìm cấu hình trước để thêm hai hàm nhiệm vụ, Func_LED0 Func_LED1, sau thêm mã điều khiển LED0 LED1 bên Cuongba bbo Bước 10 Biên dịch tải chạy LED0 LED1 nhấp nháy tương ứng, chu kỳ nhấp nháy LED0 giây chu kỳ LED1 giây Chương trình Phân tích: Phân tích tun bố: osThreadDef (Task_LED0, Func_LED0, osPriorityNormal, 0, 128), osThreadDef ( ) chức năng, vĩ mô Định nghĩa tập tin cmsis_os.h, vai trò để xác định cấu trúc osThreadDef_t Trong tệp cmsis_os.h, cấu trúc osThreadDef_t định nghĩa sau: Vì vậy, osThreadDef (Task_LED0, Func_LED0, osPriorityNormal, 0, 128), kết const osThreadDef_t os_thread_def_Task_LED0 = {Task_LED0, (Func_LED0), (osPriorityNormal), (0), (128)}; Nghĩa là, cấu trúc osThreadDef_t có tên os_thread_def_Task_LED0 định nghĩa gán cho biến thành viên Phân tích câu: Task_LED0Handle = osThreadCreate (osThread (Task_LED0), NULL); Tương tự, osThread ( ) định nghĩa macro tìm thấy tệp cmsis_os.h Kết việc mở rộng osThread (Task_LED0) & os_thread_def_ Task_LED0 Vì vậy, Task_LED0Handle = osThreadCreate (osThread (Task_LED0), NULL); Mở rộng Kết Task_LED0Handle = osThreadCreate (& os_thread_def_Task_LED0, NULL); Vì vậy, phân tích hai câu, trình để xác định biến cấu trúc, sau vượt qua cấu trúc tham số osThreadCreate () để tạo tác vụ Phân tích hàm osThreadCreate () Cuongbab bo Xem nguồn, bạn thấy chức thực gọi hàm xTaskCreate (), API FreeRTOS địa Chức STM32CubeMX kỹ sư dựa giao diện CMSIC tiêu chuẩn API FreeRTOS API gói thứ hai, người dùng phát triển dễ dàng Giao diện chức đóng gói đặt tệp cmsis_os.h Trong thực tế, trình phát triển, bạn không cần phải mở rộng chức định nghĩa macro để phân tích chi tiết quy trình phân tích Chúng ta biết ý nghĩa tham số giao diện, sử dụng giao diện đường dây Nội dung bổ sung: Chiến lược lập kế hoạch nhiệm vụ FreeRTOS Trong trường hợp chúng tôi, hai chức nhiệm vụ Func_LED0 Func_LED1 thời gian để thực tiêu thụ CPU Sau gọi hàm osDelay (), chúng bị chặn họ đợi kiện "Timing to" Trong nhiệm vụ người dùng vào trạng thái bị chặn, hoạt động nhàn rỗi công việc Các tác vụ nhàn rỗi tạo tự động chương trình lập lịch bắt đầu Trong trường hợp này, ưu tiên hai nhiệm vụ nhau, hai osPriorityNormal Tuy nhiên, chức gọi hàm osDelay (), chúng thoát khỏi CPU chúng vào trạng thái bị chặn Vì vậy, hai nhiệm vụ xuất để thực song song Nếu ưu tiên nhiệm vụ thiết lập để osPriorityLow osPriorityHigh, ưu tiên hai nhiệm vụ khác nhau, điều xảy ra? Kết chạy tương tự song song Chúng ta biết hai nhiệm vụ sẵn sàng có ưu tiên khác nhiệm vụ ưu tiên cao chạy Vì vậy, hai nhiệm vụ sẵn sàng có mức độ ưu tiên ln sẵn sàng, hoạt động FreeRTOS? Sau kiểm tra hoạt động thử nghiệm Viết chức trì hỗn thực cho vòng lặp。 Sau đó, thay osDelay () chức chức ban đầu công việc bạn Theo cách này, hai nhiệm vụ ln hoạt động họ "ln có điều để làm" a) Nếu hai nhiệm vụ có ưu tiên khác nhau, kết là: Chỉ nhiệm vụ ưu tiên cao chạy b) Nếu hai nhiệm vụ có mức độ ưu tiên, kết là: Cả hai tác vụ chạy, đèn LED nhấp nháy thường xuyên Thấp chạy Theo mã trên, hai nhiệm vụ gọi my_delay (500), kết tần số flicker LED giảm xuống nửa, tương đương với my_delay (1000) thời gian chạy tác vụ đơn Từ b), FreeRTOS phân bổ thời gian CPU tương tự cho nhiệm vụ có mức độ ưu tiên nhiệm vụ, nghĩa nhiệm vụ thực slice thời gian ... cần thiết để sử dụng FreeRTOS viết mơ tả ví dụ cách sử dụng cấu hình STM32CubeMX để tạo Nhiệm vụ FreeRTOS Ví dụ viết tạo hai nhiệm vụ, số kiểm sốt nhấp nháy đèn LED Bước Mở STM32CubeMX, nhấn "New... phép FreeRTOS Bước Cấu hình đồng hồ Khi 8M đầu vào, có đồng hồ nội 72M qua PLL。 Bước 6: Cấu hìnhFreeRTOS。 Config tab tham số thơng số cấu hình, liệt kê tham số cấu hình FreeRTOS, tương ứng với FreeRTOSConfig.h.. .FreeRTOS : Tạo tác vụ Điều kiện tiên quyết: Mặc định cài đặt MDK V5 STM32CubeMX, cài đặt gói hỗ trợ STM32F1xx Phần cứng tảng: STM32F1xx series Mục đích: Để tìm hiểu việc tạo tác vụ FreeRTOS

Ngày đăng: 26/02/2018, 20:32

Từ khóa liên quan

Mục lục

  • Điều kiện tiên quyết: Mặc định đã được cài đặt MDK V5 và STM32CubeMX, và cài đặt các gói hỗ trợ STM32F1xx. Phần cứng nền tảng: STM32F1xx series.

  • Bước 5. Cấu hình cây đồng hồ. Khi 8M là đầu vào, có được đồng hồ nội bộ 72M qua PLL。

  • Công việc và Hàng đợi để thêm nhiệm vụ và hàng đợi.

  • Bước 7. Tạo mã.

    • Cuongbabbo

Tài liệu cùng người dùng

Tài liệu liên quan