{eval=Array;=+count(Array);}

亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

問答專欄Q & A COLUMN

為什么無人機(jī)一般都用stm32而不是arm+linux?

trilevertrilever 回答0 收藏1
收藏問題

1條回答

GHOST_349178

GHOST_349178

回答于2022-06-28 11:26

不請(qǐng)自來,作為一名長(zhǎng)期使用STM32單片機(jī)進(jìn)行開發(fā)的老司機(jī),來回答一下這個(gè)問題。

首先、STM32是什么?什么是ARM?STM32和ARM關(guān)系是什么?

1.STM32 是基于ARM Cortex-M3和M0的單片機(jī),是ARM的一個(gè)小子類。

2.ARM處理器是英國(guó)Acorn有限公司設(shè)計(jì)的低功耗成本的第一款RISC微處理器。全稱為Advanced RISC Machine。ARM處理器本身是32位設(shè)計(jì),但也配備16位指令集,一般來講比等價(jià)32位代碼節(jié)省達(dá)35%,卻能保留32位系統(tǒng)的所有優(yōu)勢(shì)。

3.從上面的定義來看,STM32其實(shí)就是ARM的一種處理器,ARM是統(tǒng)稱,

題主把ARM和STM32的概念有點(diǎn)模糊。


其次、為什么無人機(jī)不采用ARM+linux方案?

這個(gè)問題很有意思,問題出在linux身上。

我們先搞清楚linux是什么?

“Linux是一套免費(fèi)使用和自由傳播的類Unix操作系統(tǒng),是一個(gè)基于POSIX和UNIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)。它能運(yùn)行主要的UNIX工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。它支持32位和64位硬件。Linux繼承了Unix以網(wǎng)絡(luò)為核心的設(shè)計(jì)思想,是一個(gè)性能穩(wěn)定的多用戶網(wǎng)絡(luò)操作系統(tǒng)。Linux操作系統(tǒng)誕生于1991 年10 月5 日(這是第一次正式向外公布時(shí)間)。Linux存在著許多不同的Linux版本,但它們都使用了Linux內(nèi)核。Linux可安裝在各種計(jì)算機(jī)硬件設(shè)備中,比如手機(jī)、平板電腦、路由器、視頻游戲控制臺(tái)、臺(tái)式計(jì)算機(jī)、大型機(jī)和超級(jí)計(jì)算機(jī)。

嚴(yán)格來講,Linux這個(gè)詞本身只表示Linux內(nèi)核,但實(shí)際上人們已經(jīng)習(xí)慣了用Linux來形容整個(gè)基于Linux內(nèi)核,并且使用GNU工程各種工具和數(shù)據(jù)庫(kù)的操作系統(tǒng)?!?/span>--來源于百度詞條


linux操作系統(tǒng)作為網(wǎng)絡(luò)操作系統(tǒng)性能非常強(qiáng)大,并發(fā)性非常好。但是它作為無人機(jī)的方案有一個(gè)很致命的問題,那就是它的實(shí)時(shí)性很差,這由的操作系統(tǒng)的任務(wù)調(diào)度特性決定的。也許有人會(huì)說linux操作系統(tǒng)支持實(shí)時(shí)調(diào)度策略的啊,是表面看是這樣的。但是真實(shí)情況是不能滿足實(shí)時(shí)要求。

一個(gè)致命問題是,linux在用戶態(tài)支持可搶占調(diào)度策略,而在核心態(tài)卻不支持搶占式調(diào)度策略。這樣運(yùn)行在Linux核心態(tài)的任務(wù)(或系統(tǒng)調(diào)用)是不能被其它優(yōu)先級(jí)更高的任務(wù)所搶占的,這樣就會(huì)引起優(yōu)先級(jí)逆轉(zhuǎn)問題。另外,Linux操作系統(tǒng)的中斷處理句柄是不可調(diào)度的,不能依優(yōu)先級(jí)高低。

  此外,我們還關(guān)心和任務(wù)響應(yīng)時(shí)間相關(guān)的時(shí)鐘精度,以及由于資源共享而帶來的優(yōu)先級(jí)逆轉(zhuǎn)問題。linux中硬件時(shí)鐘中斷的默認(rèn)時(shí)間間隔是10ms,所有的軟件時(shí)鐘都是靠硬件來觸發(fā)的。而簡(jiǎn)單同步機(jī)制(互斥)不支持優(yōu)先級(jí)繼承又很可能導(dǎo)致優(yōu)先級(jí)逆轉(zhuǎn)。


而無人機(jī)要求時(shí)時(shí)刻刻在計(jì)算無人機(jī)當(dāng)前的姿態(tài),發(fā)現(xiàn)姿態(tài)和預(yù)定目標(biāo)不一致馬上進(jìn)行姿態(tài)矯正,這對(duì)系統(tǒng)實(shí)時(shí)性要求很高。linux的調(diào)度策略不能滿足無人機(jī)實(shí)時(shí)性的要求,這就是無人機(jī)不采用ARM+linux的根本原因。

其他因素

  1. linux系統(tǒng)本身復(fù)雜度也是影響項(xiàng)目開發(fā)的一個(gè)重要因素,移植、學(xué)習(xí)、維護(hù)成本太高

  2. STM32裸機(jī)程序程序員可以掌控調(diào)度策略,能夠根據(jù)實(shí)際情況調(diào)節(jié),靈活度更高

  3. STM32裸機(jī)裸機(jī)編程,比linux編程復(fù)雜度低


如果你有更多觀點(diǎn),歡迎討論。

評(píng)論0 贊同0
  •  加載中...

最新活動(dòng)

您已邀請(qǐng)0人回答 查看邀請(qǐng)

我的邀請(qǐng)列表

  • 擅長(zhǎng)該話題
  • 回答過該話題
  • 我關(guān)注的人
向幫助了您的網(wǎng)友說句感謝的話吧!
付費(fèi)偷看金額在0.1-10元之間
<