こんにちは。NoMaYです。最近、以下のスレッドに関わったのですが、日本語が表示出来ないなんて?と、気になったので調べてみることにしました。もっとも、何から手を付けて良いのかさっぱり分からない状態からのスタートですので、ぼちぼちと、、、AppWizardでの日本語テキスト表示についてjapan.renesasrulz.com/cafe_rene/f/002-2095199602/8313/appwizardまず、ソッコーで思い浮かんでアクセスしてみる情報から。SEGGER emWinグラフィックスライブラリ (RX MCUs)www.renesas.com/jp/ja/products/microcontrollers-microprocessors/rx-32-bit-performance-efficiency-mcus/rx-partners/segger-emwin-graphics-library-rx-mcusRX Ecosystem Partner SolutionemWin - PROFESSIONAL EMBEDDED GRAPHICS LIBRARYSEGGER( 日本国内販売代理店:株式会社エンビテック)www.renesas.com/jp/ja/document/prb/segger-emwin-graphics-library-solution-brief-rx-mcusemWinGraphic Library with Graphical User InterfaceUser Guide & Reference ManualDocument: UM03001Software version: V5.50 ⇒ ドキュメントのバージョンが古過ぎますね(下記のFITモジュールのとおり既にV6.22ですね)Document revision: 0Date: June 11, 2019www.renesas.com/jp/ja/document/mat/emwin-graphic-library-gui-user-guide-reference-manualRXファミリ emWin v6.22モジュール Firmware Integration Technologywww.renesas.com/jp/ja/document/apn/rx-family-emwin-v622-module-using-firmware-integration-technology
こんにちは。NoMaYです。またvolatileと__evenaccessの話に戻りますが、先日の投稿に書いた通り、今のFITモジュールは基本的にCC-RX/GNURX/ICCRXの3つのコンパイラに対応した共通ソースかつ同一処理になっていますので、その観点からは修正ソースは以下のようになります。src/smc_gen/r_drw2d_rx/src/rx/dave_base_rx.c
#include <stdlib.h>#include <stdbool.h>#include "dave_base.h"#include "dave_base_rx.h"#include "platform.h"略/*********************************************************************** * Function Name: d1_mstp_set * Description : Write the MSTP register. * Arguments : enable * Enable or disable the register bit. * mstp_char * MSTP register offset position. * mstp_num * The register bit position. * Return Value : none **********************************************************************/static void d1_mstp_set(bool enable, int mstp_char, int mstp_num){ volatile unsigned long R_BSP_EVENACCESS_SFR *p_mstp_addr; /* The address offset from the address of the base register is cast to match the size of the register. */ p_mstp_addr = ((volatile unsigned long R_BSP_EVENACCESS_SFR *)MSTP_0_BASE) + mstp_char; if (true == enable) { *p_mstp_addr = ((*p_mstp_addr) & (~(1 << mstp_num))); } else { *p_mstp_addr = ((*p_mstp_addr) | (1 << mstp_num)); }} /* End of function d1_mstp_set() *//*********************************************************************** * Function Name: d1_registerprotectenable * Description : Enable protect bit 1 of PRCR register. * Arguments : none * Return Value : none **********************************************************************/static void d1_registerprotectenable(){ volatile unsigned short R_BSP_EVENACCESS_SFR *p_prcr_addr; /* The address of the base register is cast to match the size of the register. */ p_prcr_addr = (volatile unsigned short R_BSP_EVENACCESS_SFR *)PRCR_0_BASE; *p_prcr_addr = (((*p_prcr_addr) | PRCR_KEY) & (~PRCR_PRC1));} /* End of function d1_registerprotectenable() *//*********************************************************************** * Function Name: d1_registerprotectdisable * Description : Disable protect bit 1 of PRCR register. * Arguments : none * Return Value : none **********************************************************************/static void d1_registerprotectdisable(){ volatile unsigned short R_BSP_EVENACCESS_SFR *p_prcr_addr; /* The address of the base register is cast to match the size of the register. */ p_prcr_addr = (volatile unsigned short R_BSP_EVENACCESS_SFR *)PRCR_0_BASE; *p_prcr_addr = (((*p_prcr_addr) | PRCR_KEY) | PRCR_PRC1);} /* End of function d1_registerprotectdisable() */
なお、R_BSP_EVENACCESS_SFRは以下の通り定義されているものです。src/smc_gen/r_bsp/mcu/all/r_rx_compiler.h
/* ========== Keywords ========== */#if !(defined(__CCRX__) && defined(__cplusplus))#define R_BSP_PRAGMA(...) _Pragma(#__VA_ARGS__)#else/* CC-RX' C++ mode does not support Pragma operator and variadic macros */#define R_BSP_PRAGMA(x)#endif#if defined(__CCRX__)#define R_BSP_VOLATILE_EVENACCESS volatile __evenaccess#define R_BSP_EVENACCESS __evenaccess#define R_BSP_EVENACCESS_SFR __evenaccess#define R_BSP_VOLATILE_SFR volatile#define R_BSP_SFR /* none */#elif defined(__GNUC__)#define R_BSP_VOLATILE_EVENACCESS volatile#define R_BSP_EVENACCESS /* none */#define R_BSP_EVENACCESS_SFR /* none */#define R_BSP_VOLATILE_SFR volatile#define R_BSP_SFR /* none */#elif defined(__ICCRX__)#define R_BSP_VOLATILE_EVENACCESS volatile#define R_BSP_EVENACCESS volatile#define R_BSP_EVENACCESS_SFR __sfr#define R_BSP_VOLATILE_SFR volatile __sfr#define R_BSP_SFR __sfr#endif