ตุลาคม 21, 2019, 01:02:06 am *
ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน
ส่งอีเมล์ยืนยันการใช้งาน?

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น
   หน้าแรก   ช่วยเหลือ เข้าสู่ระบบ สมัครสมาชิก  
หน้า: [1]   ลงล่าง
  พิมพ์  
ผู้เขียน หัวข้อ: ข้อแตกต่าง uCos-II และ FreeRTOS  (อ่าน 10077 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
zilog
Newbie
*
ออฟไลน์ ออฟไลน์

กระทู้: 12


| |
« เมื่อ: ธันวาคม 01, 2012, 03:55:27 am »

RTOS ของ uCos-II และ FreeRTOS
ผมเคยใช้ uCos-II กับ z80/68hc11/8086

แต่อยากทราบข้อแตกต่างกับ FreeRTOS (จาก FreeRTOS  support Archive )

I have extensive experience with uCOS-II and definite familiarity with FreeRTOS. I am not attempting to pass judgement on which is "better" or "worse". Value judgement on these issues is in the eye of the beholder. Whether or not a bullet point is an issue or not depends upon one's requirements in an RTOS:

uCOS-II -

* All threads are their own priority (no round robining on the same priorities)
* Costs ~$5K for a "single end product" or around $25K for a "product family"
* Mature (roughly 15+ years old)
* Other stacks available, like USB and TCP/IP (for fees) and are mature as well
* Timer support
* Event flags support

* Message mailboxes
* Highly configurable (on a per OS API perspective)
* 100+ ports to various CPUs and architectures
* FAA Certified
* Very tiny (can reduce to ~2K and 256 bytes of memory in minimalist configuration

FreeRTOS -

* Almost completely free (modified GPL with exceptions - see the FreeRTOS web site for restrictions)
* Supports different thread priorities and round robining on threads of the same priority
* No timer support
* No event flag support

* Co-routine feature (very useful!)
* Roughly ~25 ports (not sure how many exactly)
* Fairly young (circa 2004)
* Very configurable (on a subsection basis)

I've used both in various configurations/applications. I've chosen uCOS-II in a couple of instances where FreeRTOS wasn't sufficient (porting existing code that used event flags, and at the time, lack of counting semaphores). However, starting a new project, I can't see much (if any) of a reason to consider uCOS-II over FreeRTOS. OS "Overhead" on uCOS-II vs. FreeRTOS is insignificant/unmeasurable on the architectures I've worked with both.

ตรงอักษรสีแดง คือ จุดที่สงสัยว่า FreeRTOS ไม่ Support เรื่อง Timer และ Event อย่างไรครับ ?
บันทึกการเข้า
ShadowMan
Administrator
Hero Member
*****
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 8272


ShadowWares


| |
« ตอบ #1 เมื่อ: ธันวาคม 01, 2012, 10:23:03 am »

คำว่าไม่ support คือ Kernel ตัวนั้นไม่มีฟังก์ชั่นดังกล่าวให้ใช้งานครับ
ถ้าจำไม่ผิด FreeRTOS มี Timer Functions (Software Timer) รองรับอยู่ครับ
รายละเอียดอื่นๆ ต้องตาม Update จากเว็บไซต์ของผู้พัฒนาครับ
บันทึกการเข้า

By SDW: Do No Wrong Is Do Nothing
          If you want to increase your success rate, double your failure rate
zilog
Newbie
*
ออฟไลน์ ออฟไลน์

กระทู้: 12


| |
« ตอบ #2 เมื่อ: ธันวาคม 02, 2012, 06:31:03 am »

ขอบคุณท่าน Shadow มากครับ

ในเรื่อง Timer ที่สงสัย ได้ลองเข้าไปอ่าน ใน FreeRTOS ในเรื่อง Software Timer ที่ http://www.freertos.org/RTOS-software-timer.html
ก็พอเข้าใจความแตกต่างกันกับ uCos-II แล้วครับ

จริงๆแล้ว FreeRTOS ค่อนข้างมี Feature เยอะมากพอสมควร รวมถึงมี Co-Routines http://www.freertos.org/taskandcr.html ทำให้เหมาะสมกับ embedded MCU มากกว่า uCos-II
ซึ่ง uCos-II ต้องใช้ Stack ในแต่ละ Task เป็นของตนเอง (ถ้ามี Ram มากพอคงไม่เป็นปัญหา) แต่ MCU ยังมี Ram ค่อนข้างจำกัดจริงๆ  ทำให้ uCos-II มีจำนวน Task ได้น้อยสำหรับพวก MCU
แต่ FreeRTOS กลับทำให้ได้ Task มากขึ้นเมื่อใช้ Co-Routines ร่วมกับ Task ปกติ แต่ก็มีข้อจำกัดบางประการเมื่อเทียบกับ Task ปกติ (ข้อดีอย่างที่กล่าวไว้คือใช้ Stack ร่วมกัน)

แต่เรื่องประสิทธิภาพในการทำงานกับ Task ตัว uCos โดยรวมแล้วน่าจะทำงานได้ดีกว่า
แต่ Function และ Feature ของ FreeRTOS เยอะกว่า และเหมาะสมกับ MCU ได้ดีกว่า http://www.freertos.org/FreeRTOS_Features.html

เห็นแล้ว FreeRTOS ก็น่าใช้จริงๆครับ ไม่รู้ว่ามีท่านใดใช้อย่างจริงจัง หรือมีตัวอื่นๆ ที่คล้ายๆกันนี้บ้างไหมครับ ? ผมกำลังนำไปใช้กับ MCU ที่เป็น 16/32 bit มากกว่าครับ (อยู่ในระหว่างศึกษาครับ แต่เคยใช้ uCos อย่างที่กล่าวไว้)
บันทึกการเข้า
ShadowMan
Administrator
Hero Member
*****
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 8272


ShadowWares


| |
« ตอบ #3 เมื่อ: ธันวาคม 02, 2012, 09:50:35 am »

อีกตัวที่น่าสนใจคือ VxWorks ครับ


บันทึกการเข้า

By SDW: Do No Wrong Is Do Nothing
          If you want to increase your success rate, double your failure rate
zilog
Newbie
*
ออฟไลน์ ออฟไลน์

กระทู้: 12


| |
« ตอบ #4 เมื่อ: ธันวาคม 02, 2012, 04:07:48 pm »

ขอบคุณท่าน ShadowMan มากครับ ที่ช่วยแนะนำ
จะลองไปศึกษาตัว VxWorks ดู  ว่าแต่ว่าดูเหมือนตัวนี้เขาจะไปทาง PC เลยนะครับ (32/64 bit) ซึ่ง Linux อาจจะง่ายกว่าไหมครับ ?
แต่เท่าที่อ่านเอกสารอย่างคร่าวๆแล้ว RTOS เขาว่าเก่งทีเดียว งานที่เน้น Timing มากๆคงจะทำงานได้สมบูรณ์ทีเดียว อาจเก่งกว่า Linux ?
พัฒนาใช้กับเครื่องมือบน PC ได้ (เช่น eclipse ) ก็ทำให้น่าสนใจทีเดียว และส่วน kernel ก็ support กับพวก multi-core ได้ ถือว่ายอดมากครับ
น่าจะใช้กับงานที่ Serious จริงๆครับ
ไม่ทราบท่าน ShadowMan เคยใช้ไหมครับ ยากง่ายแค่ไหนครับ พอจะมีข้อมูลบ้างไหม ? ...
บันทึกการเข้า
ShadowMan
Administrator
Hero Member
*****
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 8272


ShadowWares


| |
« ตอบ #5 เมื่อ: ธันวาคม 02, 2012, 06:04:40 pm »

VxWorks ได้ถูกนำไปใช้กับ Robot ของ NASA หลายๆ ตัวเลยทีเดียวครับ

ส่วนตัวผมเคยลองใช้ลองเล่นมาหลายตัวครับ เรื่องความยากง่ายไม่ค่อยแตกต่างกันมากนัก






บันทึกการเข้า

By SDW: Do No Wrong Is Do Nothing
          If you want to increase your success rate, double your failure rate
zilog
Newbie
*
ออฟไลน์ ออฟไลน์

กระทู้: 12


| |
« ตอบ #6 เมื่อ: ธันวาคม 02, 2012, 08:57:24 pm »

ขอบคุณท่าน ShadowMan มากครับ
ได้ข้อมูลดีๆจากท่านเสมอ

ตอนนี้พอจะได้แนวทางคำตอบแล้วครับว่า แตกต่างจากที่เคยใช้ uCos อย่างไร ...
บันทึกการเข้า
tammy1798
Newbie
*
ออฟไลน์ ออฟไลน์

กระทู้: 1


| |
« ตอบ #7 เมื่อ: พฤษภาคม 01, 2013, 10:36:12 am »

ขอบคุณท่าน มากๆคับ

พอดีเพิ่งจะสมัค เป็นเด็กใหม่ครับ>_<
บันทึกการเข้า

chai.98555
Newbie
*
ออฟไลน์ ออฟไลน์

กระทู้: 1


| |
« ตอบ #8 เมื่อ: กุมภาพันธ์ 25, 2014, 06:31:59 pm »

สวัสดีครับ cool cool   เป็นเด็กใหม่ครับ>_<
บันทึกการเข้า

หน้า: [1]   ขึ้นบน
  พิมพ์  
 
กระโดดไป: