問題タブ [msp430]
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.
global-variables - グローバル変数割り当て RAM アドレス
MSP430 マイクロコントローラ用の C コードを書いていて、グローバル変数を RAM の特定のアドレスにロックしたいと考えています。
その理由は、RAM アドレスの最後にスタックがあり、下位アドレスに向かって下方に成長するためです。スタックがオーバーフローすると、スタックのすぐ隣の RAM に格納されているグローバル変数が上書きされ始めます。そのため、スタックのすぐ隣に透かしを書き、オーバーフローをチェックしたいと思います。
msp430 - MSP430F5438A+CC2564BluetoothモジュールのBTstack
まず、btstackAPIの優れたドキュメントはありますか。btstackを完全に使用し、データを送受信し、範囲内のデバイスを探し、接続を開始する方法を学習しようとしています。これをMSP-430F5438A +CC2564Bluetoothモジュールに実装しています。
http://code.google.com/p/btstack/wiki/MSP430GettingStarted
このウェブサイトにはいくつかの例がありますが、私はまだ混乱しています、私のためにそれを分解する誰かが必要です。私が始めることができるテンプレートはありますか。何でも役に立ちます。デバイスに接続してパケットを交換する方法についてのステップバイステップのリファレンスがあれば、それは本当に素晴らしいことです。よろしくお願いします
c - コンパイル済みライブラリのソース パスを Eclipse の別の場所にリンクするにはどうすればよいですか?
msp430-gcc コンパイラーと関連ツールをインストールして、Eclipse を使用して自宅でオープンソースの msp430 開発を行いました。OS X Lion を実行している少し古い Macbook Pro で開発を行っており、MacPorts を使用してツールをインストールしています。CDT および GCC Cross Compiler Support プラグインを使用して Eclipse 3.7.2 を実行しています。コンパイルとリンクが正常に行われる単純な空の main() を作成しました。
ELF パーサーを使用すると、1 つのコンポーネントを除いて、ELF バイナリの内容を問題なく表示できます。crt0.S のスタートアップ コードの内容を表示しようとすると、空のファイルが表示されます。ELF の crt0.S コンポーネントをクリックすると、Eclipse ウィンドウの下部にあるファイル名バーに"/opt/local/var/macports/build/_Volumes_work_mports_dports_cross_msp430-gcc/msp430-gcc/work/gcc-4.6.3/gcc/config/msp430/crt0.S"
. これは、msp430-gcc の MacPorts インストールのおかげで理にかなっています。crt0.S
にアーカイブされます/opt/local/lib/gcc/msp430/4.6.3/libcrt0.a on my machine.
私ができるようにしたいのは、msp430-gcc ツールチェーンでビルドするときに自動的にリンクされるライブラリのソース ファイルを別の場所で探すように Eclipse に指示することです。これには、 のすべてが含まれると考えられ/opt/local/lib/gcc/msp430/4.6.3/
ます。まず、mspgcc-20120406 (私の MacPorts インストールのバージョン) のソースをダウンロードし、gcc パッチファイルを空のディレクトリ ツリーに適用しました。これにより、およびファイルgcc/config/msp430
を含むディレクトリが作成されました。crt0.S
crt0ivtbl.S
私が達成できなかっ~/Developer/mspgcc-20120406/gcc-4.6.3/config/msp430/
たのは、すでに構築されたパスの代わりにEclipse に調べるように指示することlibcrt0.a
です。ウィンドウで遊んでみましたProject Preferences->Paths and Symbols->Source Location
が、うまくいきませんでした。このウェブサイトと Google で検索したところ、最も近いのはこの質問でしたが、正解のように「匂い」がしません。
ライブラリ ソースを自分のプロジェクトに移動するような解決策は避けたいと思います。複数のプロジェクトで機能するソリューションが必要です。
すべてのヘルプは大歓迎です! 前もって感謝します。
operating-system - FreeRTOS コンテキスト切り替え中に MSP430 CRC レジスタを保存できますか?
MSP430F5418 と FreeRTOS 7 をミディアム データ モデルで使用しています。
FreeRTOS コンテキスト スイッチで MSP CRC レジスタを保存したいと考えています。porttext.s43 を次のように編集しました。
セーブ コンテキスト マクロで、15 個のレジスタをスタックにプッシュした後、CRC レジスタをプッシュします。(CRCDI は保存する MSP レジスタです)
復元コンテキスト マクロでは、15 個のレジスタをポップする直前に CRC をポップしました。
機能しているはずですが、そうではありません。プログラム制御は場所を認識しません。
誰にもアイデアはありますか?
eclipse - Eclipse CDT に MSPGCC (MSP430) インクルードを理解させるにはどうすればよいですか?
mspgcc コンパイラと連携するために Eclipse と CDT を使用しています。コンパイルは正常に行われますが、コード ビューではすべての特殊関数レジスタが未解決として強調表示されます。
コンパイラが "msp430-gcc -mmcu=msp430x2012" である C プロジェクトを作成しました。これは、/usr/msp430/include/ でインクルードを探すように設定されています。リンカを「msp430-gcc -mmcu=msp430x2012」に設定し、/usr/msp430/lib/ のライブラリを検索するように設定しました。アセンブラを「msp430-as」に設定しました。私は eclipse にエルフを作成していることを伝え、自動インクルード検出を無効にして、Linux ボックスで i686 ライブラリを見つけられないようにしました (愚かな eclipse!)。
コードは次のとおりです。
P1OUT や WDTCTL などの mspgcc インクルードで定義されているすべての変数は、問題ボックスに「未解決」として表示されますが、正常にビルドされることを覚えておいてください。チップのヘッダー ファイルを明示的にインクルードすることも試みました (通常、msp430-gcc は、msp430.h と -mmcu オプションを介してこれを行います)。
timer - MSP430G2553Timer_Aを使用した比較モードでのサンプリング
友達、私は入力をサンプリングする必要があります。タイマー入力を使用して、61マイクロ秒のスロットで14マイクロ秒ごとに入力をサンプリングします(プロジェクト要件)。
私はバイトを作るためにそれを8回しなければなりません。UARTに似ていますが、マスタープロジェクトのOneWireBus通信に使用しています。
私は以下のようにコードを書きました。これは期待される結果をもたらし、デバッガーで一度に1つの命令を実行してテストしました。
以下はコードです。
しかし、問題は、関数を呼び出すと、どういうわけかスタックしているように見えることです。デバッガーで一度に1命令ずつ実行すると、すべての実行が完了しましたが、ISRからきれいに出てこないのではないかと思います。私の質問を明確にするために、これは私がテストした方法です:
ISRで強調表示された式(%3%)にトグルブレークポイントを設定すると、ISRに入るとトグルブレークに8回ヒットし、正しい値をキャプチャして、読み取り関数からきちんと出てきます(また
上記のループから)
、メインでwhile(1)式に到達します。
しかし、代わりに、強調表示された式(%1%)にトグルポイントを置くと、スタックしているように見えます。または、トグルブレークポイントをメインの(%2%)に直接配置すると、読み取り機能が完了し、値をワード変数に格納してトグルブレークポイントに到達しますが、コードがスタックしているように見え、トグルブレイク。
何が悪いのかわかりませんが、誰か助けてもらえますか?
usb - JTAGなしでMSP430にコードを埋め込む
私はこのテーマの初心者であり、MSP430にコードを埋め込む方法を学びたいと思っています。ブレークアウトボードMSP430-H5438があり、JTAGインターフェイスを使用していません。IARで生成されたコード(16進ファイル)の準備ができています(ADC、SPIインターフェイス)が、ICにロードできませんでした。USB-UARTブリッジを使用して、デバイスをPC、ソフトウェア用のBSLスクリプターに接続していますが、結果がありません。JTAGインターフェイスなしでMSP430をPCに接続するのは間違った方法ですか?私はここで輪になって走っていますか?前もって感謝します。
synchronization - 2つのmcu間の通信にspiプロトコルを使用できますか?
MCUおよびデバイスでのSPIプロトコルの使用。2つのmcuの通信で使用できるかどうか知りたいです。s3c2440&msp430のように。大丈夫なら、私が気をつけるべきこと(彼らは25MHzと> 100MHzの異なるクロックを持っています)それが使用できない場合は、何らかの理由を教えてくださいありがとう
sd-card - SPIインターフェースを使用したMSP430F5438SDカード
MSP430F5438のSPIインターフェースを使用してSDカードを接続したい。ハードウェア部分は私のデザインでは正しいですが、SDカードにデータを送信できませんでした。私が使用しているソースコードは、MSP430用のセキュアデジタルカードインターフェイスからのものです。
デバッグのために、SDカードにデータを送信するにはどうすればよいですか?データはADC12MEMレジスタから受信する必要があり、SDカードに書き込む必要があります。上記のこのソースコードから、デバッグ時にユーザー入力をSDカードに送信できなかった場合、プロセスはありません。
linker - IAREmbeddedWorkbenchでのリンカー構成の自動化
フラッシュの整合性についてcrc16チェックを実行する必要があるファームウェアプロジェクトに取り組んでいます。
crcは、IAR Xlinkリンカーを使用して計算され、フラッシュの最後に保持されます。この場合も、crcは実行時にコードから計算され、フラッシュに保存されている値と比較されて整合性がチェックされます。ただし、crcはフラッシュメモリのコードセグメントでしか計算できません。コードに変更を加えるたびに、サイズが変わる可能性があります。現在手動で行っているこのプロセスを自動化できますか?
.xclリンカーファイルから:
ここで、2番目のコードセグメントの終了値を変更する必要があります。これは現在0x20A13です。この値は、.mapファイルから取得します。つまり、コードがフラッシュ内に存在するメモリ範囲の量を取得します。これは私が行う最初の変更です。
ここで私はコードから2番目の変更を加える必要があります:
このプロセスの自動化にご協力ください!!