1. 程式人生 > >隨想錄(rt-patch和linux)

隨想錄(rt-patch和linux)

【 宣告:版權所有,歡迎轉載,請勿用於商業用途。  聯絡信箱: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、推薦方案

多準備開發板進行壓力測試,總結測試中發現的各種問題,優先修改上層程式碼、其次是驅動程式碼、最後才是核心核心程式碼