ホームページ  >  記事  >  システムチュートリアル  >  Linux を学ぶことが推奨される前に、STM32 を学ぶために何を学ぶ必要がありますか?

Linux を学ぶことが推奨される前に、STM32 を学ぶために何を学ぶ必要がありますか?

WBOY
WBOY転載
2024-02-05 13:03:42867ブラウズ

今日は、Zhihu でよくある組み込み関連の質問を共有します。Linux の学習が推奨される前に、STM32 を学習するには何を学ぶ必要がありますか?

Linux を学ぶことが推奨される前に、STM32 を学ぶために何を学ぶ必要がありますか?#非常に良い答え:

#「

作者: スノードリーム

リンク: https://www.zhihu.com/question/357775329/answer/2338874463

#回答者は、組み込みソフトウェア開発の経験豊富なプログラマーとして、STM32 開発から Soc Linux 開発までのテクノロジー スタックの変換プロセスを経験しています。

一般に、stm32 組み込み開発スキルがあると、Soc Linux の組み込み開発を習得するのに役立ちます

ただし、対象者が Linux アプリケーション開発ロードに興味がある場合は、したがって、stm32 の開発スキルは必ずしも習得する必要はありません。 回答者の個人的なスキル スタック変換の経験によると、次のスキルは通常、stm32 および Linux 組み込みアプリケーション開発に共通であり、言い換えれば、再利用可能なスキルです。

1.C コーディング能力

組み込み開発の場合、現在の主流のコーディング言語は依然として C 言語です。これは stm32 にも当てはまり、Linux にも同じことが当てはまります。唯一の違いは、Linux 組み込み開発には、ソケットやロックなどのいくつかの Linux ライブラリ関数 API が含まれることが多いことです。 必要なときにこれらを使用してください。したがって、stm32 開発プロジェクトが十分にあれば、一般的には C プログラミングのスキルを直接継承することができます。

2. 機能モジュールとアルゴリズム設計機能

アプリケーション開発の鍵は、要件を理解し、要件に応じて適切な機能ユニットを設計するか (他のモジュールに API インターフェイスを提供する)、または適切な制御ロジック アルゴリズムを設計することです。この要件の理解と、モジュールとアルゴリズムを設計する能力は、stm32 プロジェクトでも体験でき、Linux アプリケーション開発の基盤を提供できます。

3. マルチスレッドと相互排他保護の考え方

Linux アプリケーション開発と stm32

の最大の違いは何ですか?

非常に多くのスレッドと相互排他保護というアイデアが最初の選択肢になります。 Linux 開発の世界では、スレッドとプロセスは分離できず、共有リソースの相互排他保護も分離できません。ただし、RTOS が stm32 の開発に関与していない場合は、RTOS のマルチタスクの考え方を学ぶ必要があります。 マルチタスクとマルチスレッドは非常に似たロジックを持っているため、RTOS マルチタスクの考え方を使用すると、Linux のマルチスレッド、マルチプロセス、および相互排他保護の学習と習得を大幅に促進できます。

4.常用協定堆疊的基礎能力

stm32這款mcu可以說週邊及內部函式庫支援力度已經非常強大,對於學習部分通訊協定堆疊來說是非常有幫助的。 **可能有的朋友說,我不做Linux驅動,沒有必要學習什麼UART,IIC,SPI,DMA,TCP/IP,RapidIO等硬體通訊協定。這種想法是不對的** 。

有此類的協定堆疊基礎,總會在未來應用開發上用得上。

答主在Linux的許多應用開發中,曾經涉及到與其他嵌入式系統通訊的功能單元開發和自有通訊協議的設計,舉個例子,如果不理解UART協議,你也沒有辦法去設計你的協議文本。如果不理解RapidIO協議,你怎麼和其他單板的CPU通信,雖然驅動的同事會幫你做好驅動,但是上層的邏輯或者出現問題定位,懂些協議棧總會能幫到你。

所以,總結來說,不一定要把stm32弄得精通再去學習嵌入式Linux開發。如果有了上述四點的stm32積累,就可以考慮向嵌入式Linux應用開發進行嘗試。

以上がLinux を学ぶことが推奨される前に、STM32 を学ぶために何を学ぶ必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlxlinux.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。