キースパッカードはアクティブなDebian開発者です そしてそれはまた X.Orgプロジェクトリーダーと クリエーターも 多くのX拡張機能の、XRender、XComposite、およびXRandRを含みます。 PicoLibcは彼の作品のもうXNUMXつです これはCライブラリです 組み込み機器で使用するために開発された リソースが限られている(つまり、固定ストレージスペースとRAMがほとんどない)。 開発中、コードの一部は、AtmelAVRマイクロコントローラー用に開発されたCygwinおよびAVRLibcプロジェクトのnewlibライブラリから借用されました。
キース・パッカードは、低RAMの組み込みデバイスで使用できる適切なバージョンのLibcを見つけられなかったため、開発を開始しました。 プロジェクトは昨年から開発されています。 最初の段階では、 プロジェクトはnewlibの亜種でした、stdio関数がコンパクトバージョンのavrlibcに置き換えられました(newlibのstdioは、リソースの大量消費に適応していませんでした)。
中国の現在の活動は、RISC-Vアーキテクチャに関する進行中の作業と、組み込みデバイス用のツールの開発に関連しているため、最近 libc実装のステータスを確認しました y 締結した なにかの、 少し調整するだけで、newlibとavrlibcの組み合わせが優れたユニバーサルソリューションになります。 当初、プロジェクトは「newlib-nano」という名前で開発されましたが、Newlibライブラリとの混同を避けるために、名前がPicoLibcに変更されました。
PicoLibcについて
現在の形では、 Picolibcは、BSDライセンスで提供されていないすべてのコードを削除する作業をすでに行っています。 (このコードは組み込みデバイスのアセンブリでは使用されませんでした)。これにより、プロジェクトライセンスの状況が大幅に簡素化されました。
スレッドローカル実装は、「struct _reent」からTLS(スレッドローカルストレージ)メカニズムに移動されました。 stdioのコンパクトバージョンは、avrlibcライブラリコードから取得してデフォルトで有効になっています(ATmel固有のアセンブラーインサートはCで書き直されています)。
のツール 中間子はコンパイルに使用されます、 何 newlibスクリプトを添付せず、newlibからの変更の転送を簡素化できます。 初期化コード(crt0)の簡略化されたバージョンが追加され、実行可能ファイルに添付され、main()関数に制御を移す前に実行されました。
PicoLibcのソースコードはBSDライセンスの下で配布されており、 ライブラリは、ARM(32ビット)、i386、RISC-V、x86_64、およびPowerPCアーキテクチャをサポートします。
PicoLibc1.1の新しいバージョンについて
私は最近、PicoLibc1.1の新しいバージョンのリリースを発表しました。 セミホスティングテクノロジーをサポートするためにヘルパーライブラリが追加されました。 デバッガーまたはエミュレーター環境で実行されているコードがホストシステムからの入出力メカニズムを使用できるようにするA。
オープン、クローズ、読み取り、および書き込みシステムコールをサポートするシステムの場合、tinystdio 標準化されたPOSIXI / Oインターフェイスを追加します。 fopenおよびfdopen関数、およびstdin / stdout / stderrのPOSIX定義のファイル記述子へのバインドを含みます。
- 最近の変更はnewlibコードベースから引き継がれています。 計算サポートのないシステムで使用できるfenv.h用の追加のlibmスタブを含みます。
- 未使用の実験コードを含むnewlib、libm、およびmathfpディレクトリを削除することに加えて、ARMおよびRISC-Vシステム用のpicolibcを使用したHelloWorldアプリケーションのコンパイル例を追加しました。
Picolibcの使用を開始します
Picolibcの使用を開始するには、Picolibcがmesonビルドシステムを使用して、GCCを使用するLinuxホスト上のさまざまなハードウェアプラットフォーム用にコンパイルすることを知っておく必要があります。 そのため、Python 3とNinjaをインストールするだけでなく、開発環境の一部としてmesonを用意する必要があります。 これについては、ガイドを参照してください 次のリンクで。
最後に、Picolibcコードを取得するには、次のリンクから取得できます。 必要な書類。
または同じように彼らは相談することができます 私がネットで見つけた次のガイド 詳細な情報があります。