問題タブ [zig]
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 - このリンカ スクリプトがオフバイワン アドレスを生成するのはなぜですか?
ARM Cortex-M0 マイクロコントローラ (具体的には、STM32 Discovery 開発ボードの一部としての STM32F072B) 用のファームウェア コードを書いています。
私のリンカー スクリプトは特別なことは何もしません。ベクター テーブルに入力し、コードのすべてのテキスト セクションとデータ セクションをインクルードするだけです。
ELF ファイルをビルドしてリンクし、シンボルをダンプすると、ELF エントリ ポイントだけでなく、セクションで終わるアドレス.vector_table
もすべて 1 つずれていることがわかります。
シンボル テーブルは_start
0xC4 に表示されますが、リンカー スクリプトで定義されている ELF エントリ ポイントは_start
0xC5 に設定されています。同様にdummy_isr
、ベクトル テーブルに書き込まれるアドレスも 1 つずれています (dummy_isr
シンボルは 0xC0 として定義され、リンカによって 0xC1 がベクトル テーブルに書き込まれます)。の分解により、とがそれぞれ 0xC0 と 0xC4 で始まることが.text
確認されるため、リンカが書き込んでいるアドレスは間違っています。_dummy_isr
_start
0xC1 と 0xC5 は有効な命令のアドレスでもなく、それぞれ命令の途中にあります。この不一致の原因は何ですか?
struct - Zig での基本的な古典的な try-catch の実装
try-catch
Zig で従来のエラー処理を実装するにはどうすればよいですか?
例えば。このエラーを解決し、エラーが発生しない場合にのみ実行するにはどうすればよいappend
ですか?
可能であれば、上記のコードの修正版を示してください。
zig - 複数の exe とライブラリを含む zig プロジェクト
いくつかの実行可能ファイルと静的ライブラリをビルドする zig プロジェクトをセットアップしたいと考えています。これは私が念頭に置いている構造です:
それを行う1つの方法は、次のようなものを使用して、単一のbuild.zigでこれらすべてを記述することだと思います:
それは良い方法ですか?exeとlibsを別々のファイルに記述することは可能ですか?その場合、それらをどのようにリンクしますか?
編集:静的ライブラリは実際には必要なく、代わりにパッケージを実際に使用できると思います。これはもっとジグのようになると思います。ただし、静的ライブラリのアプローチにはまだ興味があります。