問題タブ [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.
c - Keil uvision 3.0から進んでいますか?
私は、Keil uvision 3.0とarm-uclibc-プレフィックス付きのGNUコンパイラを使用する古い古いプロジェクトに取り組んでいます。Cygnusは、奇妙なバグのある非常に古いツールです。不完全な悪い構文の強調表示、オブジェクトブラウザなどはありません。JTAGを使用してデバッグし、ARMプロセッサと互換性のある16進ファイルを作成する唯一の方法であるため、IDEを知る限り離れることはできません。
誰かが私のatmelat91m55800aアームプロセッサで作業できるようにする最新のツールを提案できますか?
または、オートコンプリートのような最新の機能を使って開発を行うことができるツールかもしれません。高度な構文の強調表示、オブジェクトブラウザなど?JTAGデバッグ(ulink)のサポートは伝説的です
とilはビルドとデバッグにのみkeilを使用しますか?
c - このfor()ループは何回繰り返されますか?
このforループに何かが欠けているかどうかはわかりません。ループ内のコードを8回実行すると、LCDに8文字が出力されると思いますが、7回ループし、7文字しか表示されません。これにはKeilコンパイラを使用しています。私が間違っているところを誰かが見つけられますか?
c - アドレス空間オーバーフロー
コードで問題が発生しています。コードをコンパイルすると、Address Space Overflow というエラーが発生します。これを解決するにはどうすればよいですか。私は keil コンパイラと AT89C51RD2 MCU を使用しています。これは、これまでに使用されたスペースです -
プログラムサイズ: data=149.0 xdata=594 const=1136 code=8467 .
メモリ全体を使い果たした可能性があります。
エラーステートメントは次のようになります。
エラー L107: アドレス空間のオーバーフロー
スペース: メモリスペース(DATA)
セグメント: セグメント名(Function_name)
長さ: 000004H
説明: 指定されたセグメントは、指定されたアドレス空間に配置できません。 セグメントは無視されます。
ありがとう
c - ビットが左にシフトしないのはなぜですか?
私は Keil に埋め込まれた C を使用しています。私は、ビットを保存し、ビットシフトしてから再度保存し、8ビットすべてが保存されるまで繰り返すようにプログラムしようとしています。
ただし、デバッグすると(デバッグが間違っている可能性があります)、値は「01 00 00 00 00 00 00 ...」しか表示されません。論理「1」を格納してから左にシフトすると、「02 00 00 00 00 00 00...」と表示されます。ループが繰り返されると、同じことが何度も繰り返されます。私が期待したのは、「01 01 01 01 01 01 01...」でした (すべての入力ビットが「1」であるとしましょう)。この問題を解決するにはどうすればよいですか?
あ、もう解決しました。
c - keil uvision4 は 8051 ハードウェアの十分な代替品ですか?
8051 MC でプログラムまたは Embedded-C を作成したいと考えています。ISR、LED 点滅、ラウンド ロビンなどのプログラム。ハードウェアなしで可能ですか?プログラムを作成するには、keil uvision4 ハードウェア シミュレータだけで十分ですか? 助けてください。
gcc - 浮動小数点引数を持つ数学関数内でデバッガーが停止する
私はチップをプログラムするためにコンパイラ(ARM EABI用のSourcery Codebenchlite)を使用Keil uVision
しています。gcc
STM32F4 cortex M4
私が設定したコンパイラ制御文字列は次のとおりです。
デバッガーがいくつかの数学関数 ( など) に遭遇すると、デバッガーはasinf()
停止atan2f()
します。
これらの関数の引数も単精度であることを確認しました。
浮動小数点を使用するためのコンパイラ ディレクティブが欠落していることが原因だと思いますが、VFP
特定できませんでした。
見逃したものはありますか?
私が行った例の逆アセンブリコード:
デバッガーは atan2f(0.3,0.4) を評価できますが、atan2f(a,b) を評価すると 0x0803B9CA で停止します。変数ではなく、数値が機能する理由がわかりませんでした。
windows-server-2008 - Windows Server 2008 で管理者として CruiseControl タスクを実行する方法
現在、CruiseControl.NETを使用してビルドを自動化しています。私のビルド環境でソリューションをビルドするには、2 つの異なる方法があります。1 つはKeil uVision4 IDE を使用する方法で、もう 1 つは Visual Studio 2008 を使用する方法です。
CruiseControl.NET を使用して Visual Studio ソリューションを適切にビルドすることに成功し、Keil の uVision コマンド ライン インターフェイスを適切に使用して uvproj プロジェクトをコンパイルするバッチ ファイルを作成しました (コンパイルの詳細はこちら)。
問題の説明
1) 管理者権限でコマンド プロンプトを作成すると、Windows 2008 サーバーでビルド スクリプトを正常に実行し、プロジェクトをビルドできます (手動で実行しています - 開始 -> 実行 -> ctrl-shift-enter で cmd を実行して実行します)。管理者として)。
2) ただし、管理者権限なしでコマンド プロンプトを作成し、バッチ ファイルを実行しようとすると、バッチ スクリプトを実行するには管理者権限が必要であることを確認するプロンプトを受け入れない限り、バッチ ファイルは機能しません。
CruiseControl を使用して、管理者としてバッチ ファイルを自動的に実行するにはどうすればよいですか?
これは、 RunAsコマンドを使用して自動化できるものですか?
技術的な詳細
1) 実行されるバッチ ファイルは非常に単純です。古い出力を削除して出力を再作成し、以下の場所にビルド ログ ファイルを作成します。
2) 現在、Exec 機能を使用して上記の Keil ビルド スクリプトを実行しようとしています。
関連する質問:
c - 8051でのコードの最適化
それで、私はこの挑戦をしなければなりません、それは8051マイクロコントローラーのためのカメラ監視システムを実装することです。
仕様は次のとおりです。
各カメラは動きセンサーに関連付けられており、動きを検出するたびに、このカメラの記録が登録および保存されるカメラの1つになります。センサーが5秒を超えて動きをキャプチャしない場合、このカメラはそれ以上記録されません。
カメラがオンになっていない場合は、ビデオレコーダーを「一時停止」する必要があります。
複数のカメラがオンになっている場合は、マルチプレクサ(mux)を使用して、各カメラが3秒間記録されるようにカメラ信号を選択する必要があります。このように、すべてのアクティブなカメラは3秒間記録する必要があります。アクティブなカメラが1つだけの場合、その信号はマルチプレクサ内の唯一のカメラである必要があります。
これは、以下のコードですでに達成しています。そして今やらなければならないことは、コンパイラーの最適化なしでコードのサイズを最適化することです。コードは今では198バイトですが、180バイト未満にしようとしています。
出来ますか?私はすでに#defineの計算を試みましたが、コンパイラーはすでにそれを最適化しています。
time - armcc (keil uVision4): RTC から時間を返すために time() を取得する方法は?
私は、無料のツールを使用して Linux 上の組み込みシステムを操作することにかなり慣れている開発者です。今、私は Windows で Keil コンパイラを使用するプロジェクトに参加しています (armcc、uVision4... この分野の名前付けは少し混乱しています :)。
使用されるハードウェアにはリアルタイム クロックがありますが、常に I2C インターフェイス経由で直接アクセスされます。time()
さまざまな理由 (主にコードの移植性) から、標準関数に接続したいと考えています。
どうすればこれを行うことができますか?
c - 外部割り込みプログラムが長すぎて正しく動作しない可能性はありますか?
外部割り込みプログラムについて質問があります。DS89C450のINT1(立ち下がりエッジに設定された外部割り込み1)を使用していて、外部割り込みのプログラムが非常に長い場合、正しく機能しますか?それとも何か問題がありますか?KeilEmbeddedCを使用しています。