[討論] X86 Windows + RTOS & AMP 架構

作者: doghib (lun)   2016-03-12 08:57:40
大家好,
小弟在工控界打混,工控對RTOS非常倚重,每個動作控制越精準,產出越高。
在台灣普遍使用的Windows + RTOS有幾種,
1. IntervalZero - RTX
2. tenAsys - INtime
3. Acontis
使用這類的產品,大致上都會用Timer + Event
Timer中跑 運動控制算法
Event中跑 PLC 或 自己寫Code控制運動流程
這些產品收費通常都是 SDK + 每套License費用
通常Windows使用者使用上述產品大概都使用SMP架構
SMP架構是開機時,會有一顆CPU先起來,稱之為BP,其它稱為AP
BP起來後,再使用 APIC 對每個位置進行 Send INIT IPI,
在 Send INIT IPI之前,先將記憶體中某個位置設起Flag,
Boot Code中再將此Flag Off,就可知道,此處有個AP,
掃描完後,將所有CPU調度統一由BP進行調度,就是SMP的做法。
至於AMP則是各自CPU做各自的任務,不互相干擾,
但這是不會操作到同一個硬體的理想狀況。
Github上有個專案
https://github.com/GiraffeOS/GiraffeOS
做法是在Windows上修改C:\Boot.ini,限制Windows的使用核心數與記憶體大小,
再將Boot Code & App Bin 拷貝到實體記憶體的區塊上,利用BP開AP的方式開機運行,
App Bin理論上來說,應該可以跑
1. Bare Metal 難處在 所有東西都自己刻 (包含中斷、硬體操作)
2. Wince 難處在 有些東西是黑盒子
3. Linux 難處在 原始碼好龐大 (精簡工程浩大)
目前小弟研究方向是採用 (1) 自己刻,
因為有 xv6 可以當範本 (在此感謝 黃敬群老師 的建議)
發展到最後產品應該會像下列產品 (內有簡體,不喜勿入@@)
http://www.dcce.com.cn/downloadfiles/201310121644063923.pdf
以上是簡單的介紹,有錯誤請指正,謝謝!!
作者: cc1plus (廢柴聯盟盟主)   2016-03-12 10:40:00
都考慮用 Linux 了, 要不要考慮用 zephyr ?xv6 沒聽過, 而且不潮zephyr 說不定還可以搭上 IoT 風潮, 潮到會出水哦
作者: asdfghjklasd (好累的大一生活)   2016-03-12 18:55:00
最近看到DDC 覺得好熟,你是走BACNET嗎?
作者: egnaro123 (原po是大叔)   2016-03-12 19:28:00
想法反了,工控用RTOS就足夠了,Windows/Linux/SMP都太複雜,不是你想用就能用的
作者: FrozenMoment   2016-03-16 08:44:00
我也在工控界,覺得原 PO 想法 OK ,這是產業生態

Links booklink

Contact Us: admin [ a t ] ucptt.com