組込みソフトウェア

PCB設計用の組み込みソフトウェアの詳細について、リソースライブラリをご覧ください。

Filter
Clear
Software
ATmega328Pの基本:Arduinoなしで始める方法 Altium Designer Projects ATmega328Pの基本: Arduinoなしで始める方法 Arduino Unoボードをかなりの期間使用してきましたが、多くの記事の例としても使用しています。古いUnoボードに使用されている元のチップであるATmega328Pを、完全に独立して動作させるにはどうすればよいか、いつも疑問に思っていました。Arduinoがそのブートローダー、使いやすいGUIソフトウェア、C++の抽象化を通じてアクセスしやすくしているので、なぜこの試みをしたいのか不思議に思うかもしれません。しかし、時には、他人が行ったことを評価するためには、自分でやってみることが重要です。このプロジェクトは、Arduinoの開発者がどれほど多くの作業を行い、そのフレンドリーな製品で世界を変えたかを本当に示してくれました。 この記事では、外部電源と Atmel-ICEプログラマのみを使用して、チップを完全に独立して起動する方法を説明します。オンボードのシリアルインターフェースを介してチップと通信する方法と、LEDを1つまたは2つ点滅させる方法をデモンストレーションします。 環境設定 ATmega328Pを設定する方法はいくつかあります。タイトルからもわかるように、意図的にカバーされていない方法の1つは、ATmega328PチップをArduino Unoに挿入してプログラミングし、その後ブレッドボードに移動させる方法です。フォーラムのフィードバックに基づき、一部の人々はArduinoのプロセスをスキップして、 MicrochipのAtmel-ICEなどのプログラマーを使用したより伝統的なアプローチを使用したいと考えています。Microchip(旧Atmel)マイクロプロセッサを始める最も簡単な方法は、 Microchip Studioをインストールすることです。この記事を書いている時点で、Microchip StudioスイートのフルバージョンはWindowsでのみサポートされています。CI(継続的インテグレーション)でビルド環境をすべて実行したいと考えているため、代替のアプローチを選択しました。 C言語に対する最も人気のあるコンパイラの1つにGNU Compiler Collection(GCC)があります。これは特定のプラットフォームとアーキテクチャをコンパイルしますが、AVR(ATmega)ファミリーのチップには対応していません。しかし、AVRおよび他のMicrochipファミリー用のコンパイラセットが 彼らのウェブサイトにホストされています。幸いなことに、親切な人々がこれらのコンパイラをDebianパッケージにまとめ、DebianやUbuntuで簡単にインストールできるようにしてくれました: $ apt-get install gcc-avr binutils-avr
DevOpsを組み込みシステムで使い始める方法:ATmega328Pを使用して DevOpsを組み込みシステムで使い始める方法:ATmega328Pを使用して DevOpsとアジャイル手法は、コラボレーション、自動化、および継続的な改善を重視することでソフトウェア開発を変革しました。DevOpsの原則を私の設計とプロジェクトに適用することは、効率と信頼性を高めるゲームチェンジャーとなりました。この記事では、 既存の組み込みシステムプロジェクトの継続的インテグレーション(CI)ワークフローを設定する方法を説明します。このプロジェクトは ATmega328Pマイクロコントローラを使用しています。この記事の終わりまでに、これらの実践が開発プロセスを合理化し、より高品質な製品を提供する方法を見ることができます。 組み込みシステムのためのDevOpsとアジャイルを理解する DevOpsは、ソフトウェア開発(Dev)とIT運用(Ops)を連続的な流れに統合する、ソフトウェア界で人気のある一連の実践です。ソフトウェア界では、ソフトウェアを開発し、「壁を越えて」運用担当者に顧客への展開を任せるのが一般的でした。DevOpsは、その壁を取り除くだけでなく、プロセス全体を自動化する方法を導入しました。ハードウェアの世界では、製品開発と生産の間に類似点があり、設計を製造エンジニアリングチームに「壁を越えて」投げ、生産の準備が整うように常に確認します。 組み込み製品設計では、ソフトウェアを生産を通じて進める必要がありますが、これまで以上に迅速に動き、可能な限り最高の品質で提供するという課題に直面しています。DevOpsの原則を用いることで、これらの課題のいくつかを解決することを目指しています。 ハードウェアの依存性: 組み込みシステムはハードウェアとそれらのPCBの特定のリビジョンに依存しています。これは、自動化され高度にスケーラブルになるように合理化されていない場合、テストと展開を複雑にする可能性があります。DevOpsの実践は、ハードウェアとソフトウェアの両方に同じセットアップを使用し、自動化された継続的インテグレーション(CI)システムを通じてこれらのプロセスを自動化することで助けます。 長いビルド時間: 組み込みソフトウェアのビルドは設定が難しく、ビルド時間が長くなることがあります。CIは、ビルドをクラウドにオフロードすることでこのプロセスを自動化し、加速します。これにより、通常開発者がアクセスできないより強力なインスタンスを利用できます。 手動テスト: 実際のハードウェアでのテストは不可欠ですが、しばしば手動で、退屈で、時間がかかります。ハードウェア・イン・ザ・ループ(HIL)テストを通じた自動化は、効率と精度を向上させ、CIシステムで設定された自動テスト機器のセットアップにオフロードすることができます。 DevOpsの原則を適用することで、ビルド-テスト-デプロイのパラダイム内でアジャイル手法を使用して迅速に反復し、生産にリリースしたい追加機能ごとに進めることができます。 全体の仕組み 「ビルド、テスト、デプロイ」という言葉は、DevOpsを議論する際によく耳にする一般的な言葉のセットです。組み込みシステムでは、私たちも同じことを行います。なぜなら、私たちのデプロイメントも製造(そして最終的な顧客)に向けて行われるからです。 プロジェクトのリポジトリでは、組み込みDevOpsのエンドツーエンドのワークフローを推進するためにGitlab CIを使用しています。私たちは「パイプライン」と呼ばれるものを使用して、ソフトウェアのコンパイル、ターゲット上でのテストの実行、または公式パッケージとしてのリリースなど、特定のタスクを達成するジョブを作成します。Gitlabでは、パイプラインはこのような順序で実行されるジョブの集合です: 図1: GitlabのATmega328P DevOpsワークフローで使用されるパイプラインの例