隨想錄(rt-patch和linux)
阿新 • • 發佈:2018-12-21
【 宣告:版權所有,歡迎轉載,請勿用於商業用途。 聯絡信箱:feixiaoxing @163.com】
因為linux本身不是rtos系統,所以用linux來完成一些對實時性有要求的工作,這本身就是很複雜的一項工作。但是,後來開源社群為linux提供了rt-patch,在很大程度上改善了linux的實時性。只是這個patch修改內容較多,不過最主要的部分還是集中在自選鎖互斥化、中斷執行緒化和修正優先順序翻轉的問題上面。
1、常用的rt-patch地址如下所示
https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/
2、給kernel打上patch,配置rt-linux然後編譯
patch -p1 < *.patch
如果需要對kernel配置,基本上配置好“Fully Preemptible Kernel”即可
編譯方法和一般的kernel編譯是一樣的
3、注意事項
基本上使用rt-patch的時候,需要將kernel中所有的DEBUG資訊全部關掉
4、目前使用rt-patch的專案
商業上目前使用rt-patch的專案據我所知只限於百度的apollo,連結地址如下
https://github.com/ApolloAuto/apollo-kernel/tree/master/linux
5、風險和優勢
rt-patch最大的風險,就是需要了解目前自身專案團隊中是否有人精通kernel,是否可以解決產品壓力測試出現的和rt-patch相關的所有問題
優勢就是成本低
6、推薦方案
多準備開發板進行壓力測試,總結測試中發現的各種問題,優先修改上層程式碼、其次是驅動程式碼、最後才是核心核心程式碼