問題タブ [cmsis]
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.
ecos - STM32Cube eCos 用の CMSIS レイヤー
eCosでSTM32Cubeを使用する既存のCMSISレイヤーがあるかどうかは誰にもわかりませんか? 存在しない場合、eCos を STM32Cube ライブラリに統合するのはどれくらい複雑ですか?
c - UART 受信割り込みは、数時間の受信成功後にトリガーを停止します
リモート温度センサーから温度データを受信するために、xbee に接続された STM32f4 ディスカバリー ボードを使用しています。使用されるコードは、CMIS UART サンプル コードです。パケットデータを1バイトずつ受信します。つまり、UART 受信割り込みは、各バイトが受信されるたびに呼び出されます。完全なパケットを取得したら、温度データをコピーします。私の UART コールバック関数は問題なく動作します。しかし、数時間後、UART 受信割り込みが機能しなくなり、UART は何も受信できなくなります。ただし、UART 送信は引き続き機能します。ボーレート 115200 の UART1 を使用しています。UART 割り込み優先度を 0 に設定しましたが、この優先度を共有する割り込みは他にありません。他のすべての割り込み優先度は UART よりも低くなります。UART 割り込みがトリガーを停止する理由を教えてください。
arm - Psoc システムで arm CMSIS を使用する
サイプレスの Psoc5LP システムでアーム dsp コアを利用しようとしています。で例を見つけました
主に fft の例は複製に興味がありますが、コアがどのように機能するかについて少し混乱しています。以前に Xilinx Spartan-6 で picoblaze コアを使用したことがありますが、特に Psoc では既製のコアを使用したことがありません。
psoc システム リファレンス ガイドを調べたところ、スタートアップとリンクに関する CMSIS に関する情報が見つかりましたが、完全には理解できません。誰かが私を始めるために正しい方向に私を向けてもらえますか? また、fft の例の arm_math.c など、必要なすべてのファイルを個別にダウンロードする必要がありますか (そうであれば、それが必要な唯一のファイルだと思いますか?)、または arm から CMSIS バージョン 4.3 をダウンロードする必要があるだけですか? Webサイト
https://silver.arm.com/browse/CMSIS#
私は、これらのコアを使用してスペクトル フラックス解析と自己相関を実装しようとしていますが、開始するのに適していると思います。
前もって感謝します、
スカルソン
arm - ARM CMSIS DSP fft 関数の適切な FFT 長
現在、cortex m3 PSoC 5lp チップで ARM CMSIS DSP ライブラリを使用しようとしています。
一部の関数を使用していくつかの問題に遭遇し、関数arm_cfft_q15
(または関数のいずれかarm_cfft_***
) の使用について質問があります。
私が持っていると言う
そして私は走る
これにより、「その場で」変換が行われます。そのため、FFT は実数値と虚数値の両方を返すため、実際には長さ 512 の fft しか返せないのでしょうか、それとも 1024 FFT サンプルの 512 でしょうか? FFTを取得した後、私は
fftlength
1024 はどこですか。
これが返さMAG_of_fft
れ、プロットすると、実際に期待している形状のように見えますが、FFT の長さが正確にわからないため、結果を解釈する方法が正確にはわかりません。私は 1024pt FFT を実行していると言っていますが、512pt FFT のみ、または 1024pt FFT の半分のみを返しているようです。
それで、私はこれを正しく理解していますか?これはADC_samples
、1024 pt の FFT を取得するには、配列がデータの 2 倍の長さでなければならないことを意味しますか? そして、FFTの長さが1024であることを伝えることで、その2048配列を使用してFFTの大きさを計算できますか?
これらの関数を適切に解釈する方法と、予想されるFFTの長さを誰かが説明してくれますか?
ubuntu-12.04 - .pack ファイルを開く (UNIX)
ARM CMSISライブラリは、*.pack ファイルとしてダウンロードできます。どうすれば開く/「解凍」(?)できますか?
関数unpackがあったようですが、これは廃止され、 gzipに委譲されました。ただし、gunzipは拡張子を認識していないようです。
zcatはファイルを読み取っているように見えます (内容のように見えるフォーマットされた出力を返します。以下を参照してください) が、次のメッセージで失敗します ( gzipから)。
(zcat の出力の一部を以下に示します:)
c++ - CMSIS-RTOS の osMailFree() は、osStatus-type 値の代わりに何らかのアドレスを返します
だから私はで実行されているatマイクロコントローラーでCMSIS-RTOS
メールキューメカニズムを使用しています。そして、以前に割り当てられたメールボックス要素を osMailFree() で時々解放すると、osOKやosErrorValueなどのosStatus型の値またはドキュメントに記載されているものの代わりに、何らかのアドレスが返されました。Keil uVision 5.0.5
STM32F427
180MHz
このアドレスは、 osMailQDefで割り当てられたサービス構造体のos_mailQ_p_##blahlbah要素を指しています。これは、同じosMailQDefマクロで割り当てられた実際のデータ バッファーの末尾を超えて指していることも意味します。
私の構造はすべて静的に割り当てられます。スレッドのスタック サイズ (OS_STKSIZE 600) もかなりきれいに見えます。
あるスレッドがメール要素を割り当てられない ( osMailAlloc()が 0 を返す) 一方で、他の待機中のスレッドが常にosEventTimeoutを取得しているときに、私のプログラムが早い段階または後で状況に陥るという事実がなければ、気にしません。すべてのメモリブロックが使用されているようですが、使用するたびに正直に解放しています(オブジェクトのデストラクタをラップして、本当に解放されていることを確認してください)。
それは何を意味し、どこを掘ればよいのでしょうか?
stm32 - STM32F427 の USART1 は、8 番目のデータ ビットをパリティ ビットであるかのように設定することがあります。
次のクラスを介してSTM32F427
UASRT1 を使用しています。
問題は、時々 USART が実際の 8 番目のデータ ビットを無視し始め、それをパリティ ビット (具体的には奇数パリティ) として設定し始めることです。最も奇妙なのは、事前の再プログラミングなどを行わなくても、長い電源オフの後でも時々発生することです。たとえば、昨日の夜はすべて問題ありませんでしたが、翌朝、仕事に来てデバイスの電源を入れると、説明されている方法で動作し始めます. ただし、これに限定されず、次の再起動後にランダムに表示される場合があります。
その効果は、オシロスコープや、さまざまなプログラムで使用されるさまざまな UART-USB コンバーターではっきりと確認できます。この効果が現れると、テスト データ セットを送信するようにマイクロコントローラを再プログラムすることさえ可能です。たとえば、エンドレス サイクルで 0x00 から 0xFF まで。問題には影響しません。速度の変更 (9600 bps まで)、ワードあたりのビット数、パリティ制御は役に立ちません - 再プログラミング後も効果はそのまま残ります (たとえば、1 バイトあたり 2 パリティ ビットという異常な値が発生します)。または、少なくとも、UASRT が初期化され、プログラムのワークフローに従って通常の順序で使用されている間。
これを修正する唯一の方法は、main() 関数を次のようにすることです。
これにより、再プログラミングと再起動の後、最初の数バイト (最大 5) が不正に送信されますが、その後はすべてがうまく機能し、さらに再起動と再プログラムを繰り返しても引き続きうまく機能します。
STM32F427
この影響は、同じレイアウトの 2 つの物理的に異なるボード上の2 つの異なる で観察されます。外観に規則性は見られません。信号の極性とレベルは USART 要件に準拠しており、調査中にノイズや接触不良は検出されません。私のプログラムで使用されている他のコード (私のプログラムまたはライブラリーのいずれか) の方向から UASRT1 への愛情がないように思われるか、深く埋もれています。CMSIS-OS
は、プロジェクトで RTOS として使用されKeil
uVision 5.0.5
ますRTX OS
。
助けが必要。
arm - KEIL RTX RTOS でタスクを実行するための固定時間
プリエンプティブ ラウンド ロビン スケジューラを使用する KEIL RTX RTOS を使用しています。データを表示するための LCD があり、いくつかのタスクがこの LCD にアクセスできます (他にもいくつかのタスクがあります)。たとえば、最初のタスク ハンドル LCD はデータを 50 秒間表示し、50 秒後、2 番目のタスクはデータを 10 秒間処理して表示します)。LCD へのアクセスを管理するためにミューテックスを使用する必要があることはわかっていますが、一定時間管理する方法がわかりません。LCD タスクは優先度が最も低く、他に実行するタスクがない場合、これらのタスクはメッセージを表示するために実行されます。 .