問題タブ [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.
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 ポインターを逆参照するときにクラッシュしていることがわかります。
arm - サイズ最適化のために newlib をビルドするにはどうすればよいですか?
Newlib 2.5.0 をターゲット C ライブラリとして arm-eabi-gcc ツールチェーンを構築しています。
ターゲットの組み込みシステムは、実行速度よりも小さいコード サイズを優先します。コード サイズを小さくするように newlib を構成するにはどうすればよいですか?
strstr
デフォルトのビルドは、コード サイズが 1KB を超えるバージョンを生成するようなことを行います。
c - エラー: signal.h に不明な型名 'pthread_attr_t' があります
Cygwin で Emacs をビルドしようとしています。Cygwin は最新で、完全にパッチが適用されています。Newlib のおかげで、プラットフォームをテスト ベッドとして使用しています。Emacs は次のエラーで失敗します:
/usr/include/cygwin/signal.h
175 あたりを調べると、次のようになります。
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 データ構造は明らかな宣言や定義なしで使用されているため、ここでは当てはまらないと思います。
物事が期待どおりに機能していることを誰かが確認できますか? 期待どおりに動作している場合は、失敗を回避するためのヒントをいただければ幸いです。
前もって感謝します、