問題タブ [truestudio]

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

freertos - ポートに接続した後の STM32F411、FreeRTOS および CubeMX HardFault_Handler()

私のプロジェクトで助けが必要です。Atollic TrueSTUDIO、CubeMX、および FreeRTOS を使用しています。ADC からデータを受信したプロジェクトがあり、USB で送信しようとしています。PC でポートを開くまで (HTerm や RealTerm などを試しています)、ダバグが停止してHardFault_Handler()表示されるまで、すべて正常に動作します。

これが私の main.c です (すべて FreeRTOS 用の CubeMX によって生成されます。

これが私のusbd_cdc_if.cです:

誰かが私を助けることができますか?

0 投票する
0 に答える
207 参照

arrays - Atollic TrueStudio (Eclipse) Debug Expressions 配列をパーツにカット

Atollic TrueStudio for STM32 9.1.0 の Expression パネルで変数をデバッグして、配列のすべての要素を Excel シートにコピーしたいと考えています。式パネルでのデバッグ中に、配列要素を簡単に選択でき、ctrl+c -> ctrl+v がうまく機能します。

しかし、私の場合は 8192 個の要素のように、配列に多くの要素がある場合、式パネルはこの配列を 100 個の要素部分の長さにカットします。下の写真を参照してください。

式パネルのスクリーンショット ここに画像の説明を入力

この大きな配列からすべてのデータを収集するのは本当に大変です。

これに対する設定はありますか?

または、その他の回避策はありますか?

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

stm32 - IDB008V2 ボードで st によって与えられた例をロードする方法は?

bluenrg-2 でソフトウェアを開発する必要があります。IDB008V2 開発ボードを使用しています。ST が提供するチャットの例を使用したいと思います: https://www.st.com/en/embedded-software/stsw-bluenrg-dk.html

コンパイルは正しく機能しますが、ボードにロードすることはできません。再起動し、古いプログラムがまだ存在します。さらに、stlinkv2 (JTAG 経由) でカードが検出されず、USB ポートを使用せざるを得ません。

  • 同じ問題が発生して、他のすべての例を試しました。
  • Keil と Truestudio を使用しましたが、同じ結果が得られました。
  • ただし、新しいプログラム (Truestudio の基本的なプログラム) を作成すると、ボードに正しくアップロードされ、完全に動作します。
  • また、ST のチャットで使用されるさまざまなソース ファイルを新しいプロジェクトに移植しようとしましたが、宣言されていない変数など、多くの依存関係の問題にすぐに気付きました。

ソース ファイルを新しいプロジェクトに移植するのが良い考えかどうかはわかりません。サンプルプログラムをボードにロードできれば良いスタートです。

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

c - STM32 Nucleo-F334R8 での malloc が原因と思われるメモリ上書きエラーの修正

これが私の問題の明確な説明であることを願っています.1週間強の間、さまざまなマニュアルを調べてきましたが、これを解決しようとしています:

最近、STM32 Nucleo-F334R8 でフィードバックとテストを行った後、クラス プロジェクトのソフトウェア設計を再設計しています (私の最初のコードはメモリとタイミングのエラーでいっぱいでした)。

現在、2 つの主なエラーが発生しています。

(この問題は解決済みです)

私は sprintf を使用していましたが、割り当てられたメモリの外側に書き込まれる末尾の null 文字を考慮していませんでした。

115200 ボーレートで非同期モードで USART 1 を使用して USART データを処理する場合:

プログラム受信シグナル SIGTRAP、トレース/ブレークポイント トラップ。memset () の 0x08002c08

プログラム受信シグナル SIGTRAP、トレース/ブレークポイント トラップ。memset () の 0x08002c08

プログラム受信シグナル SIGTRAP、トレース/ブレークポイント トラップ。memset () の 0x08002c08

プログラム受信シグナル SIGTRAP、トレース/ブレークポイント トラップ。memset () の 0x08002c08

プログラム受信シグナル SIGTRAP、トレース/ブレークポイント トラップ。std.isra の 0x080056b4 ()

問題のアドレス 0x08002c08 に格納されている値は通常、10 進数で 134228385 のような非常に大きな値です。また、問題を強制的に実行しても、プログラムは引き続き正常に動作し、問題が再び発生することはありません。奇妙な原因が考えられますか?

更新: memset の問題を少し追跡したところ、setOutputBufferメソッド中に発生することがわかりました。

(この問題は解決済みです)

本質的に私の問題の原因は、sprintfプログラムコードの誤用とnull文字での上書きでした

ボードのメモリの bss セグメントを埋めているときに、ブレークポイント トラップが発生しました。

そして、4 ビット モードの LCD (すなわち、PA12、PA11、PB12、PB11、PB2、PB1、PB15) 用に 7 つの GPIO ポートを追加し、DMA モードの 2 チャネル ADC (PA1、PA0) 用に 2 つ追加した後:

プログラム受信シグナル SIGTRAP、トレース/ブレークポイント トラップ。LoopF​​illZerobss () at ..\startup/startup_stm32f334x8.s:103 103 cmp r2, r3 LCD と ADC 機能を実装しようとしているときに、スタートアップのLoopF ​​illZerobss 関数でブレークポイント トラップ エラーが発生しました。まったく(ただし、バイトを割り込みとして受信し、トークンを処理することはできますなど、送信を拒否するだけです)、bss セグメントを読み取った後、可能な限り多くのグローバル変数をゼロ以外の値に初期化して問題を解決しようとしましたが、これは機能しませんでした。STM32CubeMx 設定を追加した後に問題が観察されましたADC と LCD で使用される 7 つの GPIO ピンの場合、ただし、CubeMX によって生成された事前定義されたコードがメモリの bss セグメントの境界を超えていて、bss セグメントのサイズが大きすぎる場合を除き、私の知る限り、これらのいずれも初期化された変数を使用しません。ボードのメモリが大きくなっています (可能性は低いと思われますが、除外することはできません)。

基本的に、このプロジェクトのアイデアは、USART、ADC、およびその後の I2C を介してさまざまなデータを受信し、USART および LCD を介してデータのさまざまな側面を表示することです。ADC および LCD エラーを破棄すると、USART コードは memset() エラーとして機能します。致命的ではありませんが、そのままにしておくと後で問題が発生するだけだと思いますが、トークン化コードをどこで修正すればよいかわかりません。これが問題の根本であると仮定します。