MIPS based embedded device
の代わりにC++
の代わりにC
を使用してアプリケーションをビルドしようとしています。まず、hereが見えるリンクの問題がありました。この問題は修正され、アプリケーションを正常に構築できます。私のコードでは、malloc
関数をメモリ割り当てに使用していますが、この関数を呼び出すと、"Segment Fault"
というメッセージが表示されます。私はmalloc
をnew
演算子に置き換えましたが、結果は同じでした。詳細については、蛇腹コード参照:行3が実行され、malloc
関数が呼び出されると組み込みデバイスでnewまたはmallocを使用することによってセグメントエラーが発生しました
int main(int argc, char** argv)
{
char* str = (char*)malloc(10 * sizeof(char)); //or char* str = new char[10];
strcpy(str, "Hello");
return 0;
}
を"Segment Fault"
メッセージが画面に表示されます。 mipsel-elf-g++
の代わりにmipsel-elf-gcc
を使用すると、この問題は発生しません。
ここで何が間違っていますか?
(1)埋め込み型と 'malloc'は混在しません。 (2)ARM7デバイス用のコードをコンパイルするのになぜ 'mipsel-elf-g ++ 'を使用していますか? –
1. '埋め込み型とmallocは混在しないでください。 2.メーカーツールチェーンではmipsel-elf-gccを使用しているため、mipsel-elf-g ++を使用することにしました。 –
埋め込みコードでの動的割り当ては悪い考えです。代わりに、プールされたアロケータを使用するようにしてください。お使いのデバイスはARM7プロセッサまたはMIPSプロセッサで、ARMプロセッサ用に 'mipsel-elf-g ++ 'を使用するのは間違っています。 –