問題タブ [keil]

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 に答える
655 参照

scons - Keil コンパイラ/リンカーでの scons の使用

Keil C51 コンパイラと scons をビルド システムとして使用しようとしています。

私が抱えている最後の問題は、$SOURCESカンマ区切りでリンカに出力する方法です。デフォルトでは、区切り文字としてスペースが使用されます。

SConstruct の関連部分は次のとおりです。

これで私は得る:

BL51.exe driver.obj flash.obj initialization.obj power.obj TO Outfile.omf

私が欲しいのは:

BL51.exe driver.obj,flash.obj,initialization.obj,power.obj TO Outfile.omf

$SOURCESは構築変数であり、コマンドラインへの出力方法を変更する方法が見つかりません。

誰?

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

arm - Keilarmstartup.sアセンブリコード

最小限のハードウェアをC言語で動作するように初期化するため、keilスタートアップアセンブリコードを理解しようとしています。私はこの行で立ち往生しています:

上記の行の意味は何ですか?具体的には、<>シンボル?誰かが私がこの組み立て手順を理解するのを手伝ってください。

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

c - Arm #pragma anon_unions に相当する VisualStudio

Arm "#pragma anon_unions" により、以下が可能になります。

このコードを VisualStudio でコンパイルするためのアイデアはありますか?

0 投票する
3 に答える
5549 参照

c - 組み込み C で指定された初期化子を使用して構造体を初期化しています。「式が必要です」

構造体を初期化し、値を構造体変数に代入しようとしています。

私の構造体:

そして、変数を宣言して初期化しようとするときは、指定された初期化子を使用します。

組み込みプロジェクトに Keil µVision4 と ARM C コンパイラを使用しています。このコードをコンパイルすると、コンパイラはError #29: Expected an expression を返します。エラーは、初期化コードのすべての行で発生します。

これは ANSI C99 で書くときの方法だと読みましたが、私の場合はうまくいきません。ANSI C99 で構造体を初期化する方法

私は「悪い」コードを書くことができることを知っています:

しかし...

任意のヒント?


更新: 次のコードが機能します。

しかし、繰り返しますが、これは特にきれいなコードや方法ではありません。

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

discovery - STM32F4 Can1 から最初のメッセージを取得して Can2 に送信する方法、Can1 と Can2 の速度が異なる

開発キット STM32f4 ディスカバリ キットがあり、Canbus インターフェイス モジュールが 2 つあります。Can1 から最初のメッセージを取得して Can2 に送信する方法、 Can1 と Can2 は速度が異なります

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

c - エラーC28:複数のストレージクラス

私はKeilを使用しています。次のファイル「Driver.h」と「Driver.c」があります。

Driver.h

上記の記述が間違っていることを私は知っています。グローバルに宣言されたときの静的な変更の意味。それでも、配列である変数を宣言したいと思います。別のファイルで使用可能であり、値を変更しない限り値が変更されないスコープを持っている必要があります。

Driver.c


int Status [5] = {0x00,0x00,0x00,0x00,0x00};

エラーメッセージを以下に示します。

エラーC28:複数のストレージクラス

手伝ってくれませんか?

0 投票する
4 に答える
73626 参照

c - unsigned charをCで2桁の16進値として出力するにはどうすればよいですか?

unsigned char値を2桁の16進値として出力しようとしていますが、結果は常に4桁の16進値として取得され、コードの何が問題になっているのかわかりません。

として2桁の16進数の結果を期待しています0xC0が、常に。を取得し0xC0FFます。

同様に、unsigned charと同じ変数(ステータス)を%buフォーマット識別子で出力しようとすると、出力は。になりました255

2つの16進文字だけを出力として取得するにはどうすればよいですか?

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

c - keil ide の C ソース コードからアセンブリ ルーチンを呼び出す

アセンブリ言語で 8051 マイクロコントローラー用の遅延ルーチンを使用しています。アセンブリ言語プログラムでそれらを使用できますが、これらのルーチンは C 言語から使用したいと考えています。

ちょうど下に投稿する delay.asm ファイルである遅延のコード...

このコードをアセンブリ言語にインクルードして簡単に使用します。ただし、これらのルーチンを c ソース コードから呼び出したいと考えています。

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

c - cで_irol_関数を知る

これは私のコードの1つにありました。_irol_そこでのプレゼントを説明していただけませんか。

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

c - Cortex M3 のブートローダ

私は mbed の LPC 1768 ボード (cortex M3 cpu を搭載) を使用しており、ここで何かを達成しようとしています。主に SD カードからユーザー アプリケーションをアップグレードしています。最初にブートローダー/ナノカーネルの 2 つのプログラムを作成しています。ユーザーアプリ (最初は helloworld で十分です):

  • アドレス 0x00 のブートローダー/ナノカーネルが実行され、いくつかのチェックが行われ、最終的に SD カード上のバイナリ ファイルが取得されます。
  • ブートローダー/ナノカーネルは、このバイナリをアドレス 0x9000 にコピーします (後で変更する必要があるかもしれませんが、このスペースはブートローダー/ナノカーネルによって使用されないため、問題ありません)。
  • ブートローダーは 0x9000 + 4 でユーザー アプリケーションにジャンプします。

Sd カードは非常に簡単に解決できます。ジャンピング部分に問題があります。これがジャンプ関数のコードです。

}

そこで、開始アドレスを 0x9000 に変更してユーザー アプリケーションをコンパイルしました (私は Keil uvision4 を使用しています)。(flashmagictool を使用して) ボードをプログラムし、手動で (まだ flashmagictool を使用して) 0x9004 (0x9000 + 4) にジャンプすると、ユーザー アプリケーションが実行されるので、コンパイルが正常に機能したため、ユーザー アプリは 0x9000 で実行できると思います。

しかし、ブートローダー/ナノカーネルを実行すると、これはユーザーアプリケーションにジャンプせず、残念ながらデバッグできないため、何が起こっているのかわかりません...また、SDコピーを使用しないようにしましたそのため、最初に基本的に 0x9004 へのジャンプだけでブートローダーをプログラムします。次に、0x9000 に位置するユーザー アプリケーションをプログラムします。ボードを再起動すると、ブートローダーは実行されますが、ユーザー アプリにジャンプしません。メモリをチェックしたところ、両方のプログラム (ブートローダー + ユーザー アプリ) が正しく、適切な場所にあるようです。

私はここに何かが欠けていると確信しています.私が見なければならない低レベルのコードはありますか? 私はオンラインでドキュメントのトーンを読みました.私が見つけた例から、それらは私と同じ方法でユーザーコードにジャンプしています...助けてくれてありがとう.