S32DS から S32K344 svd ファイル (S32K344.svd) を取得して使用しようとしていますが、ファイルの構成方法に何百ものバグがあるようです。
たとえば、MUXSEL レジスタ (リファレンス・マニュアルのセクション 62.8.10 から) は、SVD ファイルで次のように定義されています。
(LU_IN0 から LU_IN11) の名前フィールドはすべて "lu_in" であるため、列挙として保存するとエラーが発生します (シンボル "lu_in" の複数の定義)。さらに、列挙ではスペースが正しくカバーされません。LU_IN は 1 ~ 12 (0x1 ~ 0xC) の値を持つ必要がありますが、列挙は 0x9 までしか上がりません。
別の例として、レジスタ MDACFG0 フィールド NMDAR には、破壊される以外に本質的に何の役にも立たない列挙があります。
lu_in の例と同様に、列挙型はすべて、列挙型の名前として「NUMBER」をリストします。
レジスタ RRCR0 には、フィールド RR_INITMOD がありますが、これは列挙型 MOD_1_63 と本質的に同じ問題があり、これも可能な列挙値の一部のみをカバーします。
これを修正するために連絡できる人はいますか?これらの問題は、S32K3XX チップを使用する上で非常に大きな障害となります。
こんにちは@kscz 、
残念ながら、現時点では、S32K3 に対する公式の NXP Rust サポートはありません。
SVD を svd2rust に渡す前に、重複を削除/名前変更する小さなスクリプトを作成できます。
よろしくお願いいたします。
パベル
少し混乱しています。このチップで Rust を使いたいというのは正しいのですが、ここで説明した問題は、CMSIS であっても Rust であっても、この SVD ファイルを使用する方法に根本的な影響を与えます。
MUXSEL や RR_INITMOD などの列挙が、可能な値の一部のみをカバーしているのはバグのようです。どのフィールドの列挙でも名前フィールドが同じであるのはバグのようです。
私は NXP に Rust の明示的なサポートを求めているのではなく、SVD ファイルの修正を求めているのです。
こんにちは@kscz 、
あなたの言うことは分かります。あなたの質問をソフトウェア チームに報告しました。
ご報告ありがとうございます。
よろしくお願いいたします。
パベル
アップデートを待つのにどのくらい待てばよいか教えてください。
こんにちは@kscz 、
開発チームからまだアップデートを受け取っていません。優先度を上げました。
svd ファイルは RTD の一部なので、次の RTD リリースで修正されることを期待します。
よろしくお願いいたします。
パベル
S32K388 SVDファイルには、他にもたくさんのバグがあります。それらについても文書化する必要があるでしょうか?S32K344のように、この機種もアップデートする予定はありますか?
こんにちは@kscz 、
問題のご報告ありがとうございます。ソフトウェアチームに転送し、優先度を上げました。
よろしくお願いいたします。
パベル