問題タブ [mspgcc]
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 - mspgcc での予期しない結果
C で簡単なコードを書きましたが、それを mspgcc に移植すると、正しい値が得られません。これは私のコードの一部です:
私が期待する結果はxk1=443118
とyk1=49908
ですが、mspgcc では が得られますxk1=yk1=49902
。タイプの選択のどこに問題があるのか わかりませんか?
編集
これは私の完全なコードです
msp430 - Mspgcc で割り込みハンドラ (ISR) を宣言する方法は?
mspgcc で割り込みハンドラを宣言するための推奨される方法は何ですか?
c - MSP430-GCC で小さい整数に対して (unsigned) char よりも int が好まれる理由
msgpcc (MSP430 マイクロコントローラ用の GCC)マニュアルの著者は次のように書いています。
関数内で小さな整数が必要な場合は、char または unsigned char の代わりに int を使用します。生成されるコードはより効率的になり、ほとんどの場合、ストレージは実際には無駄になりません。
なぜint
より効率的なのですか?
アップデート。そして、なぜ(u)int_fast8_t
mspgcc で(unsigned) char
ではなくに定義されているのでしょうか(unsigned) int
。私が理解(u)int_fast*_t
しているように、十分なサイズの最も効率的な型に定義する必要があります。
embedded - msp430 UART およびタイマー割り込み
私は msp430 ファミリ MCU (実際にはランチパッド ボード上の msp430g2553) を持っています。uart ドライバーを作成しましたが、動作します。しかし、タイマー ドライバーを追加した後、いくつかの問題が見つかりました。uart は、最初のタイマー割り込み後に動作を停止します。タイマー割り込みハンドラーでいくつかのフラグを復元する必要がありますか?
c - TI の Red Hat mspgcc-430 コンパイル エラー
それで、Linux SO の msp430fx 用に C で書かれたコードをコンパイルしようとしています。最近 mspgcc の新しいバージョンを再コンパイルしました。以前に使用されたのは 4.3 で、拡張モード (20 ビット -mlarge) との互換性/安定性がなかったためです。
このサイトをフォローしました。
インストール後、私は単純な(メイン、いくつかのランダム関数を呼び出す)を実行し、それはうまくコンパイルされましたが、今、この大きなプロジェクトをコンパイルすると、最後にこのエラーが発生します:
msp430-gcc -o build/MoteISTv5_mspgcc/projects/common/03oos_macpong_prog -mmcu=msp430f5438a -Wall -Wno-main -mlarge -O0 -g -ggdb build/MoteISTv5_mspgcc/projects/common/03oos_macpong/03oos_macpong.o -Lbuild/MoteISTv5_mspgcc/ bsp/boards -Lbuild/MoteISTv5_mspgcc/kernel/openos -Lbuild/MoteISTv5_mspgcc/drivers -Lbuild/MoteISTv5_mspgcc/openstack -Lbuild/MoteISTv5_mspgcc/openapps -lopenstack -lopenapps -lkernel -ldrivers -lbsp /opt/msp430-toolchain/lib/gcc/ msp430-none-elf/4.9.1/../../../../msp430-none-elf/bin/ld: リンカー スクリプト ファイルを開けません msp430f5438a.ld: そのようなファイルまたはディレクトリはありません collect2: エラー: ld は 1 つの終了ステータス scons を返しました: *** [build/MoteISTv5_mspgcc/projects/common/03oos_macpong_prog] エラー 1 scons: エラーのためにビルドが終了しました。
私はコンパイラについてあまり理解していないので、この問題を解決する助けが必要です。誰でも助けることができますか?
事前にサンクス、
ディオゴ・ゲラ
clang - LLVM/Clang+GCC で MSP430 の割り込みサービス ルーチンを定義する方法は?
GCC でコンパイルする場合、ISR は、TI が配布する GCC ツールチェーンに同梱されているヘッダーでinterrupt
定義されたベクトル番号を持つ属性でマークすることによって定義されます。msp430fr*.h
ただし、LLVM/ClangでコンパイルしてGCCでアセンブル・リンクすると
上記はコンパイル時エラーを引き起こします:
gcc - GCC を使用して MSP430 でフラッシュ メモリの場所を特定の値に設定する
msp GCC ツールチェーンを使用して、mcu のプログラミング中にフラッシュ プログラマによってプログラムされるフラッシュの数バイトを特定の値に設定するにはどうすればよいですか? たとえば、TI C/C++ コンパイラ ツールチェーンにはアセンブラーが含まれており、アセンブリの次の行によってメモリ位置が目的の値に設定されます。
msp GCC ツールチェーンを使用して同様のことを行う方法はありますか?