在微控制器上實作多執行緒程式時設定鏈接描述檔案的正確方法是什么?
您是否在其自己的 ram 部分中定義任務堆疊指標,然后為每個任務宣告多個部分?或者,還有更好的方法?
uj5u.com熱心網友回復:
沒有“正確”的方法。
一種常見的方法是在 C 中靜態宣告每個任務的堆疊(以及信號量的控制塊等),因此它們進入.dataor.bss部分。
另一種更適合大型微控制器的方法是使用堆分配。這似乎容易出錯,但它被廣泛使用。只要在執行開始時創建所有任務和其他資源,那么它們的位置將接近確定性,并且只要系統總共有足夠的記憶體,分配失敗的可能性就很小。
在鏈接描述檔案中指定每個任務的詳細資訊將是大量作業并且非常不尋常。它可能稍微更有效(例如:沒有不必要的堆疊空間歸零只是因為它在 中.bss),但維護起來會困難得多。
如果您的系統有多個速度不同的 RAM 庫,您可能希望將一些東西放在更快的 RAM 中,而將一些東西放在較慢的 RAM 中,但我不推薦更多。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/422751.html
標籤:
上一篇:如何讓一個執行緒/行程始終處于活動狀態并在另一個執行緒/行程中每隔一定時間間隔請求其變數之一的更新值
下一篇:JPASpring引導上的執行緒
