PDA

View Full Version : Pic Rtos !


david
19-04-2008, 09:23 AM
em đang dùng CCS C để lập trình RTOS
các bác cho em hỏi mức ưu tiên của các Task trong CCS được xác định như thế nào

#use rtos(timer=0, minor_cycle=20ms)
#task(rate=1s, max=20ms, queue=5)

em đang phân vân ko biết mình có hiểu đúng ko mong các bác chỉ giáo
minor_cycle = 20ms tức là các tiến trình sẽ được chia nhỏ thực hiện xem kẽ với thời gian 20ms
max=20ms ---->thời gian thực hiện tiến trình bé hơn hoặc bằng minor_cycle
queue=5------>hàng đợi bằng 5
rate=1s--->cái này có phải là tiến trình sẽ được thực hiện lại sau 1 s không ??
thanks!

phamminhtuan
24-06-2008, 11:53 AM
em đang dùng CCS C để lập trình RTOS
các bác cho em hỏi mức ưu tiên của các Task trong CCS được xác định như thế nào

#use rtos(timer=0, minor_cycle=20ms)
#task(rate=1s, max=20ms, queue=5)

em đang phân vân ko biết mình có hiểu đúng ko mong các bác chỉ giáo
minor_cycle = 20ms tức là các tiến trình sẽ được chia nhỏ thực hiện xem kẽ với thời gian 20ms
max=20ms ---->thời gian thực hiện tiến trình bé hơn hoặc bằng minor_cycle
queue=5------>hàng đợi bằng 5
rate=1s--->cái này có phải là tiến trình sẽ được thực hiện lại sau 1 s không ??
thanks!
Theo em biết thỉ rtos trong CCS C không có xác định mức ưu tiên, mỗi task sẽ được thực hiện nhiều lần nếu thời gian thực thi này lớn hơn minor_cyle

#task(rate=1s, max=20ms, queue=5), có nghĩa là chu kỳ thực hiện là 1s, cứ mỗi 1s mà CPU kô xử lý task nào thì thực hiện task này, nếu CPU bận thì task này vẫn đợi, thời gian thực thi của nó không quá max, và max không lớn hơn minor_cycle, với hàng đợi queue 5 byte, task này sẽ nhận được ở vùng đệm khi được thực thi.
RTOS cho CCS C được thiết kế đơn giản, nếu bác có nhu cầu sử dụng RTOS với mục đích phức tạp hơn có thể kiếm đâu đó cái Salvo của Pumpkin, cái này lợi hại hơn nhiều, có priority, và rất linh hoạt, tuy nhiên, kô thấy có hỗ trợ CCS C