高校生モノづくりコンテスト電子回路部門は、課題プログラムに使うCPUボード、プログラミング言語と開発環境を自由に選ぶことが出来ます。
組み込み用CPUの性能と開発環境は、十年二昔の勢いで進歩していて、どのCPUや開発環境を選ぶかがコンテストの成績に大きく影響します。
野球では金属と木のバットで飛距離が違い、高校野球で使える金属バットがプロ野球で使えなかったりしますが、ものづくりコンテストのプログラムで使う開発環境の影響はそれより桁違いに大きいものです。
ですから、モノづくりコンテストにチャレンジするにあたって、開発環境として何を選ぶかが重要になります。
開発環境の進化がもたらすもの
開発環境の進化がもたらすものはプログラミングの効率化です。
開発環境が一世代進化するごとに、少ないプログラムサイズで楽に高度な処理が書けるようになってきました。
例えば、高校生モノづくりコンテスト全国大会の課題は、トップクラスのプログラミング能力を持つ生徒が、平均的な開発環境を使って、制限時間内に解くのが難しいレベルに設定される傾向があります。
課題を解くにはプログラムを書く能力だけではなく、課題を解くアルゴリズムを考える能力も必要ですが、平均的な開発環境の半分の時間でプログラムが書ける開発環境を使うのと、平均の倍の時間がかかる旧世代の開発環境を使うのでは大きな差があります。
CPU初期化プログラムの効率化
最近の組み込み用CPUは高度な周辺機能を内蔵して、高性能になった反面、周辺機能を初期化するために複雑なレジスタ設定が必要になっています。
そして、わかりにくいデータシートを見ながら、数多いCPUと接続するハードウェアに合わせて、ひとつの間違いも無くレジスタに設定する値を調整するまではCPUは正常に動作しません。
これが、組み込みプログラムが難しいと思われる理由のひとつになっていて、Arduinoはこの部分を徹底的に標準化することで、誰でも簡単に組み込みプログラムが始められるようにすることに成功しました。
CPUの性能を最大限に発揮する必要がある本格的な組み込みプログラムの分野では、標準化による初期化プログラムの簡略化という手法を取ることは出来ませんでしたが、最近になっていくつかの組み込みCPUメーカーから「GUI画面で周辺機能パラメータを設定し、自動的に初期化プログラムを生成する。」という手法を使った開発環境が提供されて、実用的レベルになってきました。

MPLAB-Xに内蔵されたMCCがそのひとつで、MCCを使えばデータシートを見なくても簡単に初期化プログラムが完成します。
簡単とはいっても周辺機能に関する知識は必要ですが、周辺機能とレジスタの対応を考えなくても初期化が出来るようになったのは非常に大きな進歩と言えます。