こんにちは。NoMaYです。RXスマートコンフィグレータ(V2.0.0)でブロック転送を行うDMAソースを生成させようとして気付いたのですが、以下のGUIの画面コピーの通り設定した「転送回数」と「ブロック/リピートサイズ」の値がソースでは逆になっていると思います。プロジェクトのファイル一式issue_20190318_1.zipRXスマートコンフィグレータのGUIの画面生成されたソースConfig_DMAC0.c (抜粋)
void R_Config_DMAC0_Create(void){ /* Cancel DMAC/DTC module stop state in LPC */ MSTP(DMAC) = 0U; /* Disable DMAC interrupts */ IEN(DMAC,DMAC0I) = 0U; /* Disable DMAC0 transfer */ DMAC0.DMCNT.BIT.DTE = 0U;略 /* Set DMAC0 block size */ DMAC0.DMCRA = _00010001_DMAC0_DMCRA_COUNT; /* Set DMAC0 block transfer count */ DMAC0.DMCRB = _0003_DMAC0_DMCRB_BLK_RPT_COUNT;略 /* Enable DMAC activation */ DMAC.DMAST.BIT.DMST = 1U; R_Config_DMAC0_Create_UserInit();}
Config_DMAC0.h (抜粋)
#define _00000000_DMAC0_SRC_ADDR (0x00000000UL) /* Source address */#define _00000000_DMAC0_DST_ADDR (0x00000000UL) /* Destination address */#define _00010001_DMAC0_DMCRA_COUNT (0x00010001UL) /* Repeat or Block size */#define _0003_DMAC0_DMCRB_BLK_RPT_COUNT (0x0003U) /* Block transfer count */#define _0000_DMAC0_SRC_EXT_RPT_AREA (0x0000U) /* Source address extended repeat area */#define _0000_DMAC0_DST_EXT_RPT_AREA (0x0000U) /* Destination address extended repeat area */#define _00000000_DMAC0_OFFSET_VALUE (0x00000000UL) /* Offset register value */
こんにちは。NoMaYです。今度は、RXスマートコンフィグレータ(V2.0.0)のDMA設定のGUI上だけのことですが、以下のGUIの画面コピーのように複数のDMAチャンネルで起動要因にソフトウェア起動を選択すると赤のバッテンが表示されてしまいます。ですが、以下のハードウェアマニュアルの画面コピーの通り、ソフトウェア起動レジスタは各チャンネルに存在して排他的でも何でもありませんので、この挙動はバグだと思います。プロジェクトのファイル一式issue_20190318_2.zipRXスマートコンフィグレータのGUIの画面2つのDMAチャンネルで起動要因にソフトウェア起動を選択すると赤のバッテンが付く1つのDMAチャンネルだけで起動要因にソフトウェア起動を選択しているなら付かないRX65Nグループ、RX651グループ ユーザーズマニュアル ハードウェア編からの抜粋www.renesas.com/jp/ja/doc/products/mpumcu/doc/rx_family/r01uh0590jj0210-rx651.pdfソフトウェア起動レジスタは各チャンネルに存在して排他的でもない[補足]赤のバッテンが付いてもコードを生成することは出来ます(警告メッセージは出ます)
シェルティさん、こんにちは。NoMaYです。ご連絡有難う御座います。実は、ここ何日かの間に、GNURX向けに生成されたコードで遭遇したことが幾つかありますので、それらに関して、近日中に投稿しようと思います。その時には、また、ご検討をお願いします。
こんにちは。NoMaYです。バグでは無いのですが、随分と昔に、別スレッドで以下のようなやり取りがあったかと記憶しているのですが、まだRXスマートコンフィグレータには実装されていないですよね、、、Q) 生成されるソースのコメント部分に生成日が入っているがソース管理ツールで差分と認識されてしまい煩わしいA) 前向きに検討します神経質な人は以下のような手順を取っているかもしれません、、、(1) コミット前に、ビルドされたMOTファイルのバックアップを取る(2) リポジトリ上の最終版と手元のコミット前版を比較して、日付のみが差分のソースは、変更を捨てる(3) リビルドした後、バックアップしたMOTファイルとリビルドされたMOTファイルを比較する(4) MOTファイルに差分が無ければ、コミット作業を続ける
鈴木さん、こんにちは。NoMaYです。> 2020/7/20予定のツールアップデートで生成日を出力しないオプションが選べるようになりましたリプライありがとうございました。どうもジャストなタイミングで私は投稿したみたいですね。(^o^)b
鈴木さん、こんにちは。NoMaYです。> 2020/7/20予定のツールアップデートで生成日を出力しないオプションが選べるようになりました手元のプロジェクトでやってみたのですが、まだ以下のソースで出ていましたよ、、、src/smc_gen/r_pincfg/r_pinset.hsrc/smc_gen/r_pincfg/r_sci_rx_pinset.csrc/smc_gen/r_pincfg/r_sci_rx_pinset.h例)
/******************************************************************************* File Name : r_pinset.h.h* Version : 1.0.1* Description : Declares all pin code headers into a single file* Creation Date: 2020-07-21******************************************************************************/#ifndef R_PINSET_H#define R_PINSET_H/******************************************************************************Includes******************************************************************************/#include "r_sci_rx_pinset.h"#endif /* R_PINSET_H */
同じフォルダにあるソースでも、以下のソースでは出ないようになっていました。src/smc_gen/r_pincfg/Pin.csrc/smc_gen/r_pincfg/Pin.hたぶん、CG(従)とFIT(主)な感じの配分で両領域に跨るソースで対処漏れがある、のだろうな、と思うのです、、、
こんにちは。NoMaYです。以下はバグではなくて、私が気付いた、RXスマートコンフィグレータのV2.5.0とV2.6.0の生成コードの相違に関する、他のユーザさんへのレポート(というより単に相違点の提示に過ぎないですが)です。src/smc_gen/general/r_smc_cgc.hV2.5.0 (CC-RX/GNURX/ICCRX)
/******************************************************************************Global functions******************************************************************************/void R_CGC_Create(void);void R_CGC_Create_UserInit();
V2.6.0 (CC-RX/GNURX/ICCRX)
/******************************************************************************Global functions******************************************************************************/void R_CGC_Create(void);void R_CGC_Create_UserInit(void);
src/smc_gen/general/r_smc_interrupt.cV2.5.0 (CC-RX/GNURX/ICCRX)
/******************************************************************************Includes******************************************************************************/#include "r_smc_interrupt.h"#include "platform.h"/******************************************************************************略******************************************************************************/void R_Interrupt_Create(void){ /* No fast interrupt and group settings have been configured in the Interrupts tab. */}
/******************************************************************************Pragma directive******************************************************************************//* Start user code for pragma. Do not edit comment generated here *//* End user code. Do not edit comment generated here *//******************************************************************************Includes******************************************************************************/#include "r_cg_macrodriver.h"#include "r_smc_interrupt.h"/* Start user code for include. Do not edit comment generated here *//* End user code. Do not edit comment generated here */#include "r_cg_userdefine.h"/******************************************************************************Global variables and functions******************************************************************************//* Start user code for global. Do not edit comment generated here *//* End user code. Do not edit comment generated here *//******************************************************************************略******************************************************************************/void R_Interrupt_Create(void){ /* No fast interrupt and group settings have been configured in the Interrupts tab. */}/* Start user code for adding. Do not edit comment generated here *//* End user code. Do not edit comment generated here */
src/smc_gen/general/r_smc_interrupt.h (SCFG側の設定は変えていません。リリースノートに関連しそうな記載がありました。)V2.5.0 (CC-RX/GNURX/ICCRX)
#define ICU_ICU_SWINT2_PRIORITY (_0F_ICU_PRIORITY_LEVEL15)#define ICU_ICU_SWINT_PRIORITY (_0F_ICU_PRIORITY_LEVEL15)
#define ICU_ICU_SWINT2_PRIORITY (_01_ICU_PRIORITY_LEVEL1)#define ICU_ICU_SWINT_PRIORITY (_01_ICU_PRIORITY_LEVEL1)
[関連リンク]ツールニュース【リビジョンアップ】 e² studio Smart Configuratorプラグイン V2.6.0, RXスマート・コンフィグレータ V2.6.0www.renesas.com/jp/ja/doc/toolnews/jpn/2020/r20ts0596jj0100-sctn.pdfリリースノートSmart Configurator for RX V2.6.0 リリースノートR20UT4487JS0260 Rev.2.60 2020.07.20www.renesas.com/jp/ja/doc/products/tool/doc/016/r20ut4487js0260-smartconfigurator.pdf製品ページスマート・コンフィグレータwww.renesas.com/jp/ja/products/software-tools/tools/solution-toolkit/smart-configurator.html[追記]実は以前から何となく思い始めていたのですが、RXスマートコンフィグレータ使用時でも、デバイス変更が(自分が思い込んでいたよりもずっと)簡単に出来るようになっているような気がします、、、Smart Configurator for RX V2.6.0 リリースノート「2.3.4 デバイス変更後の変更レポートに、端子および割り込み情報を追加デバイス変更後の変更レポートに端子および割り込みの変更情報が追加されました。」「2.3.8 ボードページのデバイス選択が、e2 studio のデバイス変更に移行デバイス変更は、スマートコンフィグレータのボードページから、e2 studio のデバイス変更ウィザードに移行されました。ボードページの“…”ボタンを押下すると、e2 studio のデバイス変更ウィザードが自動的に起動されます。」
こんにちは。NoMaYです。バグでは無いですけど、RXスマートコンフィグレータのV2.7.0(e2 studio 2020-10)で.scfgファイルのフォーマットが一部変更されていますね。ですので、これらでセーブした.scfgファイルは、V2.6.0(e2 studio 2020-07/v7.8.0)およびそれ以前のものでは正しく読み込めないですね。例えばHOCOを選択していた筈でもメインクロックが選択されてしまったりしますね。いつかはそのようなことが起きるようになるものではありますが、意外に早くそうなったねぇ、というところでしょうか、、、