問題タブ [newlib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
188 参照

arm - NXP K64 ARM Cortex-M4 で実行されている FreeRTOS ベースのマルチタスク環境で vfprintf がクラッシュする

NXP K64 ARM Cortext-M4 プロセッサで実行されている FreeRTOS に基づくマルチタスク環境で動作する NewLib ライブラリによって提供される「vfprintf」を取得する際に問題が発生しています。

コードは arm gcc コンパイラを使用してコンパイルされます。

FreeRTOS は、configUSE_NEWLIB_REENTRANT スイッチが有効になるように構成されています。

_write_r システム コールを提供したので、最終的にデータは MCU の UART の 1 つに渡されます。

「fp->_p」にアクセスすると、__sfvwrite_r でハードフォールト例外がトリガーされます。この場合、fp はデフォルトで xNewLib_reent.__sf[2] に割り当てられる stderr です。

xNewLib_reent.__sf[2]._p ポインターのデフォルト値は NULL であり、他の場所には割り当てられません。

この点に関するアドバイスは大歓迎です。

更新: ハード フォールト ISR で、スタック フレームから PC を抽出し、デバッガー (つまり、Eclipse CDT スタンドアロン デバッガー) でアセンブリ ビューを確認すると、_p ポインターを逆参照するときにクラッシュしていることがわかります。

0 投票する
2 に答える
1096 参照

arm - サイズ最適化のために newlib をビルドするにはどうすればよいですか?

Newlib 2.5.0 をターゲット C ライブラリとして arm-eabi-gcc ツールチェーンを構築しています。

ターゲットの組み込みシステムは、実行速度よりも小さいコード サイズを優先します。コード サイズを小さくするように newlib を構成するにはどうすればよいですか?

strstrデフォルトのビルドは、コード サイズが 1KB を超えるバージョンを生成するようなことを行います。

0 投票する
0 に答える
588 参照

c - エラー: signal.h に不明な型名 'pthread_attr_t' があります

Cygwin で Emacs をビルドしようとしています。Cygwin は最新で、完全にパッチが適用されています。Newlib のおかげで、プラットフォームをテスト ベッドとして使用しています。Emacs は次のエラーで失敗します:

/usr/include/cygwin/signal.h175 あたりを調べると、次のようになります。

signal.hしかし、ヘッダー ファイルに pthread ギアのインクルードが見当たりません。ヘッダーは または のいずれかにする必要があると思い<sys/types.h>ます<pthread.h>

Open Group の2.2.1 POSIX.1 シンボル を解析し、cygwin の features.h で _POSIX_SOURCE を定義するとしたら? _XOPEN_SOURCEに定義するだけで十分なはず600です。Open Group docs の「The _XOPEN_SOURCE Feature Test Macro」セクションから:

このボリュームの IEEE Std 1003.1-2001 は ISO C 標準に準拠しているため、_POSIX_C_SOURCE を 200112L に設定することで有効になるすべての機能は、_XOPEN_SOURCE を 600 に設定することで有効になるため、_XOPEN_SOURCE がそのように定義されている場合は、_POSIX_C_SOURCE を定義する必要はありません。 . したがって、_XOPEN_SOURCE が 600 に等しく設定され、_POSIX_C_SOURCE が 200112L に等しく設定されている場合、動作は、_XOPEN_SOURCE のみが定義され、600 に等しく設定されている場合と同じです...

gnutls-3.3.17 with gcc-5.4.0 をコンパイルするときのエラーで、類似した過去のメッセージを 1 つ見つけましたが、それはアップストリームのバグとして報告され、修正されたようです。pthread データ構造は明らかな宣言や定義なしで使用されているため、ここでは当てはまらないと思います。

物事が期待どおりに機能していることを誰かが確認できますか? 期待どおりに動作している場合は、失敗を回避するためのヒントをいただければ幸いです。

前もって感謝します、