SlideShare a Scribd company logo
5.1 Event group
5.1.1 lý thuyết
link video bài giảng của thầy
cũng dùng giao tiếp giữa các task, khác gì với semaphore?
1 task chờ event ( nhiều task chờ event) ,khi event chưa xảy ra thì task bị block. khi
event xảy ra (event đc realease) thì tất cả các task chờ event sẽ chuyển sang trạng
thái ready, task có mức ưu tiên cao nhất đc thực thi trước. khi event đc release: các
task có mức ưu tiên thấp hơn cũng có event (thực hiện xong lệnh wait) nhưng bị task
có ưu tiên tiên cao hơn chiếm quyền nên ở trạng thái ready chờ đc running. (con đối
với semaphore khi task chờ semaphore thì task trong hàng đợi và bị lock .khi có
semaphore chỉ 1 task trong hàng đợi ra khỏi trạng thái lock để running)
1 task có thể chờ đợi nhiều event, đủ event mới thực thi (event group)
bản chất của event group: tập hợp các bit (flag-event, tối đa 24 bit - 24 evevt- 24
flag), mỗi event xảy ra→ 1 bit set lên 1, khi task chờ event thấy bit đc set sẽ thực thi
(các task có ưu tiên thấp hơn ko có đc event thì sẽ ready chứ ko block).
5.1.2 một số hàm phổ biến được sử dụng
osEventFlagsNew: tạo event group
osEventFlagsSet: set 1 flag (1 event) trong event group (2 tham số: event group và
flag của event group)
osEventFlagsWait: chờ 1 event (1 flag) xảy ra.4 tham số: event group và các flag của
event group, option(chờ 1 trong các event, chờ tất cả event, có đc event ko xoá),
chờ trong bao lâu)
osEventFlagsClear: clear event-flag-bit về 0.
5.1.3 cubemx
events: tạo event group
5.1.4 mdk
tạo flag (event ) cụ thể của event group (bản chất định nghĩa giá trị thanh ghi 32 bit
cấu hình 1 bit cụ thể trong event group 24 bit)
osFlagsWaitAny: chỉ cần chờ 1 trong các flag (bit) trong event group
osFlagsWaitAll: chờ tất cả các flags trong tham số hàm mới thực thi tiếp
osFlagsNotClear: có thêm 1 option ko clear bit sau khi có đc event đó.
5.1.5 chương trình ví dụ
chương trình 5.1 010500
high task (chờ 2 event), default task chờ 1 trong 2 event để thực thi, low task nhấn phím
giải phóng event.
link project, chương trình 5.2 copy từ file main.c
5.2 Notify
link video bài giảng của thầy
5.2.1 lý thuyết
dùng để giao tiếp các task với nhau: nhược điểm giao tiếp có trung gian như mail
box: chậm, tốn bộ nhớ đệm (cho hàng đợi)
Notify: task giao tiếp trực tiếp ko cần trung gian: dùng hàm để gửi notify thông báo
cho 1 task khác recieve notify
bản chất của việc gửi notify chỉ là gửi 1 event. Nhưng event này đc gửi cho 1 id (hoặc
1 task) cụ thể duy nhất. VD như 1 task chờ notify nếu ko có notify thì nó block nếu có
notify từ task khác gửi đến thì nó ready (notify gửi đi ko cần qua cái hàng đợi nào, ko
cần notify group như event)
ko đc gửi notify đến lệnh bên trong event, ISR, nhưng gửi lại đc.
5.2.2 một số hàm hay sử dụng
osThreadFlagsSet: gửi notify; tham số: id của task nhận notify, flag (tương ứng event
cụ thể, 1 task cũng có tể nhận nhiều notify)
osThreadFlagsWait hàm nhận notify- flag-event; tham số flag tương ứng với notify
muốn nhận, option (osFlagsWaitAny; osFlagsWaitAll...), time_out (osWaitForever)
osThreadFlagsClear: xoá notify-flag-event. tham số là Flag.
5.2.3 cấu hình cubemx
phần cấu hình tương tự event
5.2.4 chương trình ví dụ 5.2 13000
default task chờ notify từ low task
high task chờ notify từ low task
low task chờ nhấn phím để gửi notify
link project, chương trình 5.2 copy từ file main.c

More Related Content

PDF
Rtos 4 queue vs interrupt
PDF
Rtos 3 semaphore vs mutex
PDF
Rtos 2: time slice vs preeption (cùng mức ưu tiên vs có chiếm quyền
PDF
FREERTOS_với_ESP32_IOTCHIP_GOODDDDDDDDDD
PPTX
TL5.4.1 - #Week10-Chapter5-3.pptx - Hệ ddieuf hành
PDF
[Duong tran] shared_variable
PDF
De tai he dieu hanh nam 2010 2011
PDF
Chương 3 - Cac Giao Thuc Co Ban su dung thuong xuyen
Rtos 4 queue vs interrupt
Rtos 3 semaphore vs mutex
Rtos 2: time slice vs preeption (cùng mức ưu tiên vs có chiếm quyền
FREERTOS_với_ESP32_IOTCHIP_GOODDDDDDDDDD
TL5.4.1 - #Week10-Chapter5-3.pptx - Hệ ddieuf hành
[Duong tran] shared_variable
De tai he dieu hanh nam 2010 2011
Chương 3 - Cac Giao Thuc Co Ban su dung thuong xuyen

Similar to RTOS 5 event vs notify (20)

PPTX
Chapter1 - Data link Layer (1) - HCMUT - 2023
PDF
Giao trinh lap trinh truyen thong v1 1[bookbooming.com]
PDF
Bai tap ly thuyet He dieu hanhBai tap ly thuyet He dieu hanh.pdf
PDF
Baitap dongbo.bdf
PDF
Python Beginner Class day-14-thread
PPTX
Threads - Lập trình hệ thống IT4786
PPT
Os 3 - synchronization
DOCX
Kiến trúc máy tính và hệ điều hành - Nhóm 2
PDF
Intro Parallel Computing for student11.pdf
PDF
Introduction to os1 12 visio unicode
PDF
hệ điều hành
PDF
Chuong5 dong bo_hoa
PPTX
Báo cáo getting certificated as an .pptx
PDF
PDF
PPTX
Slide_show_Slide_ViXuLy_Chuong1_tiep.pptx
PDF
Bài giảng điều khiển logic và plc_876512.pdf
PDF
Giới thiệu chung về dòng PLC S7-1200.pdf
PDF
Giới thiệu chung về plc s7 1200
PDF
410655875-thiết-kế-mạch-số-bằng-verilog-bai-tập-co-lời-giải.pdf
Chapter1 - Data link Layer (1) - HCMUT - 2023
Giao trinh lap trinh truyen thong v1 1[bookbooming.com]
Bai tap ly thuyet He dieu hanhBai tap ly thuyet He dieu hanh.pdf
Baitap dongbo.bdf
Python Beginner Class day-14-thread
Threads - Lập trình hệ thống IT4786
Os 3 - synchronization
Kiến trúc máy tính và hệ điều hành - Nhóm 2
Intro Parallel Computing for student11.pdf
Introduction to os1 12 visio unicode
hệ điều hành
Chuong5 dong bo_hoa
Báo cáo getting certificated as an .pptx
Slide_show_Slide_ViXuLy_Chuong1_tiep.pptx
Bài giảng điều khiển logic và plc_876512.pdf
Giới thiệu chung về dòng PLC S7-1200.pdf
Giới thiệu chung về plc s7 1200
410655875-thiết-kế-mạch-số-bằng-verilog-bai-tập-co-lời-giải.pdf
Ad

Recently uploaded (20)

DOCX
Chủ nghĩa xã hội khoa học - Đề Cương Cuối Kỳ.docx
PDF
SÁNG KIẾN THIẾT KẾ MÔ HÌNH HỆ SINH THÁI HƯỚNG NGHIỆP CHO HỌC SINH THPT TRONG ...
PDF
Cơ bản về matlab simulink cho người mới bắt đầu
PPT
Slide Nguyên lý bảo hiểm đại học knh tế quốc dân
PPTX
CASE LÂM SÀNG MỤN TRỨNG CÁd (final, BS Vân Thanh)-SV tai lop.pptx
DOCX
Ôn tập văn học phương đông thi giữa kì ..
PDF
BÀI HỌC ÔN TẬP CHO THI NỘI DUNG MÔN HOẠCH ĐỊNH
PDF
SÁNG KIẾN “MỘT SỐ KINH NGHIỆM HƯỚNG DẪN HỌC SINH THAM GIA CUỘC THI KHOA HỌC K...
PDF
bai giang an toan thong tin ke toan nam 2020
PDF
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 12 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
PPTX
Bai 11.1 Tuan hoan mau.cấu tạo và vai trò pptx
PPTX
Triet hoc con nguoi va triet hoc thac si
PPTX
Chương3,Buổi7,8,9,10(Buổi10 kiểmtraL2).pptx
PDF
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 11 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
DOCX
Cao Thuy Linh-San pham cuoi khoa.- bồi dưỡng thường xuyêndocx
PDF
Bản phân loại thực vật môn thực vật dược
PPTX
KINH TẾ CHÍNH TRỊ - HÀNG HÓA THỊ TRƯỜNG VÀ VAI TRÒ...
PPTX
CHƯƠNG I excel,,,,,,,,,,,,,,,,,,,,,,,,,,
PPTX
slide chương 2 excel cơ bản...........,,
PPTX
Bai 44 Thuyet dong hoc phan tu chat khi Cau tao chat .pptx
Chủ nghĩa xã hội khoa học - Đề Cương Cuối Kỳ.docx
SÁNG KIẾN THIẾT KẾ MÔ HÌNH HỆ SINH THÁI HƯỚNG NGHIỆP CHO HỌC SINH THPT TRONG ...
Cơ bản về matlab simulink cho người mới bắt đầu
Slide Nguyên lý bảo hiểm đại học knh tế quốc dân
CASE LÂM SÀNG MỤN TRỨNG CÁd (final, BS Vân Thanh)-SV tai lop.pptx
Ôn tập văn học phương đông thi giữa kì ..
BÀI HỌC ÔN TẬP CHO THI NỘI DUNG MÔN HOẠCH ĐỊNH
SÁNG KIẾN “MỘT SỐ KINH NGHIỆM HƯỚNG DẪN HỌC SINH THAM GIA CUỘC THI KHOA HỌC K...
bai giang an toan thong tin ke toan nam 2020
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 12 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
Bai 11.1 Tuan hoan mau.cấu tạo và vai trò pptx
Triet hoc con nguoi va triet hoc thac si
Chương3,Buổi7,8,9,10(Buổi10 kiểmtraL2).pptx
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 11 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
Cao Thuy Linh-San pham cuoi khoa.- bồi dưỡng thường xuyêndocx
Bản phân loại thực vật môn thực vật dược
KINH TẾ CHÍNH TRỊ - HÀNG HÓA THỊ TRƯỜNG VÀ VAI TRÒ...
CHƯƠNG I excel,,,,,,,,,,,,,,,,,,,,,,,,,,
slide chương 2 excel cơ bản...........,,
Bai 44 Thuyet dong hoc phan tu chat khi Cau tao chat .pptx
Ad

RTOS 5 event vs notify

  • 1. 5.1 Event group 5.1.1 lý thuyết link video bài giảng của thầy cũng dùng giao tiếp giữa các task, khác gì với semaphore? 1 task chờ event ( nhiều task chờ event) ,khi event chưa xảy ra thì task bị block. khi event xảy ra (event đc realease) thì tất cả các task chờ event sẽ chuyển sang trạng thái ready, task có mức ưu tiên cao nhất đc thực thi trước. khi event đc release: các task có mức ưu tiên thấp hơn cũng có event (thực hiện xong lệnh wait) nhưng bị task có ưu tiên tiên cao hơn chiếm quyền nên ở trạng thái ready chờ đc running. (con đối với semaphore khi task chờ semaphore thì task trong hàng đợi và bị lock .khi có semaphore chỉ 1 task trong hàng đợi ra khỏi trạng thái lock để running) 1 task có thể chờ đợi nhiều event, đủ event mới thực thi (event group) bản chất của event group: tập hợp các bit (flag-event, tối đa 24 bit - 24 evevt- 24 flag), mỗi event xảy ra→ 1 bit set lên 1, khi task chờ event thấy bit đc set sẽ thực thi (các task có ưu tiên thấp hơn ko có đc event thì sẽ ready chứ ko block). 5.1.2 một số hàm phổ biến được sử dụng osEventFlagsNew: tạo event group osEventFlagsSet: set 1 flag (1 event) trong event group (2 tham số: event group và flag của event group) osEventFlagsWait: chờ 1 event (1 flag) xảy ra.4 tham số: event group và các flag của event group, option(chờ 1 trong các event, chờ tất cả event, có đc event ko xoá), chờ trong bao lâu) osEventFlagsClear: clear event-flag-bit về 0. 5.1.3 cubemx
  • 2. events: tạo event group 5.1.4 mdk tạo flag (event ) cụ thể của event group (bản chất định nghĩa giá trị thanh ghi 32 bit cấu hình 1 bit cụ thể trong event group 24 bit) osFlagsWaitAny: chỉ cần chờ 1 trong các flag (bit) trong event group osFlagsWaitAll: chờ tất cả các flags trong tham số hàm mới thực thi tiếp osFlagsNotClear: có thêm 1 option ko clear bit sau khi có đc event đó. 5.1.5 chương trình ví dụ chương trình 5.1 010500 high task (chờ 2 event), default task chờ 1 trong 2 event để thực thi, low task nhấn phím giải phóng event. link project, chương trình 5.2 copy từ file main.c 5.2 Notify link video bài giảng của thầy
  • 3. 5.2.1 lý thuyết dùng để giao tiếp các task với nhau: nhược điểm giao tiếp có trung gian như mail box: chậm, tốn bộ nhớ đệm (cho hàng đợi) Notify: task giao tiếp trực tiếp ko cần trung gian: dùng hàm để gửi notify thông báo cho 1 task khác recieve notify bản chất của việc gửi notify chỉ là gửi 1 event. Nhưng event này đc gửi cho 1 id (hoặc 1 task) cụ thể duy nhất. VD như 1 task chờ notify nếu ko có notify thì nó block nếu có notify từ task khác gửi đến thì nó ready (notify gửi đi ko cần qua cái hàng đợi nào, ko cần notify group như event) ko đc gửi notify đến lệnh bên trong event, ISR, nhưng gửi lại đc. 5.2.2 một số hàm hay sử dụng osThreadFlagsSet: gửi notify; tham số: id của task nhận notify, flag (tương ứng event cụ thể, 1 task cũng có tể nhận nhiều notify) osThreadFlagsWait hàm nhận notify- flag-event; tham số flag tương ứng với notify muốn nhận, option (osFlagsWaitAny; osFlagsWaitAll...), time_out (osWaitForever) osThreadFlagsClear: xoá notify-flag-event. tham số là Flag. 5.2.3 cấu hình cubemx phần cấu hình tương tự event 5.2.4 chương trình ví dụ 5.2 13000 default task chờ notify từ low task high task chờ notify từ low task low task chờ nhấn phím để gửi notify link project, chương trình 5.2 copy từ file main.c