757154_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

757154_ja-JP

757154_ja-JP

C++ S32DS プロジェクト付き SDK<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

こんにちは、

S32 SDK を使用して C++ S32DS プロジェクトを作成するにはどうすればよいですか?

(S32K144 EVBで試しています)

よろしくお願いします。

ニコラ

S32K1 用 S32 SDKRe: SDK with C++ S32DS project

申し訳ありませんが、新しいプロジェクトでは、一度作成したプロジェクトのコピーをまだ使用しているため、手順を正確には覚えていませんが、元の C (SDK) リンカー ファイルと C++ (非 SDK) リンカー ファイルの両方で違いを確認し、C++ リンカー ファイルのセクションを C プロジェクト (現在は C++ プロジェクトに変換されています) の古いものに追加しました。どのように見えるかについては既に経験があったので、私にとってはそれほど難しくありませんでした。

C++ LF を取得して、SDK プロジェクトから正しいメモリ セクションを追加することも可能かもしれません。

ピーターからのリンクが役に立つかもしれません。S32K358 リンカー ファイル内のメモリ サイズ/場所を調整するだけで済むと思います。

Re: SDK with C++ S32DS project

こちらの投稿をご覧ください:

https://community.nxp.com/t5/S32K/S32K358-C-プロジェクトベース-on-S32DS3-5/mp/2058809#M46635


Re: SDK with C++ S32DS project

これは 2026 年でもまだ問題となっているようで、この回避策はまだ必要です。

次のステップ - SDK なしで C++ プロジェクトを作成し、そのリンカー ファイルを SDK ありのプロジェクトのリンカー ファイルにコピーします。

ここで行ったことを段階的に詳しく教えていただけますか?たとえば、SDK (NXP S32DS C ベース プロジェクト) を使用したプロジェクトから古いリンカー ファイルを削除し、C++ プロジェクトのリンカー ファイルに置き換えましたか?

Re: SDK with C++ S32DS project

こちらの投稿をご覧ください:

Re: S32DS3.5 ベースの S32K358 C++ プロジェクト - NXP コミュニティ


Re: SDK with C++ S32DS project

こんにちは、みんな!

Novalis が提供したヒントについて、さらに詳しく教えていただけますか?SDK を使用して C プロジェクトを作成し、それを C++ に変換しようとしましたが、うまくいきませんでした。

ありがとう!

Re: SDK with C++ S32DS project<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

こんにちは、
コンストラクタでnew()を使用する必要がないようにするにはどうすればいいかがわかったかもしれない

main.cに__libc_init_array();呼び出しを追加するだけです

void __libc_init_array(void);

void main(void)
{

__libc_init_array();

main_app(); //これは上記の通り

}

そして今

cObject オブジェクト(コンストラクタパラメータ);

正常に動作しているようです。

Re: SDK with C++ S32DS project<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

こんにちは、トラヴィス。

C コードと互換性のある C++ アプリケーション プロジェクトを構築するには、Martin の手順を参照してください。私にとってはうまくいきましたが、2 つの小さな欠点がありました:

(1)生成されたコードを別のCアプリケーションプロジェクトで保持し、それをC++プロジェクトにコピーして貼り付ける必要があります。

(2) C++ プロジェクトのインクルード パスを設定するのは、最初は面倒な場合があります。もっと簡単な方法があるかも知れません。

それでは。

紫通

Re: SDK with C++ S32DS project<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

こんにちは、マーティン。

ご返信ありがとうございます!C で S32 SDK を使用して C++ プロジェクトを作成する場合も、ほぼ同じ手順を踏みました。

C++ オブジェクトをラップして C コードで使用できるようにするために、この投稿に従いました:チュートリアル: C++ ライブラリ/クラスを C プログラムに統合する方法 - Teddy Engineering GmbH

また、freeRTOS を使用している場合は、``` pvPortMalloc()``` と ```vPortFree()``` を使用して ```new``` と ```delete``` をオーバーライドすることが推奨されていると読みました:新しいオブジェクトが正しく作成されません - FreeRTOS

それでは。

紫通

Re: SDK with C++ S32DS project<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

私もこれについてとても興味があります。一部のアプリケーションでは、C++ でより簡単な基本的なオブジェクト指向の原則を使用して、よりクリーンでバグのないコードを配線および維持する方が簡単です。すべての手順を踏まずに、これをより直接的にサポートできれば、作業はかなり楽になります。

NXP ツールを使いたいのですが、これでは制限されるように感じます。

Re: SDK with C++ S32DS project<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

私の場合は、SDKで通常のCプロジェクトを作成し、ファイル/新規/C/C++プロジェクトに変換するという方法でうまくいきました。

次に、プロジェクトのプロパティ、C / C ++ビルド/設定/標準S32DS Cコンパイラ/インクルードに移動し、必要な行をコピーしてC ++コンパイラ/インクルードに貼り付けます。

次のステップ - SDK なしで C++ プロジェクトを作成し、そのリンカー ファイルを SDK ありのプロジェクトのリンカー ファイルにコピーします。

次に、関数 main_app() を extern "c" として定義した main_app.cpp を作成し、main.c の main() 関数から main_app() を呼び出しました。これで、main_app() から C++ クラスを呼び出すことができます。

今ではコンパイルでき、アプリケーションは動作しているようです。プロセッサ エキスパートなども使用できます...

私が見つけた唯一の問題は、次のようなコンストラクタを使用することです。
cObject オブジェクト (コンストラクタ パラメータ); が期待どおりに動作しません
使わなければならない
cObject *object = 新しい cObject(コンストラクタパラメータ);

Re: SDK with C++ S32DS project<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

こんにちは、ジリさん

追加の質問ですが、S32K プロジェクトで C++ コードをどうしても使用する必要がある場合、どのような提案がありますか?これまでのところ、次のような有効なアプローチが考えられました。

1. S32K DS以外のコンパイラを使用する。

2. C++ コードを C 互換の静的ライブラリ (ラッパーなどすべてを含む) にビルドし、S32K DS の C プロジェクトに追加します。

どうもありがとう。

紫通

Re: SDK with C++ S32DS project<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

こんにちは、ニコラさん

残念ながら、S32K SDK での C++ の使用は S32DS ではサポートされていません。

ジリ

Tags (1)
No ratings
Version history
Last update:
‎03-06-2026 04:28 AM
Updated by: