問題タブ [codewarrior]
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.
linker - 事前定義された ELF コード セクション
ELF リンカ コマンド ファイルで参照できる定義済みコード セクションは何ですか? 利用可能な他のものに加えて、私は特にこれらについて疑問に思っています:
- 。文章
- .rodata
- .sdata
- .sbss
- .bss
- 。データ
ドキュメントを見つけることは、最も困難であることが証明されています。この文脈で頭字語 ELF が何を表しているかを誰かが教えてくれれば、それはプラスになります。ありがとう。
c - CodeWarrior 内で C ファイルからアセンブリ コードを呼び出すにはどうすればよいですか?
教授は、アセンブリ コードを使用してプログラムの一部をプログラミングし、そのコードを C プログラム内から呼び出し、それが完了したら C プログラムに戻るようにしてほしいと言っています。これに関するドキュメントが見つからないようです。問題があれば、68HC12 を使用する Dragon12 ボードを使用しています。彼は、インライン asm() 関数を使用することを望んでいるようには見えません。
c - 初期化されたオブジェクトのコピーダウンが作成されていませんか?
私は codewarrior を使用して HC12 用にコンパイルしています。2 つの 120 要素の配列 (score と dur) があります。通常の方法で初期化しました: unsigned int score[120] = { ... }; しかし、コンパイルしようとすると、「L1981: 初期化されたオブジェクト "スコア" のコピーダウンが作成されませんでした。初期化データが失われました」というリンカ エラーが発生します。それが何を意味するのか、またはどのように作成できるのかがわからないため、コピーダウンが作成されます。このプログラムはコンパイルされ、値を main() に配置すると正常に設定されるように見えますが、割り込みによってアクセスされるため、グローバル変数である必要があります。
c - ボイド * パラメータ アドレス シフト
Codewarrior 8.3 (IDE バージョン 5.9) を使用して 56f8367 DSC をプログラムしています。
私は尊敬されているサードパーティのソフトウェアを使用しているので、彼らは自分たちが何をしているのかを知っていて、コードをあまりいじりたくないのだと思いますが、void * パラメータを渡して遊んでいて、それは私が完全に慣れていないものですと。
だから私はこの機能を持っています:
関数ポインターを介して呼び出されています。この関数呼び出しの直前にプロセッサを停止すると、pContext が指すアドレスが 0x1000 であることがわかりますが、ここでキャストした後、pLinkContext が指すアドレスは 0x0800 です。これは、メモリの別の部分から書き込みと読み取りを開始するため、明らかに問題を引き起こします。
バイトのアドレス指定/アライメントで、1 ビット以上「シフト」するという奇妙なことが起こっています。何が問題なのかはわかりますが、その理由、さらに重要なことに、問題を解決する方法がわかりません。
何を探すべきですか?
(コメントリクエストごとに呼び出しを追加するための編集)-ただし、すべてが構造体に埋め込まれており、関数ポインターを介して呼び出されていることを考えると、それがどれほど役立つかわかりません。"pTprtContext->tmw.pChannel->pLinkContext" は CONTEXT とは異なる型であると言えます。pLinkContext は CONTEXT の先頭と一致するため、そこに挿入しようとしているだけだと思います。
c - CodeWarrior コンパイラの警告:「データが失われる可能性があります」
次のコードを検討してください。
CodeWarrior バージョン 5.9.0 の PT1000-Temperature Sensor でMC9S08DZ60 ( http://www.freescale.com/files/microcontrollers/doc/data_sheet/MC9S08DZ60.pdf ) を使用しています。この関数は、一時を計算して「結果」を返すことを目的としています。しかし、「ベータ」と「シータ」の値は 0 のままです。変更はありません。
また、C2705: データ損失の可能性という警告が表示されます。「結果」の値が正しくありません。何が悪いのか手がかりがないので助けてください!!
前もって感謝します!
c - 符号なしポインタの不正な暗黙の変換
これがコンパイルされるのはなぜですか:
しかし、これはしません:
これは、私が得たコンパイル エラーを示す単なる例です。プロジェクトを古い IDE から新しい Eclipse ベースの IDE に移植していますが、これはコンパイルに使用されていましたが、Eclipse IDE では使用されていませんでした。
基本的に、コンパイルに使用されたが現在は違法である暗黙の変換が多数あります。この理由と、Eclipse で再度警告を出すための可能な回避策を知りたいです。
c++ - cout が確実に機能しない
ブラックジャック/21 コンソール アプリケーションを作成する学校のプロジェクトに取り組んでいました。プログラムはやや長く複雑なので、問題のあるコードのみをここに記載します。完全なコードは以下になります。
常に最初のステートメントを出力しますが、その後すぐに停止することがあります。プログラムの入力に応じて、たまにしか発生しません。私 (および私の教師と仲間) は、このプログラムが最初のステートメントの後に停止する理由を理解できませんでした。クラスの他の少なくとも 1 人が同様の問題を抱えています。
これらは、Windows 7 Dell デスクトップで CodeWarrior IDE を使用して実行されました。
arm - MQX Lite LED タスクが機能しない
フリースケールの FRDM-KL25Z アーム ボードを使用しており、コード ウォリアー IDE を使用して LED 点滅プログラムを正常に作成できました。また、フリースケールのスタートアップ キットからすべてのサンプル プログラムを実行することもできます。現在、MQX タスクを使用して LED を点滅させる MQX Lite プログラムを作成しています。タスクを使用して、ボード上の LED の初期化用と 2 つの LED の点滅用に 3 つのタスクを作成しました。task_template_list.c のタスク宣言は次のとおりです。
mqx_tasks.c で、以下のようなコードを書きました
**
しかし、プログラムをデバッグすると、優先度の高い LED だけが点滅し、他のタスクは機能しません ..... 誰が私がやっている間違いを教えてくれますか? ありがとう**