これは私の最初の投稿であり、約 1 年間取り組んだりやめたりしようとしてきたことをカバーしています。
基本的には、次のように要約されます: LPC2388 (NXP の ARM7TDMI) で動作させようとしている newlib のコピーがあります。これは、arm-elf-gcc を使用する Linux ボックス上にあります。
私が持っている質問は、newlib の移植について話している多くのチュートリアルを見てきたということです。それらはすべてスタブ (exit、open、read/write、sbrk など) について話しているので、かなり良い考えを持っています。これらすべての機能を実装する方法。しかし、どこに置くべきですか?
私は、sources.redhat.com/pub/newlib/newlib-1.18.0.tar.gz から newlib ディストリビューションを入手しました。 arm) には、更新する必要があるすべてのスタブが含まれていますが、それらはすべてかなり完成した外観のコードで埋められています (これは、crt0.S なしでは機能しないようで、それ自体は私のチップでは機能しません)。
これらの関数を自分で一掃して、書き直すべきですか?それとも別の場所に書くべきですか?「アーキテクチャ」の名前で newlib/libc/sys にまったく新しいフォルダーを作成し、ターゲットを一致するように変更する必要がありますか?
このようなものをオープンソースプロジェクトとしてリリースした後、配布する際の適切なエチケットがあるかどうかも興味があります。現在、binutils、arm-elf-gcc、newlib、および gdb をダウンロードしてコンパイルするスクリプトがあります。newlib ディレクトリにあるファイルを変更する場合、スクリプトが自動適用するパッチを渡す必要がありますか? または、変更した newlib をリポジトリに追加する必要がありますか?
わざわざ読んでくれてありがとう!これに続いて、私がやっていることのより詳細な内訳があります。
私のセットアップに関する詳細情報が必要な人のために:
Uzebox プロジェクト ( http://belogic.com/uzebox/ )に大まかに基づいて、ARM ビデオゲーム コンソールを構築しています。
私はそれを理解しようとして、多くの異なるリソースから引き出してあらゆる種類のことをしてきました. ここで私の冒険の始まりについて読むことができます (sparkfun フォーラム、私が自分でそれを理解するので、誰も応答しません): forum.sparkfun.com/viewtopic.php?f=11&t=22072
私は、これらすべてに続いて、newlib の移植に関する Stackoverflow の質問を読み、さまざまなチュートリアル ( wiki.osdev.org/Porting_Newlib など) をいくつか見ましたが、どこに、誰が、何を、いつ、どのように!