[bsp][renesas] Add ra8p1-titan-board BSP.
@@ -248,7 +248,7 @@
|
||||
"nxp/mcx/mcxc/frdm-mcxc444",
|
||||
"nxp/mcx/mcxa/frdm-mcxa153",
|
||||
"nxp/mcx/mcxa/frdm-mcxa156",
|
||||
"nxp/mcx/mcxa/frdm-mcxa346",
|
||||
"nxp/mcx/mcxa/frdm-mcxa346",
|
||||
"nxp/mcx/mcxe/frdm-mcxe247",
|
||||
"renesas/ebf_qi_min_6m5",
|
||||
"renesas/ra6m4-cpk",
|
||||
@@ -258,12 +258,13 @@
|
||||
"renesas/ra6e2-ek",
|
||||
"renesas/ra6e2-fpb",
|
||||
"renesas/ra4e2-eco",
|
||||
"renesas/ra4m1-ek",
|
||||
"renesas/ra4m1-ek",
|
||||
"renesas/ra4m2-eco",
|
||||
"renesas/ra2l1-cpk",
|
||||
"renesas/ra8m1-ek",
|
||||
"renesas/ra8d1-ek",
|
||||
"renesas/ra8d1-vision-board",
|
||||
"renesas/ra8p1-titan-board",
|
||||
"renesas/rzt2m_rsk",
|
||||
"renesas/rzn2l_rsk",
|
||||
"renesas/rzn2l_etherkit",
|
||||
|
||||
@@ -33,28 +33,29 @@ This document is based on the RT-Thread mainline repository and categorizes the
|
||||
|
||||
#### 🟢 Renesas
|
||||
|
||||
| BSP Name | GPIO | UART | ADC | CAN | CANFD | DAC | Ethernet | HWTimer | I2C | PWM | RTC | SPI | Soft SPI | Flash | SDHI | SCI | SDRAM | LCD | Other |
|
||||
|----------|------|------|-----|-----|-------|-----|----------|---------|-----|-----|-----|-----|----------|-------|------|-----|-------|-----|-------|
|
||||
| [ebf_qi_min_6m5](renesas/ebf_qi_min_6m5) | ✅ | ✅ | ✅ | - | - | ✅ | - | - | ✅ | ✅ | - | ✅ | - | - | - | ✅ | - | - | - |
|
||||
| [ra2a1-ek](renesas/ra2a1-ek) | ✅ | ✅ | ✅ | - | - | ✅ | - | - | ✅ | ✅ | - | ✅ | - | - | - | ✅ | - | - | - |
|
||||
| [ra2e2-ek](renesas/ra2e2-ek) | ✅ | ✅ | ✅ | - | - | - | - | - | ✅ | ✅ | - | ✅ | - | - | - | - | - | - | - |
|
||||
| [ra2l1-cpk](renesas/ra2l1-cpk) | ✅ | ✅ | ✅ | ✅ | - | ✅ | - | - | ✅ | ✅ | - | ✅ | - | - | - | ✅ | - | - | ✅ |
|
||||
| [ra4e2-eco](renesas/ra4e2-eco) | ✅ | ✅ | - | - | - | - | - | - | ✅ | - | - | ✅ | - | - | - | - | - | - | - |
|
||||
| [ra4e2-ek](renesas/ra4e2-ek) | - | ✅ | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
|
||||
| [ra4m1-ek](renesas/ra4m1-ek) | ✅ | ✅ | ✅ | ✅ | - | ✅ | - | ✅ | ✅ | ✅ | - | ✅ | - | - | - | - | - | - | - |
|
||||
| [ra4m2-eco](renesas/ra4m2-eco) | ✅ | ✅ | - | - | - | - | - | - | - | - | - | ✅ | - | - | - | ✅ | - | - | - |
|
||||
| [ra6e2-ek](renesas/ra6e2-ek) | ✅ | ✅ | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
|
||||
| [ra6e2-fpb](renesas/ra6e2-fpb) | ✅ | ✅ | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
|
||||
| [ra6m3-ek](renesas/ra6m3-ek) | ✅ | ✅ | - | - | - | - | ✅ | ✅ | ✅ | ✅ | - | ✅ | - | - | - | ✅ | - | ✅ | - |
|
||||
| [ra6m3-hmi-board](renesas/ra6m3-hmi-board) | ✅ | ✅ | ✅ | ✅ | - | ✅ | ✅ | - | ✅ | ✅ | - | ✅ | - | - | ✅ | ✅ | - | ✅ | ✅ |
|
||||
| [ra6m4-cpk](renesas/ra6m4-cpk) | ✅ | ✅ | ✅ | ✅ | - | ✅ | - | - | ✅ | ✅ | - | ✅ | - | - | ✅ | ✅ | - | - | ✅ |
|
||||
| [ra6m4-iot](renesas/ra6m4-iot) | ✅ | ✅ | ✅ | ✅ | - | ✅ | - | - | ✅ | ✅ | - | ✅ | - | - | ✅ | ✅ | - | - | - |
|
||||
| [ra8d1-ek](renesas/ra8d1-ek) | ✅ | ✅ | ✅ | ✅ | - | ✅ | ✅ | - | ✅ | ✅ | - | ✅ | - | - | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| [ra8d1-vision-board](renesas/ra8d1-vision-board) | ✅ | ✅ | ✅ | ✅ | - | ✅ | - | - | ✅ | ✅ | - | ✅ | - | - | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| [ra8m1-ek](renesas/ra8m1-ek) | ✅ | ✅ | ✅ | - | - | ✅ | - | - | ✅ | ✅ | - | ✅ | - | - | - | ✅ | - | - | ✅ |
|
||||
| [rzn2l_etherkit](renesas/rzn2l_etherkit) | ✅ | ✅ | ✅ | - | ✅ | - | ✅ | ✅ | ✅ | ✅ | - | ✅ | - | - | - | ✅ | - | - | ✅ |
|
||||
| [rzn2l_rsk](renesas/rzn2l_rsk) | ✅ | ✅ | ✅ | - | ✅ | - | ✅ | ✅ | ✅ | - | - | ✅ | - | - | - | ✅ | - | - | ✅ |
|
||||
| [rzt2m_rsk](renesas/rzt2m_rsk) | ✅ | ✅ | ✅ | - | - | - | - | ✅ | ✅ | - | - | ✅ | - | - | - | ✅ | - | - | ✅ |
|
||||
| BSP Name | GPIO | UART | ADC | CAN | CANFD | DAC | Ethernet | HWTimer | I2C | PWM | RTC | SPI | Soft SPI | Flash | SDHI | SCI | SDRAM | LCD | **RS485** | Other |
|
||||
|----------|------|------|-----|-----|-------|-----|----------|---------|-----|-----|-----|-----|----------|-------|------|-----|-------|-----|-------|-------|
|
||||
| [ebf_qi_min_6m5](renesas/ebf_qi_min_6m5) | ✅ | ✅ | ✅ | - | - | ✅ | - | - | ✅ | ✅ | - | ✅ | - | - | - | ✅ | - | - | - | - |
|
||||
| [ra2a1-ek](renesas/ra2a1-ek) | ✅ | ✅ | ✅ | - | - | ✅ | - | - | ✅ | ✅ | - | ✅ | - | - | - | ✅ | - | - | - | - |
|
||||
| [ra2e2-ek](renesas/ra2e2-ek) | ✅ | ✅ | ✅ | - | - | - | - | - | ✅ | ✅ | - | ✅ | - | - | - | - | - | - | - | - |
|
||||
| [ra2l1-cpk](renesas/ra2l1-cpk) | ✅ | ✅ | ✅ | ✅ | - | ✅ | - | - | ✅ | ✅ | - | ✅ | - | - | - | ✅ | - | - | - | ✅ |
|
||||
| [ra4e2-eco](renesas/ra4e2-eco) | ✅ | ✅ | - | - | - | - | - | - | ✅ | - | - | ✅ | - | - | - | - | - | - | - | - |
|
||||
| [ra4e2-ek](renesas/ra4e2-ek) | - | ✅ | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
|
||||
| [ra4m1-ek](renesas/ra4m1-ek) | ✅ | ✅ | ✅ | ✅ | - | ✅ | - | ✅ | ✅ | ✅ | - | ✅ | - | - | - | - | - | - | - | - |
|
||||
| [ra4m2-eco](renesas/ra4m2-eco) | ✅ | ✅ | - | - | - | - | - | - | - | - | - | ✅ | - | - | - | ✅ | - | - | - | - |
|
||||
| [ra6e2-ek](renesas/ra6e2-ek) | ✅ | ✅ | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
|
||||
| [ra6e2-fpb](renesas/ra6e2-fpb) | ✅ | ✅ | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
|
||||
| [ra6m3-ek](renesas/ra6m3-ek) | ✅ | ✅ | - | - | - | - | ✅ | ✅ | ✅ | ✅ | - | ✅ | - | - | - | ✅ | - | ✅ | - | - |
|
||||
| [ra6m3-hmi-board](renesas/ra6m3-hmi-board) | ✅ | ✅ | ✅ | ✅ | - | ✅ | ✅ | - | ✅ | ✅ | - | ✅ | - | - | ✅ | ✅ | - | ✅ | - | ✅ |
|
||||
| [ra6m4-cpk](renesas/ra6m4-cpk) | ✅ | ✅ | ✅ | ✅ | - | ✅ | - | - | ✅ | ✅ | - | ✅ | - | - | ✅ | ✅ | - | - | - | ✅ |
|
||||
| [ra6m4-iot](renesas/ra6m4-iot) | ✅ | ✅ | ✅ | ✅ | - | ✅ | - | - | ✅ | ✅ | - | ✅ | - | - | ✅ | ✅ | - | - | - | - |
|
||||
| [ra8d1-ek](renesas/ra8d1-ek) | ✅ | ✅ | ✅ | ✅ | - | ✅ | ✅ | - | ✅ | ✅ | - | ✅ | - | - | ✅ | ✅ | ✅ | ✅ | - | ✅ |
|
||||
| [ra8d1-vision-board](renesas/ra8d1-vision-board) | ✅ | ✅ | ✅ | ✅ | - | ✅ | - | - | ✅ | ✅ | - | ✅ | - | - | ✅ | ✅ | ✅ | ✅ | - | ✅ |
|
||||
| [ra8p1-titan-board](renesas/ra8p1-titan-board) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | - | ✅ | ✅ | ✅ | - | ✅ | ✅ | ✅ |
|
||||
| [ra8m1-ek](renesas/ra8m1-ek) | ✅ | ✅ | ✅ | - | - | ✅ | - | - | ✅ | ✅ | - | ✅ | - | - | - | ✅ | - | - | - | ✅ |
|
||||
| [rzn2l_etherkit](renesas/rzn2l_etherkit) | ✅ | ✅ | ✅ | - | ✅ | - | ✅ | ✅ | ✅ | ✅ | - | ✅ | - | - | - | ✅ | - | - | - | ✅ |
|
||||
| [rzn2l_rsk](renesas/rzn2l_rsk) | ✅ | ✅ | ✅ | - | ✅ | - | ✅ | ✅ | ✅ | - | - | ✅ | - | - | - | ✅ | - | - | - | ✅ |
|
||||
| [rzt2m_rsk](renesas/rzt2m_rsk) | ✅ | ✅ | ✅ | - | - | - | - | ✅ | ✅ | - | - | ✅ | - | - | - | ✅ | - | - | - | ✅ |
|
||||
|
||||
#### 🟢 STM32
|
||||
|
||||
|
||||
@@ -19,7 +19,8 @@ RA 系列 BSP 目前支持情况如下表所示:
|
||||
| [ra8m1-ek](ra8m1-ek) | Renesas 官方 EK-RA8M1 开发板 |
|
||||
| [ra8d1-ek](ra8d1-ek) | Renesas 官方 EK-RA8D1 开发板 |
|
||||
| [ra8d1-vision-board](ra8d1-vision-board) | Renesas 联合 RT-Thread RA8D1-Vision-Board 开发板 |
|
||||
| **RZ 系列** | |
|
||||
| [ra8p1-titan-board](ra8p1-titan-board) | Renesas 联合 RT-Thread RA8P1-Titan-Board 开发板 |
|
||||
| **RZ 系列** | |
|
||||
| [rzt2m_rsk](rzt2m_rsk) | Renesas 官方 RSK-RZT2M 开发板 |
|
||||
| [rzn2l_rsk](rzn2l_rsk) | Renesas 官方 RSK-RZN2L 开发板 |
|
||||
|
||||
|
||||
@@ -170,6 +170,12 @@ rt_weak void rt_hw_board_init()
|
||||
rt_hw_interrupt_init();
|
||||
#endif
|
||||
|
||||
#if defined(BSP_CFG_CPU_CORE) && (BSP_CFG_CPU_CORE == CPU0) && defined(SOC_SERIES_R7KA8P1) && defined(BSP_START_SECONDARY_CORE)
|
||||
#if !defined(BSP_USING_RPMSG_LITE_MCMGR)
|
||||
R_BSP_SecondaryCoreStart();
|
||||
#endif
|
||||
#endif
|
||||
|
||||
rt_hw_systick_init();
|
||||
|
||||
/* Heap initialization */
|
||||
|
||||
@@ -61,6 +61,12 @@ config SOC_SERIES_R7FA8M85
|
||||
select SOC_FAMILY_RENESAS_RA
|
||||
default n
|
||||
|
||||
config SOC_SERIES_R7KA8P1
|
||||
bool
|
||||
select ARCH_ARM_CORTEX_M85
|
||||
select SOC_FAMILY_RENESAS_RA
|
||||
default n
|
||||
|
||||
config SOC_SERIES_R9A07G0
|
||||
bool
|
||||
select ARCH_ARM_CORTEX_R52
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# ------ devices CI ------
|
||||
devices.adc:
|
||||
kconfig:
|
||||
- CONFIG_RT_USING_ADC=y
|
||||
- CONFIG_BSP_USING_ADC0=y
|
||||
devices.spi:
|
||||
kconfig:
|
||||
- CONFIG_BSP_USING_SPI=y
|
||||
- CONFIG_BSP_USING_SPI0=y
|
||||
devices.i2c:
|
||||
kconfig:
|
||||
- CONFIG_BSP_USING_HW_I2C=y
|
||||
- CONFIG_BSP_USING_HW_I2C2=y
|
||||
devices.sdhi:
|
||||
kconfig:
|
||||
- CONFIG_BSP_USING_SDHI=y
|
||||
- CONFIG_BSP_USING_SDHI0=y
|
||||
- CONFIG_SDHI_USING_1_BIT=y
|
||||
devices.timer:
|
||||
kconfig:
|
||||
- CONFIG_BSP_USING_TIM=y
|
||||
- CONFIG_BSP_USING_TIM0=y
|
||||
devices.pwm:
|
||||
kconfig:
|
||||
- CONFIG_BSP_USING_PWM=y
|
||||
- CONFIG_BSP_USING_PWM12=y
|
||||
devices.can:
|
||||
kconfig:
|
||||
- CONFIG_BSP_USING_CANFD=y
|
||||
- CONFIG_BSP_USING_CAN_RA=y
|
||||
- CONFIG_BSP_USING_CAN0=y
|
||||
devices.hyperram:
|
||||
kconfig:
|
||||
- CONFIG_BSP_USING_OSPI_RAM=y
|
||||
devices.ethernet:
|
||||
kconfig:
|
||||
- CONFIG_BSP_USING_ETH=y
|
||||
devices.rtc:
|
||||
kconfig:
|
||||
- CONFIG_BSP_USING_ONCHIP_RTC=y
|
||||
@@ -0,0 +1,26 @@
|
||||
/RTE
|
||||
/Listings
|
||||
/Objects
|
||||
/Debug
|
||||
/build
|
||||
/makefile.targets
|
||||
/rtconfig.pyc
|
||||
/libraries
|
||||
/rt-thread
|
||||
/project.custom_argvars
|
||||
/.vscode
|
||||
/__pycache
|
||||
/settings
|
||||
/rtconfig_preinc.h
|
||||
/bsp_linker_info.h
|
||||
/fsp_gen.ld
|
||||
/memory_regions.ld
|
||||
/cmake
|
||||
/.api_xml
|
||||
/.clangd
|
||||
/.secure_azone
|
||||
/.secure_rzone
|
||||
/.secure_xml
|
||||
/ra_cfg.txt
|
||||
/packages/pkgs.json
|
||||
/packages/pkgs_error.json
|
||||
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>project</name>
|
||||
<comment />
|
||||
<projects />
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||
<triggers>clean,full,incremental,</triggers>
|
||||
<arguments />
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
||||
<triggers>full,incremental,</triggers>
|
||||
<arguments />
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
||||
<nature>org.rt-thread.studio.rttnature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||
</natures>
|
||||
<linkedResources />
|
||||
</projectDescription>
|
||||
@@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
toolchain.path.1287942917=${toolchain_install_path}/ARM/GNU_Tools_for_ARM_Embedded_Processors/13.3/bin
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<project>
|
||||
<configuration id="ilg.gnuarmeclipse.managedbuild.cross.config.elf.debug.553091094" name="Debug">
|
||||
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
|
||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="1925467032309591728" id="ilg.gnuarmeclipse.managedbuild.cross.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT ARM Cross GCC Built-in Compiler Settings " parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
</extension>
|
||||
</configuration>
|
||||
</project>
|
||||
@@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
rtt-studio.preferences.renesas.configurator.root=C\:\\Renesas\\RA\\sc_v2025-04.1_fsp_v6.0.0
|
||||
@@ -0,0 +1,3 @@
|
||||
content-types/enabled=true
|
||||
content-types/org.eclipse.cdt.core.asmSource/file-extensions=s
|
||||
eclipse.preferences.version=1
|
||||
@@ -0,0 +1,20 @@
|
||||
#RT-Thread Studio Project Configuration
|
||||
#Thu Nov 27 11:45:38 CST 2025
|
||||
project_type=rt-thread
|
||||
chip_name=R7KA8P1KF
|
||||
os_branch=full
|
||||
example_name=
|
||||
os_version=latest
|
||||
selected_rtt_version=latest
|
||||
cfg_version=v3.0
|
||||
board_base_nano_proj=False
|
||||
is_use_scons_build=True
|
||||
output_project_path=C\:\\Users\\RTT\\Desktop\\PR\\sdk-bsp-ra8p1-titan-board\\project
|
||||
project_base_bsp=true
|
||||
hardware_adapter=DAP-LINK
|
||||
project_name=Titan_template
|
||||
is_base_example_project=False
|
||||
board_name=ra8p1-titan-board
|
||||
device_vendor=RENESAS
|
||||
bsp_version=1.0.2
|
||||
bsp_path=repo/Extract/Board_Support_Packages/RealThread/Titan_Board/1.0.2
|
||||
@@ -0,0 +1,82 @@
|
||||
#Mon Dec 01 18:42:56 CST 2025
|
||||
com.renesas.cdt.ddsc.content/com.renesas.cdt.ddsc.content.defaultlinkerscript=script/fsp.ld
|
||||
com.renesas.cdt.ddsc.contentgen.options/options/suppresswarningspaths=ra/arm
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Arm\#\#CMSIS\#\#Main\#\#CoreM\#\#\#\#6.1.0+fsp.6.2.0/all=1441545198,ra/arm/CMSIS_6/LICENSE|862174236,ra/arm/CMSIS_6/CMSIS/Core/Include/core_cm52.h|409404162,ra/arm/CMSIS_6/CMSIS/Core/Include/cmsis_armclang.h|3070162158,ra/arm/CMSIS_6/CMSIS/Core/Include/cmsis_clang.h|2642675438,ra/arm/CMSIS_6/CMSIS/Core/Include/cmsis_compiler.h|3557548549,ra/arm/CMSIS_6/CMSIS/Core/Include/core_cm55.h|432601292,ra/arm/CMSIS_6/CMSIS/Core/Include/cmsis_gcc.h|1219721305,ra/arm/CMSIS_6/CMSIS/Core/Include/cmsis_version.h|1716662092,ra/arm/CMSIS_6/CMSIS/Core/Include/core_ca.h|3033126542,ra/arm/CMSIS_6/CMSIS/Core/Include/core_cm0.h|3716711724,ra/arm/CMSIS_6/CMSIS/Core/Include/core_cm0plus.h|1573341164,ra/arm/CMSIS_6/CMSIS/Core/Include/core_cm1.h|1528066797,ra/arm/CMSIS_6/CMSIS/Core/Include/core_cm23.h|2145813412,ra/arm/CMSIS_6/CMSIS/Core/Include/core_cm7.h|215226313,ra/arm/CMSIS_6/CMSIS/Core/Include/core_cm85.h|3759822293,ra/arm/CMSIS_6/CMSIS/Core/Include/core_sc000.h|3285488134,ra/arm/CMSIS_6/CMSIS/Core/Include/core_sc300.h|956077447,ra/arm/CMSIS_6/CMSIS/Core/Include/core_cm3.h|3342995321,ra/arm/CMSIS_6/CMSIS/Core/Include/core_starmc1.h|3181146757,ra/arm/CMSIS_6/CMSIS/Core/Include/core_cm33.h|3422691989,ra/arm/CMSIS_6/CMSIS/Core/Include/core_cm35p.h|3011809468,ra/arm/CMSIS_6/CMSIS/Core/Include/core_cm4.h|440777068,ra/arm/CMSIS_6/CMSIS/Core/Include/tz_context.h|987654843,ra/arm/CMSIS_6/CMSIS/Core/Include/a-profile/cmsis_armclang_a.h|1790528804,ra/arm/CMSIS_6/CMSIS/Core/Include/a-profile/cmsis_clang_a.h|117658130,ra/arm/CMSIS_6/CMSIS/Core/Include/a-profile/cmsis_cp15.h|3644000269,ra/arm/CMSIS_6/CMSIS/Core/Include/a-profile/cmsis_gcc_a.h|947683335,ra/arm/CMSIS_6/CMSIS/Core/Include/a-profile/cmsis_iccarm_a.h|3200474466,ra/arm/CMSIS_6/CMSIS/Core/Include/a-profile/irq_ctrl.h|2703360002,ra/arm/CMSIS_6/CMSIS/Core/Include/m-profile/armv7m_cachel1.h|271089146,ra/arm/CMSIS_6/CMSIS/Core/Include/m-profile/armv7m_mpu.h|3180041419,ra/arm/CMSIS_6/CMSIS/Core/Include/m-profile/armv81m_pac.h|1572899130,ra/arm/CMSIS_6/CMSIS/Core/Include/m-profile/armv8m_mpu.h|1964429271,ra/arm/CMSIS_6/CMSIS/Core/Include/m-profile/armv8m_pmu.h|2095512231,ra/arm/CMSIS_6/CMSIS/Core/Include/m-profile/cmsis_armclang_m.h|2951442685,ra/arm/CMSIS_6/CMSIS/Core/Include/m-profile/cmsis_clang_m.h|1179088122,ra/arm/CMSIS_6/CMSIS/Core/Include/m-profile/cmsis_gcc_m.h|1753083115,ra/arm/CMSIS_6/CMSIS/Core/Include/m-profile/cmsis_iccarm_m.h|163659099,ra/arm/CMSIS_6/CMSIS/Core/Include/m-profile/cmsis_tiarmclang_m.h|718227869,ra/arm/CMSIS_6/CMSIS/Core/Include/r-profile/cmsis_armclang_r.h|681720804,ra/arm/CMSIS_6/CMSIS/Core/Include/r-profile/cmsis_clang_r.h|154254372,ra/arm/CMSIS_6/CMSIS/Core/Include/r-profile/cmsis_gcc_r.h
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Arm\#\#CMSIS\#\#Main\#\#CoreM\#\#\#\#6.1.0+fsp.6.2.0/libraries=
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#BSP\#\#Board\#\#custom\#\#\#\#6.2.0/all=
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#BSP\#\#Board\#\#custom\#\#\#\#6.2.0/libraries=
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#BSP\#\#ra8p1\#\#device\#\#\#\#6.2.0/all=3927153701,ra/fsp/src/bsp/cmsis/Device/RENESAS/Include/R7KA8P1KF_core0.h|94014335,ra/fsp/src/bsp/cmsis/Device/RENESAS/Include/R7KA8P1KF_core1.h
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#BSP\#\#ra8p1\#\#device\#\#\#\#6.2.0/libraries=
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#BSP\#\#ra8p1\#\#device\#\#R7KA8P1KFLCAC\#\#6.2.0/all=
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#BSP\#\#ra8p1\#\#device\#\#R7KA8P1KFLCAC\#\#6.2.0/libraries=
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#BSP\#\#ra8p1\#\#events\#\#\#\#6.2.0/all=
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#BSP\#\#ra8p1\#\#events\#\#\#\#6.2.0/libraries=
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#BSP\#\#ra8p1\#\#fsp\#\#\#\#6.2.0/all=2026942077,ra/fsp/src/bsp/cmsis/Device/RENESAS/Source/startup.c|3868429094,ra/fsp/src/bsp/cmsis/Device/RENESAS/Source/system.c|3099952531,ra/fsp/src/bsp/mcu/ra8p1/bsp_elc.h|4199051048,ra/fsp/src/bsp/mcu/ra8p1/bsp_feature.h|3882306942,ra/fsp/src/bsp/mcu/ra8p1/bsp_linker.c|91034454,ra/fsp/src/bsp/mcu/ra8p1/bsp_mcu_info.h|1188052323,ra/fsp/src/bsp/mcu/ra8p1/bsp_override.h|3588501986,ra/fsp/src/bsp/mcu/ra8p1/bsp_peripheral.h|431760028,ra/fsp/src/bsp/mcu/ra8p1/r_adc_device_types.h|934285805,ra/fsp/src/bsp/mcu/ra8p1/r_lpm_device_types.h|3350105560,ra/fsp/src/bsp/mcu/all/bsp_clocks.c|847274659,ra/fsp/src/bsp/mcu/all/bsp_clocks.h|864672585,ra/fsp/src/bsp/mcu/all/bsp_common.c|108939666,ra/fsp/src/bsp/mcu/all/bsp_common.h|2476010042,ra/fsp/src/bsp/mcu/all/bsp_compiler_support.h|1391797498,ra/fsp/src/bsp/mcu/all/bsp_delay.c|2995075524,ra/fsp/src/bsp/mcu/all/bsp_delay.h|1002834645,ra/fsp/src/bsp/mcu/all/bsp_exceptions.h|3586998140,ra/fsp/src/bsp/mcu/all/bsp_group_irq.c|2982971571,ra/fsp/src/bsp/mcu/all/bsp_group_irq.h|3480596119,ra/fsp/src/bsp/mcu/all/bsp_guard.c|379456290,ra/fsp/src/bsp/mcu/all/bsp_guard.h|554349144,ra/fsp/src/bsp/mcu/all/bsp_io.c|1270173761,ra/fsp/src/bsp/mcu/all/bsp_io.h|4226258005,ra/fsp/src/bsp/mcu/all/bsp_ipc.c|2907652827,ra/fsp/src/bsp/mcu/all/bsp_ipc.h|962347026,ra/fsp/src/bsp/mcu/all/bsp_irq.c|720519407,ra/fsp/src/bsp/mcu/all/bsp_irq.h|2936884208,ra/fsp/src/bsp/mcu/all/bsp_mcu_api.h|1712869516,ra/fsp/src/bsp/mcu/all/bsp_mmf.h|350466422,ra/fsp/src/bsp/mcu/all/bsp_module_stop.h|1454174299,ra/fsp/src/bsp/mcu/all/bsp_ospi_b.c|3403451056,ra/fsp/src/bsp/mcu/all/bsp_ospi_b.h|4291322381,ra/fsp/src/bsp/mcu/all/bsp_register_protection.c|2533579944,ra/fsp/src/bsp/mcu/all/bsp_register_protection.h|2455669964,ra/fsp/src/bsp/mcu/all/bsp_sbrk.c|659341578,ra/fsp/src/bsp/mcu/all/bsp_sdram.c|2275550317,ra/fsp/src/bsp/mcu/all/bsp_sdram.h|2614255204,ra/fsp/src/bsp/mcu/all/bsp_security.c|1515045059,ra/fsp/src/bsp/mcu/all/bsp_security.h|686902729,ra/fsp/src/bsp/mcu/all/bsp_macl.c|3660402312,ra/fsp/src/bsp/mcu/all/bsp_macl.h|3202460155,ra/fsp/src/bsp/mcu/all/bsp_tfu.h|2646736735,ra/fsp/inc/fsp_features.h|2533231413,ra/fsp/inc/instances/r_ioport.h|2960369267,script/fsp.ld
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#BSP\#\#ra8p1\#\#fsp\#\#\#\#6.2.0/libraries=
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#BSP\#\#ra8p1\#\#linker\#\#\#\#6.2.0/all=
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#BSP\#\#ra8p1\#\#linker\#\#\#\#6.2.0/libraries=
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#Common\#\#all\#\#fsp_common\#\#\#\#6.2.0/all=3520351585,ra/fsp/inc/fsp_version.h|736226877,ra/fsp/inc/api/fsp_common_api.h|1692739955,ra/fsp/inc/api/r_ioport_api.h|2238316510,ra/fsp/inc/api/bsp_api.h|1314265810,ra/fsp/src/bsp/cmsis/Device/RENESAS/Include/renesas.h|2057644446,ra/fsp/src/bsp/cmsis/Device/RENESAS/Include/system.h
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#Common\#\#all\#\#fsp_common\#\#\#\#6.2.0/libraries=
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#HAL\ Drivers\#\#all\#\#r_adc_b\#\#\#\#6.2.0/all=638822209,ra/fsp/inc/api/r_adc_api.h|1589066529,ra/fsp/inc/api/r_elc_api.h|429738396,ra/fsp/inc/api/r_transfer_api.h|3176385417,ra/fsp/inc/instances/r_adc_b.h|2714409729,ra/fsp/src/r_adc_b/r_adc_b.c
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#HAL\ Drivers\#\#all\#\#r_adc_b\#\#\#\#6.2.0/libraries=
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#HAL\ Drivers\#\#all\#\#r_canfdlite\#\#\#\#6.2.0/all=932261006,ra/fsp/inc/api/r_can_api.h|3863682878,ra/fsp/inc/instances/r_canfd.h|1277301068,ra/fsp/src/r_canfd/r_canfd.c
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#HAL\ Drivers\#\#all\#\#r_canfdlite\#\#\#\#6.2.0/libraries=
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#HAL\ Drivers\#\#all\#\#r_dmac\#\#\#\#6.2.0/all=429738396,ra/fsp/inc/api/r_transfer_api.h|3646703680,ra/fsp/inc/instances/r_dmac.h|1867044677,ra/fsp/src/r_dmac/r_dmac.c
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#HAL\ Drivers\#\#all\#\#r_dmac\#\#\#\#6.2.0/libraries=
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#HAL\ Drivers\#\#all\#\#r_gpt\#\#\#\#6.2.0/all=2496371585,ra/fsp/inc/api/r_timer_api.h|1024386857,ra/fsp/inc/instances/r_gpt.h|897288737,ra/fsp/src/r_gpt/r_gpt.c
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#HAL\ Drivers\#\#all\#\#r_gpt\#\#\#\#6.2.0/libraries=
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#HAL\ Drivers\#\#all\#\#r_iic_master\#\#\#\#6.2.0/all=1589066529,ra/fsp/inc/api/r_elc_api.h|429738396,ra/fsp/inc/api/r_transfer_api.h|979139595,ra/fsp/inc/api/r_i2c_master_api.h|2048414029,ra/fsp/inc/instances/r_iic_master.h|4191706256,ra/fsp/src/r_iic_master/r_iic_master.c
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#HAL\ Drivers\#\#all\#\#r_iic_master\#\#\#\#6.2.0/libraries=
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#HAL\ Drivers\#\#all\#\#r_ioport\#\#\#\#6.2.0/all=1692739955,ra/fsp/inc/api/r_ioport_api.h|2533231413,ra/fsp/inc/instances/r_ioport.h|2765953787,ra/fsp/src/r_ioport/r_ioport.c
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#HAL\ Drivers\#\#all\#\#r_ioport\#\#\#\#6.2.0/libraries=
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#HAL\ Drivers\#\#all\#\#r_layer3_switch\#\#\#\#6.2.0/all=2336390258,ra/fsp/inc/api/r_ether_phy_api.h|2246156585,ra/fsp/inc/api/r_gptp_api.h|1481466030,ra/fsp/inc/api/r_ether_switch_api.h|2442470173,ra/fsp/inc/instances/r_layer3_switch.h|3221258546,ra/fsp/src/r_layer3_switch/r_layer3_switch.c
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#HAL\ Drivers\#\#all\#\#r_layer3_switch\#\#\#\#6.2.0/libraries=
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#HAL\ Drivers\#\#all\#\#r_ospi_b\#\#\#\#6.2.0/all=2780661262,ra/fsp/inc/api/r_spi_flash_api.h|36540288,ra/fsp/inc/instances/r_ospi_b.h|3776931815,ra/fsp/src/r_ospi_b/r_ospi_b.c
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#HAL\ Drivers\#\#all\#\#r_ospi_b\#\#\#\#6.2.0/libraries=
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#HAL\ Drivers\#\#all\#\#r_rmac\#\#\#\#6.2.0/all=696897447,ra/fsp/inc/api/r_ether_api.h|650192921,ra/fsp/inc/instances/r_rmac.h|784921312,ra/fsp/src/r_rmac/r_rmac.c
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#HAL\ Drivers\#\#all\#\#r_rmac\#\#\#\#6.2.0/libraries=
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#HAL\ Drivers\#\#all\#\#r_rmac_phy\#\#\#\#6.2.0/all=2336390258,ra/fsp/inc/api/r_ether_phy_api.h|764438812,ra/fsp/inc/instances/r_rmac_phy.h|2779258277,ra/fsp/src/r_rmac_phy/r_rmac_phy.c|751472228,ra/fsp/src/r_rmac_phy/targets/DP83620/r_rmac_phy_target_dp83620.c|1314998574,ra/fsp/src/r_rmac_phy/targets/GPY111/r_rmac_phy_target_gpy111.c|2079018542,ra/fsp/src/r_rmac_phy/targets/ICS1894/r_rmac_phy_target_ics1894.c|2060625327,ra/fsp/src/r_rmac_phy/targets/KSZ8041/r_rmac_phy_target_ksz8041.c|2374011164,ra/fsp/src/r_rmac_phy/targets/KSZ8091RNB/r_rmac_phy_target_ksz8091rnb.c
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#HAL\ Drivers\#\#all\#\#r_rmac_phy\#\#\#\#6.2.0/libraries=
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#HAL\ Drivers\#\#all\#\#r_rtc\#\#\#\#6.2.0/all=489255818,ra/fsp/inc/api/r_cgc_api.h|4080546805,ra/fsp/inc/api/r_rtc_api.h|3473757036,ra/fsp/inc/instances/r_rtc.h|481781619,ra/fsp/src/r_rtc/r_rtc.c
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#HAL\ Drivers\#\#all\#\#r_rtc\#\#\#\#6.2.0/libraries=
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#HAL\ Drivers\#\#all\#\#r_sci_b_uart\#\#\#\#6.2.0/all=429738396,ra/fsp/inc/api/r_transfer_api.h|2894177435,ra/fsp/inc/api/r_uart_api.h|340197968,ra/fsp/inc/instances/r_sci_b_uart.h|2197698019,ra/fsp/src/r_sci_b_uart/r_sci_b_uart.c
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#HAL\ Drivers\#\#all\#\#r_sci_b_uart\#\#\#\#6.2.0/libraries=
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#HAL\ Drivers\#\#all\#\#r_sdhi\#\#\#\#6.2.0/all=1589066529,ra/fsp/inc/api/r_elc_api.h|429738396,ra/fsp/inc/api/r_transfer_api.h|4070197030,ra/fsp/inc/api/r_sdmmc_api.h|715981546,ra/fsp/inc/instances/r_sdhi.h|753349762,ra/fsp/src/r_sdhi/r_sdhi.c|3332071648,ra/fsp/src/r_sdhi/r_sdhi_private.h
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#HAL\ Drivers\#\#all\#\#r_sdhi\#\#\#\#6.2.0/libraries=
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#HAL\ Drivers\#\#all\#\#r_spi_b\#\#\#\#6.2.0/all=429738396,ra/fsp/inc/api/r_transfer_api.h|3536837577,ra/fsp/inc/api/r_spi_api.h|3613137505,ra/fsp/inc/instances/r_spi_b.h|2858749438,ra/fsp/src/r_spi_b/r_spi_b.c
|
||||
com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#HAL\ Drivers\#\#all\#\#r_spi_b\#\#\#\#6.2.0/libraries=
|
||||
com.renesas.cdt.ddsc.settingseditor/com.renesas.cdt.ddsc.settingseditor.active_page=SWPConfigurator
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.display_on_glcdc.1488422115=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.drw.132230345=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.ether_on_rmac.1365512900=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.ether_on_rmac.1523522527=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.ether_on_rmac.999498664=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.ether_phy_on_rmac_phy.1044034790=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.ether_phy_on_rmac_phy.1444031895=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.ether_phy_on_rmac_phy.161678677=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.ether_phy_on_rmac_phy.218255709=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.ether_phy_on_rmac_phy.641345998=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.ether_phy_on_rmac_phy.839275291=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.i2c_on_iic_master.163868311=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.i2c_on_iic_master.1879332429=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.i2c_on_iic_master.2129583021=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.layer3_switch.1143630505=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.layer3_switch.133263903=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.layer3_switch.872282085=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.mipi_csi.117652702=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.ospi_on_ospi_b.1925045077=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.ospi_on_ospi_b.1991668208=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.ospi_on_ospi_b.598087088=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.sdmmc_on_sdmmc.1107040703=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.sdmmc_on_sdmmc.1906111524=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.sdmmc_on_sdmmc.371299039=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.spi_on_spi_b.1756403503=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.spi_on_spi_b.2079125247=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.uart_on_sci_b_uart.115874252=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.uart_on_sci_b_uart.1210004053=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.uart_on_sci_b_uart.1514241209=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.uart_on_sci_b_uart.404954056=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.uart_on_sci_b_uart.510206519=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.uart_on_sci_b_uart.646306467=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.uart_on_sci_b_uart.899015727=false
|
||||
com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.vin.362787651=false
|
||||
@@ -0,0 +1,64 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<launchConfiguration type="ilg.gnumcueclipse.debug.gdbjtag.pyocd.launchConfigurationType">
|
||||
<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.pyocd.adapterName" value="DAP-LINK"/>
|
||||
<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.pyocd.binFlashStartAddress" value=""/>
|
||||
<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.pyocd.doContinue" value="true"/>
|
||||
<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.pyocd.doDebugInRam" value="false"/>
|
||||
<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.pyocd.doFirstReset" value="true"/>
|
||||
<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.pyocd.doGdbServerAllocateConsole" value="true"/>
|
||||
<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.pyocd.doSecondReset" value="true"/>
|
||||
<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.pyocd.doStartGdbServer" value="true"/>
|
||||
<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.pyocd.enableSemihosting" value="true"/>
|
||||
<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.pyocd.firstResetType" value="init"/>
|
||||
<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.pyocd.gdbClientOtherCommands" value="set mem inaccessible-by-default off"/>
|
||||
<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.pyocd.gdbClientOtherOptions" value=""/>
|
||||
<intAttribute key="ilg.gnumcueclipse.debug.gdbjtag.pyocd.gdbServerBusSpeed" value="1000000"/>
|
||||
<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.pyocd.gdbServerConnectionAddress" value=""/>
|
||||
<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.pyocd.gdbServerDeviceName" value="R7KA8P1KF"/>
|
||||
<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.pyocd.gdbServerEnableSemihosting" value="false"/>
|
||||
<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.pyocd.gdbServerExecutable" value="C:\Softwares\RT-ThreadStudio\repo\Extract\Debugger_Support_Packages\RealThread\PyOCD\0.2.9\pyocd.exe"/>
|
||||
<intAttribute key="ilg.gnumcueclipse.debug.gdbjtag.pyocd.gdbServerFlashMode" value="0"/>
|
||||
<intAttribute key="ilg.gnumcueclipse.debug.gdbjtag.pyocd.gdbServerGdbPortNumber" value="3333"/>
|
||||
<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.pyocd.gdbServerOther" value=""/>
|
||||
<intAttribute key="ilg.gnumcueclipse.debug.gdbjtag.pyocd.gdbServerTelnetPortNumber" value="4444"/>
|
||||
<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.pyocd.otherInitCommands" value=""/>
|
||||
<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.pyocd.otherRunCommands" value=""/>
|
||||
<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.pyocd.programMode" value="HEX"/>
|
||||
<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.pyocd.secondResetType" value="halt"/>
|
||||
<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.svdPath" value=""/>
|
||||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageFileName" value=""/>
|
||||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageOffset" value=""/>
|
||||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.ipAddress" value="localhost"/>
|
||||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.jtagDevice" value="GNU MCU PyOCD"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadImage" value="true"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadSymbols" value="true"/>
|
||||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.pcRegister" value=""/>
|
||||
<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.portNumber" value="3333"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setPcRegister" value="false"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="false"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="true"/>
|
||||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="main"/>
|
||||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsFileName" value=""/>
|
||||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsOffset" value=""/>
|
||||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForImage" value="false"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForSymbols" value="false"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForImage" value="true"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForSymbols" value="true"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useRemoteTarget" value="true"/>
|
||||
<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="C:\Softwares\RT-ThreadStudio\repo\Extract\ToolChain_Support_Packages\ARM\GNU_Tools_for_ARM_Embedded_Processors\13.3\bin\arm-none-eabi-gdb.exe"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false"/>
|
||||
<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="0"/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="Debug/rtthread.elf"/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="titan_bsp"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="false"/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value=""/>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
<listEntry value="/titan_bsp"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||
<listEntry value="4"/>
|
||||
</listAttribute>
|
||||
<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.cdt.debug.core.sourceLocator"/>
|
||||
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;default/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/>
|
||||
<stringAttribute key="org.eclipse.debug.ui.ATTR_CONSOLE_ENCODING" value="UTF-8"/>
|
||||
</launchConfiguration>
|
||||
@@ -0,0 +1,28 @@
|
||||
mainmenu "RT-Thread Configuration"
|
||||
|
||||
BSP_DIR := .
|
||||
|
||||
RTT_DIR := ../../..
|
||||
|
||||
# you can change the RTT_ROOT default "../.." to your rtthread_root,
|
||||
# example : default "F:/git_repositories/rt-thread"
|
||||
|
||||
PKGS_DIR := packages
|
||||
|
||||
ENV_DIR := /
|
||||
|
||||
config SOC_R7KA8P1KF
|
||||
bool
|
||||
select SOC_SERIES_R7KA8P1
|
||||
select SOC_SERIES_R7KA8P1_CORE0
|
||||
select RT_USING_COMPONENTS_INIT
|
||||
select RT_USING_USER_MAIN
|
||||
default y
|
||||
|
||||
source "$(RTT_DIR)/Kconfig"
|
||||
osource "$PKGS_DIR/Kconfig"
|
||||
rsource "../libraries/Kconfig"
|
||||
|
||||
if !RT_USING_NANO
|
||||
rsource "$(BSP_DIR)/board/Kconfig"
|
||||
endif
|
||||
@@ -0,0 +1,28 @@
|
||||
# for module compiling
|
||||
import os
|
||||
Import('RTT_ROOT')
|
||||
Import('rtconfig')
|
||||
from building import *
|
||||
from gcc import *
|
||||
|
||||
cwd = GetCurrentDir()
|
||||
src = []
|
||||
CPPPATH = []
|
||||
list = os.listdir(cwd)
|
||||
|
||||
if rtconfig.PLATFORM in ['iccarm']:
|
||||
print("\nThe current project does not support IAR build\n")
|
||||
Return('group')
|
||||
elif rtconfig.PLATFORM in GetGCCLikePLATFORM():
|
||||
if GetOption('target') != 'mdk5':
|
||||
CPPPATH = [cwd]
|
||||
src = Glob('./src/*.c')
|
||||
|
||||
group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH)
|
||||
|
||||
for d in list:
|
||||
path = os.path.join(cwd, d)
|
||||
if os.path.isfile(os.path.join(path, 'SConscript')):
|
||||
group = group + SConscript(os.path.join(d, 'SConscript'))
|
||||
|
||||
Return('group')
|
||||
@@ -0,0 +1,55 @@
|
||||
import os
|
||||
import sys
|
||||
import rtconfig
|
||||
|
||||
if os.getenv('RTT_ROOT'):
|
||||
RTT_ROOT = os.getenv('RTT_ROOT')
|
||||
else:
|
||||
RTT_ROOT = os.path.normpath(os.getcwd() + '/../../..')
|
||||
|
||||
sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
|
||||
try:
|
||||
from building import *
|
||||
except:
|
||||
print('Cannot found RT-Thread root directory, please check RTT_ROOT')
|
||||
print(RTT_ROOT)
|
||||
exit(-1)
|
||||
|
||||
TARGET = 'rtthread.' + rtconfig.TARGET_EXT
|
||||
|
||||
DefaultEnvironment(tools=[])
|
||||
env = Environment(tools = ['mingw'],
|
||||
AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
|
||||
CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS,
|
||||
CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
|
||||
AR = rtconfig.AR, ARFLAGS = '-rc',
|
||||
LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
|
||||
env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
|
||||
|
||||
if rtconfig.PLATFORM in ['iccarm']:
|
||||
env.Replace(CCCOM = ['$CC $CFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES'])
|
||||
env.Replace(ARFLAGS = [''])
|
||||
env.Replace(LINKCOM = env["LINKCOM"] + ' --map project.map')
|
||||
|
||||
Export('RTT_ROOT')
|
||||
Export('rtconfig')
|
||||
|
||||
SDK_ROOT = os.path.abspath('./')
|
||||
if os.path.exists(SDK_ROOT + '/libraries'):
|
||||
libraries_path_prefix = SDK_ROOT + '/libraries'
|
||||
else:
|
||||
libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries'
|
||||
|
||||
SDK_LIB = libraries_path_prefix
|
||||
Export('SDK_LIB')
|
||||
|
||||
rtconfig.BSP_LIBRARY_TYPE = None
|
||||
|
||||
# prepare building environment
|
||||
objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
|
||||
|
||||
# include drivers
|
||||
objs.extend(SConscript(os.path.join(libraries_path_prefix, 'HAL_Drivers', 'SConscript')))
|
||||
|
||||
# make a building
|
||||
DoBuilding(TARGET, objs)
|
||||
@@ -0,0 +1,18 @@
|
||||
import os
|
||||
from building import *
|
||||
|
||||
objs = []
|
||||
cwd = GetCurrentDir()
|
||||
list = os.listdir(cwd)
|
||||
CPPPATH = [cwd]
|
||||
src = Glob('*.c')
|
||||
|
||||
CPPDEFINES = ['_RA_CORE=0']
|
||||
|
||||
objs = DefineGroup('Drivers', src, depend = [''], CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES)
|
||||
|
||||
for item in list:
|
||||
if os.path.isfile(os.path.join(cwd, item, 'SConscript')):
|
||||
objs = objs + SConscript(os.path.join(item, 'SConscript'))
|
||||
|
||||
Return('objs')
|
||||
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Copyright (c) 2006-2023, RT-Thread Development Team
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Change Logs:
|
||||
* Date Author Notes
|
||||
* 2021-10-10 Sherman first version
|
||||
*/
|
||||
|
||||
#ifndef __BOARD_H__
|
||||
#define __BOARD_H__
|
||||
|
||||
#include "hal_data.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define RA_SRAM_SIZE 1872 /* The SRAM size of the chip needs to be modified */
|
||||
#define RA_SRAM_END (0x22000000 + RA_SRAM_SIZE * 1024)
|
||||
|
||||
#ifdef __ARMCC_VERSION
|
||||
extern int Image$$RAM_END$$ZI$$Base;
|
||||
#define HEAP_BEGIN ((void *)&Image$$RAM_END$$ZI$$Base)
|
||||
#elif __ICCARM__
|
||||
#pragma section="ram_BLOCK"
|
||||
#define HEAP_BEGIN (__segment_end("ram_BLOCK"))
|
||||
#else
|
||||
extern int __RAM_segment_used_end__;
|
||||
#define HEAP_BEGIN (&__RAM_segment_used_end__)
|
||||
#endif
|
||||
|
||||
#define HEAP_END RA_SRAM_END
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,22 @@
|
||||
import os
|
||||
from building import *
|
||||
|
||||
objs = []
|
||||
src = []
|
||||
cwd = GetCurrentDir()
|
||||
CPPPATH = [cwd]
|
||||
|
||||
if GetDepend(['BSP_USING_FILESYSTEM']):
|
||||
src += ['drv_filesystem.c']
|
||||
|
||||
if GetDepend(['BSP_USING_ETH']):
|
||||
src += ['drv_rtl8211.c']
|
||||
|
||||
objs = DefineGroup('Drivers', src, depend = [''], CPPPATH = CPPPATH)
|
||||
|
||||
list = os.listdir(cwd)
|
||||
for item in list:
|
||||
if os.path.isfile(os.path.join(cwd, item, 'SConscript')):
|
||||
objs = objs + SConscript(os.path.join(item, 'SConscript'))
|
||||
|
||||
Return('objs')
|
||||
@@ -0,0 +1,135 @@
|
||||
/*
|
||||
* Copyright (c) 2006-2021, RT-Thread Development Team
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Change Logs:
|
||||
* Date Author Notes
|
||||
* 2018-12-13 balanceTWK add sdcard port file
|
||||
* 2021-05-10 Meco Man fix a bug that cannot use fatfs in the main thread at starting up
|
||||
* 2021-07-28 Meco Man implement romfs as the root filesystem
|
||||
*/
|
||||
|
||||
#include <rtthread.h>
|
||||
|
||||
#if defined(BSP_USING_FILESYSTEM)
|
||||
#include <dfs_romfs.h>
|
||||
#include <dfs_fs.h>
|
||||
#include <dfs_file.h>
|
||||
|
||||
#if DFS_FILESYSTEMS_MAX < 4
|
||||
#error "Please define DFS_FILESYSTEMS_MAX more than 4"
|
||||
#endif
|
||||
#if DFS_FILESYSTEM_TYPES_MAX < 4
|
||||
#error "Please define DFS_FILESYSTEM_TYPES_MAX more than 4"
|
||||
#endif
|
||||
|
||||
#define DBG_TAG "app.filesystem"
|
||||
#define DBG_LVL DBG_INFO
|
||||
#include <rtdbg.h>
|
||||
|
||||
#ifdef BSP_USING_FS_AUTO_MOUNT
|
||||
#ifdef BSP_USING_SDCARD_FATFS
|
||||
static int onboard_sdcard_mount(void)
|
||||
{
|
||||
if (dfs_mount("sd", "/sdcard", "elm", 0, 0) == RT_EOK)
|
||||
{
|
||||
LOG_I("SD card mount to '/sdcard'");
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG_E("SD card mount to '/sdcard' failed!");
|
||||
rt_pin_write(0x000D, PIN_LOW);
|
||||
}
|
||||
|
||||
return RT_EOK;
|
||||
}
|
||||
#endif /* BSP_USING_SDCARD_FATFS */
|
||||
#endif /* BSP_USING_FS_AUTO_MOUNT */
|
||||
|
||||
#ifdef BSP_USING_FLASH_FS_AUTO_MOUNT
|
||||
#ifdef BSP_USING_FLASH_FATFS
|
||||
#define FS_PARTITION_NAME "filesystem"
|
||||
|
||||
static int onboard_fal_mount(void)
|
||||
{
|
||||
/* 初始化 fal 功能 */
|
||||
extern int fal_init(void);
|
||||
extern struct rt_device* fal_mtd_nor_device_create(const char *parition_name);
|
||||
fal_init ();
|
||||
/* 在 ospi flash 中名为 "filesystem" 的分区上创建一个块设备 */
|
||||
struct rt_device *mtd_dev = fal_mtd_nor_device_create (FS_PARTITION_NAME);
|
||||
if (mtd_dev == NULL)
|
||||
{
|
||||
LOG_E("Can't create a mtd device on '%s' partition.", FS_PARTITION_NAME);
|
||||
return -RT_ERROR;
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG_D("Create a mtd device on the %s partition of flash successful.", FS_PARTITION_NAME);
|
||||
}
|
||||
|
||||
/* 挂载 ospi flash 中名为 "filesystem" 的分区上的文件系统 */
|
||||
if (dfs_mount (FS_PARTITION_NAME, "/fal", "lfs", 0, 0) == 0)
|
||||
{
|
||||
LOG_I("Filesystem initialized!");
|
||||
}
|
||||
else
|
||||
{
|
||||
dfs_mkfs ("lfs", FS_PARTITION_NAME);
|
||||
if (dfs_mount ("filesystem", "/fal", "lfs", 0, 0) == 0)
|
||||
{
|
||||
LOG_I("Filesystem initialized!");
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG_E("Failed to initialize filesystem!");
|
||||
rt_pin_write(0x000D, PIN_LOW);
|
||||
}
|
||||
}
|
||||
|
||||
return RT_EOK;
|
||||
}
|
||||
#endif /*BSP_USING_FLASH_FATFS*/
|
||||
#endif /*BSP_USING_FLASH_FS_AUTO_MOUNT*/
|
||||
|
||||
const struct romfs_dirent _romfs_root[] =
|
||||
{
|
||||
#ifdef BSP_USING_SDCARD_FATFS
|
||||
{ROMFS_DIRENT_DIR, "sdcard", RT_NULL, 0},
|
||||
#endif
|
||||
|
||||
#ifdef BSP_USING_FLASH_FATFS
|
||||
{ ROMFS_DIRENT_DIR, "fal", RT_NULL, 0 },
|
||||
#endif
|
||||
};
|
||||
|
||||
const struct romfs_dirent romfs_root =
|
||||
{
|
||||
ROMFS_DIRENT_DIR, "/", (rt_uint8_t*) _romfs_root, sizeof(_romfs_root) / sizeof(_romfs_root[0])
|
||||
};
|
||||
|
||||
static int filesystem_mount(void)
|
||||
{
|
||||
|
||||
#ifdef RT_USING_DFS_ROMFS
|
||||
if (dfs_mount(RT_NULL, "/", "rom", 0, &(romfs_root)) != 0)
|
||||
{
|
||||
LOG_E("rom mount to '/' failed!");
|
||||
}
|
||||
|
||||
/* 确保块设备注册成功之后再挂载文件系统 */
|
||||
rt_thread_delay(500);
|
||||
#endif
|
||||
#ifdef BSP_USING_FS_AUTO_MOUNT
|
||||
onboard_sdcard_mount();
|
||||
#endif /* BSP_USING_FS_AUTO_MOUNT */
|
||||
|
||||
#ifdef BSP_USING_FLASH_FS_AUTO_MOUNT
|
||||
onboard_fal_mount ();
|
||||
#endif
|
||||
|
||||
return RT_EOK;
|
||||
}
|
||||
INIT_COMPONENT_EXPORT(filesystem_mount);
|
||||
#endif /* defined(BSP_USING_FILESYSTEM)*/
|
||||
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
* drv_ethernet.c
|
||||
*
|
||||
* Created on: 2025年7月29日
|
||||
* Author: RTT
|
||||
*/
|
||||
#include <rtthread.h>
|
||||
#include "hal_data.h"
|
||||
#include <rtdevice.h>
|
||||
#include <board.h>
|
||||
|
||||
#ifdef BSP_USING_ETH
|
||||
|
||||
void rmac_phy_target_rtl8211_initialize (rmac_phy_instance_ctrl_t * phydev)
|
||||
{
|
||||
#define RTL_8211F_PAGE_SELECT 0x1F
|
||||
#define RTL_8211F_EEELCR_ADDR 0x11
|
||||
#define RTL_8211F_LED_PAGE 0xD04
|
||||
#define RTL_8211F_LCR_ADDR 0x10
|
||||
|
||||
uint32_t val1, val2 = 0;
|
||||
|
||||
/* switch to led page */
|
||||
R_RMAC_PHY_Write(phydev, RTL_8211F_PAGE_SELECT, RTL_8211F_LED_PAGE);
|
||||
|
||||
/* set led1(green) Link 10/100/1000M, and set led2(yellow) Link 10/100/1000M+Active */
|
||||
R_RMAC_PHY_Read(phydev, RTL_8211F_LCR_ADDR, &val1);
|
||||
val1 |= (1 << 5);
|
||||
val1 |= (1 << 8);
|
||||
val1 &= (~(1 << 9));
|
||||
val1 |= (1 << 10);
|
||||
val1 |= (1 << 11);
|
||||
R_RMAC_PHY_Write(phydev, RTL_8211F_LCR_ADDR, val1);
|
||||
|
||||
/* set led1(green) EEE LED function disabled so it can keep on when linked */
|
||||
R_RMAC_PHY_Read(phydev, RTL_8211F_EEELCR_ADDR, &val2);
|
||||
val2 &= (~(1 << 2));
|
||||
R_RMAC_PHY_Write(phydev, RTL_8211F_EEELCR_ADDR, val2);
|
||||
|
||||
/* switch back to page0 */
|
||||
R_RMAC_PHY_Write(phydev, RTL_8211F_PAGE_SELECT, 0xa42);
|
||||
}
|
||||
|
||||
bool rmac_phy_target_rtl8211_is_support_link_partner_ability (rmac_phy_instance_ctrl_t * p_instance_ctrl,
|
||||
uint32_t line_speed_duplex)
|
||||
{
|
||||
FSP_PARAMETER_NOT_USED(p_instance_ctrl);
|
||||
FSP_PARAMETER_NOT_USED(line_speed_duplex);
|
||||
|
||||
/* This PHY-LSI supports half and full duplex mode. */
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
* Copyright (c) 2006-2023, RT-Thread Development Team
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Change Logs:
|
||||
* Date Author Notes
|
||||
* 2022-07-20 Sherman the first version
|
||||
*/
|
||||
#ifndef _FAL_CFG_H_
|
||||
#define _FAL_CFG_H_
|
||||
|
||||
#include "hal_data.h"
|
||||
#include "rtconfig.h"
|
||||
|
||||
#define NOR_FLASH_DEV_NAME "ospi_flash"
|
||||
|
||||
extern const struct fal_flash_dev _ospi_flash;
|
||||
|
||||
/* flash device table */
|
||||
#define FAL_FLASH_DEV_TABLE \
|
||||
{ \
|
||||
&_ospi_flash, \
|
||||
}
|
||||
/* ====================== Partition Configuration ========================== */
|
||||
#ifdef FAL_PART_HAS_TABLE_CFG
|
||||
/** partition table, The chip flash partition is defined in "\ra\fsp\src\bsp\mcu\ra6m4\bsp_feature.h".
|
||||
* More details can be found in the RA6M4 Group User Manual: Hardware section 47 Flash memory.*/
|
||||
#define FAL_PART_TABLE \
|
||||
{ \
|
||||
{FAL_PART_MAGIC_WORD, "whd_firmware", NOR_FLASH_DEV_NAME, 0, 512*1024, 0}, \
|
||||
{FAL_PART_MAGIC_WORD, "whd_clm", NOR_FLASH_DEV_NAME, 512*1024, 512*1024, 0}, \
|
||||
{FAL_PART_MAGIC_WORD, "download", NOR_FLASH_DEV_NAME, 1024*1024, 2*1024*1024, 0}, \
|
||||
{FAL_PART_MAGIC_WORD, "easyflash", NOR_FLASH_DEV_NAME, 3*1024*1024, 1*1024*1024, 0}, \
|
||||
{FAL_PART_MAGIC_WORD, "filesystem", NOR_FLASH_DEV_NAME, 4*1024*1024, 12*1024*1024, 0}, \
|
||||
}
|
||||
#endif /* FAL_PART_HAS_TABLE_CFG */
|
||||
#endif /* _FAL_CFG_H_ */
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
from building import *
|
||||
Import('rtconfig')
|
||||
|
||||
src = []
|
||||
cwd = GetCurrentDir()
|
||||
|
||||
# add gt9147 src files.
|
||||
if GetDepend('BSP_USING_GT9147'):
|
||||
src += Glob('src/gt9147.c')
|
||||
|
||||
if GetDepend('BSP_USING_GT9147_SAMPLE'):
|
||||
src += Glob('samples/gt9147_sample.c')
|
||||
|
||||
# add gt9147 include path.
|
||||
path = [cwd + '/inc']
|
||||
|
||||
# add src and include to group.
|
||||
group = DefineGroup('gt9147', src, depend = ['BSP_USING_GT9147'], CPPPATH = path)
|
||||
|
||||
Return('group')
|
||||
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
* Copyright (c) 2006-2018, RT-Thread Development Team
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Change Logs:
|
||||
* Date Author Notes
|
||||
* 2019-06-01 tyustli the first version
|
||||
*/
|
||||
|
||||
#ifndef __GT9147_H_
|
||||
#define __GT9147_H_
|
||||
#include <rtthread.h>
|
||||
#include <rtdevice.h>
|
||||
|
||||
#define GTP_ADDR_LENGTH (2)
|
||||
#define GT9147_MAX_TOUCH (5)
|
||||
#define GT9147_POINT_INFO_NUM (8)
|
||||
|
||||
#define GT9147_ADDRESS_HIGH (0x5D)
|
||||
#define GT9147_ADDRESS_LOW (0x14)
|
||||
|
||||
#define GT9147_COMMAND (0x8040)
|
||||
#define GT9147_CONFIG (0x8047)
|
||||
|
||||
#define GT9XX_PRODUCT_ID (0x8140)
|
||||
#define GT9147_READ_STATUS (0x814E)
|
||||
|
||||
#define GT9147_POINT1_REG (0x814F)
|
||||
#define GT9147_POINT2_REG (0X8157)
|
||||
#define GT9147_POINT3_REG (0X815F)
|
||||
#define GT9147_POINT4_REG (0X8167)
|
||||
#define GT9147_POINT5_REG (0X816F)
|
||||
|
||||
#define GT9147_CHECK_SUM (0X80FF)
|
||||
|
||||
int rt_hw_gt9147_init(const char *name, struct rt_touch_config *cfg);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
* Copyright (c) 2006-2018, RT-Thread Development Team
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Change Logs:
|
||||
* Date Author Notes
|
||||
* 2019-06-01 tyustli the first version
|
||||
*/
|
||||
|
||||
#include <rtthread.h>
|
||||
#include "lcd_port.h"
|
||||
#include "gt9147.h"
|
||||
|
||||
#define THREAD_PRIORITY 25
|
||||
#define THREAD_STACK_SIZE 1024
|
||||
#define THREAD_TIMESLICE 5
|
||||
|
||||
#define RST_PIN "P412"
|
||||
#define INT_PIN "P502"
|
||||
|
||||
static rt_thread_t gt9147_thread = RT_NULL;
|
||||
static rt_sem_t gt9147_sem = RT_NULL;
|
||||
static rt_device_t touch_dev = RT_NULL;
|
||||
static struct rt_touch_data *read_data;
|
||||
static struct rt_touch_info info;
|
||||
|
||||
static void gt9147_entry(void *parameter)
|
||||
{
|
||||
rt_device_control(touch_dev, RT_TOUCH_CTRL_GET_INFO, &info);
|
||||
|
||||
read_data = (struct rt_touch_data *)rt_malloc(sizeof(struct rt_touch_data) * info.point_num);
|
||||
|
||||
while (1)
|
||||
{
|
||||
rt_sem_take(gt9147_sem, RT_WAITING_FOREVER);
|
||||
|
||||
if (rt_device_read(touch_dev, 0, read_data, info.point_num) == info.point_num)
|
||||
{
|
||||
for (rt_uint8_t i = 0; i < info.point_num; i++)
|
||||
{
|
||||
if (read_data[i].event == RT_TOUCH_EVENT_DOWN || read_data[i].event == RT_TOUCH_EVENT_MOVE)
|
||||
{
|
||||
rt_kprintf("%d %d %d %d %d\n", read_data[i].track_id,
|
||||
read_data[i].x_coordinate,
|
||||
read_data[i].y_coordinate,
|
||||
read_data[i].timestamp,
|
||||
read_data[i].width);
|
||||
}
|
||||
}
|
||||
}
|
||||
rt_device_control(touch_dev, RT_TOUCH_CTRL_ENABLE_INT, RT_NULL);
|
||||
}
|
||||
}
|
||||
|
||||
static rt_err_t rx_callback(rt_device_t touch_dev, rt_size_t size)
|
||||
{
|
||||
rt_sem_release(gt9147_sem);
|
||||
rt_device_control(touch_dev, RT_TOUCH_CTRL_DISABLE_INT, RT_NULL);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Test function */
|
||||
int gt9147_sample()
|
||||
{
|
||||
void *id;
|
||||
int x = LCD_WIDTH;
|
||||
int y = LCD_HEIGHT;
|
||||
|
||||
struct rt_touch_config cfg;
|
||||
rt_base_t int_pin = rt_pin_get(INT_PIN);
|
||||
rt_base_t rst_pin = rt_pin_get(RST_PIN);
|
||||
|
||||
cfg.dev_name = "i2c0";
|
||||
cfg.irq_pin.pin = int_pin;
|
||||
cfg.irq_pin.mode = PIN_MODE_INPUT_PULLDOWN;
|
||||
cfg.user_data = &rst_pin;
|
||||
|
||||
rt_hw_gt9147_init("gt9147", &cfg);
|
||||
|
||||
touch_dev = rt_device_find("gt9147");
|
||||
if (touch_dev == RT_NULL)
|
||||
{
|
||||
rt_kprintf("can't find gt9147 device!\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (rt_device_open(touch_dev, RT_DEVICE_FLAG_INT_RX) != RT_EOK)
|
||||
{
|
||||
rt_kprintf("open device failed!");
|
||||
return -1;
|
||||
}
|
||||
|
||||
id = rt_malloc(sizeof(struct rt_touch_info));
|
||||
rt_device_control(touch_dev, RT_TOUCH_CTRL_GET_ID, id);
|
||||
rt_uint8_t * read_id = (rt_uint8_t *)id;
|
||||
rt_kprintf("id = GT%d%d%d%d \n", read_id[0] - '0', read_id[1] - '0', read_id[2] - '0', read_id[3] - '0');
|
||||
|
||||
rt_device_control(touch_dev, RT_TOUCH_CTRL_SET_X_RANGE, &x); /* if possible you can set your x y coordinate*/
|
||||
rt_device_control(touch_dev, RT_TOUCH_CTRL_SET_Y_RANGE, &y);
|
||||
rt_device_control(touch_dev, RT_TOUCH_CTRL_GET_INFO, id);
|
||||
rt_kprintf("range_x = %d \n", (*(struct rt_touch_info*)id).range_x);
|
||||
rt_kprintf("range_y = %d \n", (*(struct rt_touch_info*)id).range_y);
|
||||
rt_kprintf("point_num = %d \n", (*(struct rt_touch_info*)id).point_num);
|
||||
rt_free(id);
|
||||
|
||||
gt9147_sem = rt_sem_create("dsem", 0, RT_IPC_FLAG_FIFO);
|
||||
if (gt9147_sem == RT_NULL)
|
||||
{
|
||||
rt_kprintf("create dynamic semaphore failed.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
rt_device_set_rx_indicate(touch_dev, rx_callback);
|
||||
|
||||
gt9147_thread = rt_thread_create("gt9147",
|
||||
gt9147_entry,
|
||||
RT_NULL,
|
||||
THREAD_STACK_SIZE,
|
||||
THREAD_PRIORITY,
|
||||
THREAD_TIMESLICE);
|
||||
|
||||
if (gt9147_thread != RT_NULL)
|
||||
rt_thread_startup(gt9147_thread);
|
||||
|
||||
return 0;
|
||||
}
|
||||
MSH_CMD_EXPORT(gt9147_sample, gt9147_sample);
|
||||
@@ -0,0 +1,13 @@
|
||||
import os
|
||||
from building import *
|
||||
|
||||
src = []
|
||||
objs = []
|
||||
cwd = GetCurrentDir()
|
||||
CPPPATH = [cwd]
|
||||
|
||||
src = Glob('*.c')
|
||||
|
||||
objs = DefineGroup('Drivers', src, depend = ['BSP_USING_OSPI_FLASH'], CPPPATH = CPPPATH)
|
||||
|
||||
Return('objs')
|
||||
@@ -0,0 +1,108 @@
|
||||
/***********************************************************************************************************************
|
||||
* File Name : ospi_b_commands.h
|
||||
* Description : Contains data structures and functions used in ospi_commands.h
|
||||
**********************************************************************************************************************/
|
||||
/***********************************************************************************************************************
|
||||
* DISCLAIMER
|
||||
* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No
|
||||
* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all
|
||||
* applicable laws, including copyright laws.
|
||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
|
||||
* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM
|
||||
* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES
|
||||
* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS
|
||||
* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of
|
||||
* this software. By using this software, you agree to the additional terms and conditions found by accessing the
|
||||
* following link:
|
||||
* http://www.renesas.com/disclaimer
|
||||
*
|
||||
* Copyright (C) 2023 Renesas Electronics Corporation. All rights reserved.
|
||||
***********************************************************************************************************************/
|
||||
|
||||
#ifndef OSPI_B_COMMANDS_H_
|
||||
#define OSPI_B_COMMANDS_H_
|
||||
|
||||
#include "hal_data.h"
|
||||
|
||||
/* Macro for OSPI command code */
|
||||
#define OSPI_B_COMMAND_WRITE_ENABLE_SPI (0x06)
|
||||
#define OSPI_B_COMMAND_WRITE_ENABLE_OPI (0x0606)
|
||||
#define OSPI_B_COMMAND_WRITE_REGISTER_SPI (0x71)
|
||||
#define OSPI_B_COMMAND_WRITE_REGISTER_OPI (0x7171)
|
||||
#define OSPI_B_COMMAND_READ_STATUS_SPI (0x05)
|
||||
#define OSPI_B_COMMAND_READ_STATUS_OPI (0x0505)
|
||||
#define OSPI_B_COMMAND_READ_REGISTER_SPI (0x65)
|
||||
#define OSPI_B_COMMAND_READ_REGISTER_OPI (0x6565)
|
||||
#define OSPI_B_COMMAND_READ_DEVICE_ID_SPI (0x9E)
|
||||
#define OSPI_B_COMMAND_READ_DEVICE_ID_OPI (0x9E9E)
|
||||
|
||||
/* Macro for OSPI command length */
|
||||
#define OSPI_B_COMMAND_LENGTH_SPI (1U)
|
||||
#define OSPI_B_COMMAND_LENGTH_OPI (2U)
|
||||
|
||||
/* Macro for OSPI transfer address */
|
||||
#define OSPI_B_ADDRESS_DUMMY (0U)
|
||||
#define OSPI_B_ADDRESS_LENGTH_ZERO (0U)
|
||||
#define OSPI_B_ADDRESS_LENGTH_THREE (3U)
|
||||
#define OSPI_B_ADDRESS_LENGTH_FOUR (4U)
|
||||
|
||||
/* Macro for OSPI transfer data */
|
||||
#define OSPI_B_DATA_DUMMY (0U)
|
||||
#define OSPI_B_DATA_LENGTH_ZERO (0U)
|
||||
#define OSPI_B_DATA_LENGTH_ONE (1U)
|
||||
#define OSPI_B_DATA_LENGTH_TWO (2U)
|
||||
#define OSPI_B_DATA_LENGTH_THREE (3U)
|
||||
#define OSPI_B_DATA_LENGTH_FOUR (4U)
|
||||
|
||||
/* Macro for OSPI transfer dummy cycles */
|
||||
#define OSPI_B_DUMMY_CYCLE_WRITE_SPI (0U)
|
||||
#define OSPI_B_DUMMY_CYCLE_WRITE_OPI (0U)
|
||||
#define OSPI_B_DUMMY_CYCLE_READ_STATUS_SPI (0U)
|
||||
#define OSPI_B_DUMMY_CYCLE_READ_STATUS_OPI (8U)
|
||||
#define OSPI_B_DUMMY_CYCLE_READ_REGISTER_SPI (0U)
|
||||
#define OSPI_B_DUMMY_CYCLE_READ_REGISTER_OPI (8U)
|
||||
#define OSPI_B_DUMMY_CYCLE_READ_MEMORY_SPI (8U)
|
||||
#define OSPI_B_DUMMY_CYCLE_READ_MEMORY_OPI (16U)
|
||||
|
||||
/* Macro for flash device register address */
|
||||
#define OSPI_B_ADDRESS_STR1V_REGISTER (0x00800000)
|
||||
#define OSPI_B_ADDRESS_STR2V_REGISTER (0x00800001)
|
||||
#define OSPI_B_ADDRESS_CFR1V_REGISTER (0x00800002)
|
||||
#define OSPI_B_ADDRESS_CFR2V_REGISTER (0x00800003)
|
||||
#define OSPI_B_ADDRESS_CFR3V_REGISTER (0x00800004)
|
||||
#define OSPI_B_ADDRESS_CFR4V_REGISTER (0x00800005)
|
||||
#define OSPI_B_ADDRESS_CFR5V_REGISTER (0x00800006)
|
||||
|
||||
/* Macros for configure flash device */
|
||||
#define OSPI_B_DATA_CFR2V_REGISTER (0x83)
|
||||
#define OSPI_B_DATA_CFR3V_REGISTER (0x40)
|
||||
#define OSPI_B_DATA_SET_SPI_CFR5V_REGISTER (0x40)
|
||||
#define OSPI_B_DATA_SET_OPI_CFR5V_REGISTER (0x43)
|
||||
|
||||
typedef enum e_ospi_b_transfer
|
||||
{
|
||||
OSPI_B_TRANSFER_WRITE_ENABLE_SPI = 0,
|
||||
OSPI_B_TRANSFER_WRITE_CFR2V_SPI,
|
||||
OSPI_B_TRANSFER_WRITE_CFR3V_SPI,
|
||||
OSPI_B_TRANSFER_WRITE_CFR5V_SPI,
|
||||
OSPI_B_TRANSFER_READ_STATUS_SPI,
|
||||
OSPI_B_TRANSFER_READ_CFR2V_SPI,
|
||||
OSPI_B_TRANSFER_READ_CFR3V_SPI,
|
||||
OSPI_B_TRANSFER_READ_CFR5V_SPI,
|
||||
OSPI_B_TRANSFER_READ_DEVICE_ID_SPI,
|
||||
|
||||
OSPI_B_TRANSFER_WRITE_ENABLE_OPI,
|
||||
OSPI_B_TRANSFER_WRITE_CFR2V_OPI,
|
||||
OSPI_B_TRANSFER_WRITE_CFR3V_OPI,
|
||||
OSPI_B_TRANSFER_WRITE_CFR5V_OPI,
|
||||
OSPI_B_TRANSFER_READ_STATUS_OPI,
|
||||
OSPI_B_TRANSFER_READ_CFR2V_OPI,
|
||||
OSPI_B_TRANSFER_READ_CFR3V_OPI,
|
||||
OSPI_B_TRANSFER_READ_CFR5V_OPI,
|
||||
OSPI_B_TRANSFER_READ_DEVICE_ID_OPI,
|
||||
OSPI_B_TRANSFER_MAX
|
||||
} ospi_b_transfer_t;
|
||||
|
||||
#endif /* OSPI_B_COMMANDS_H_ */
|
||||
@@ -0,0 +1,114 @@
|
||||
/***********************************************************************************************************************
|
||||
* File Name : ospi_b_ep.h
|
||||
* Description : Contains data structures and functions used in ospi_ep.h.
|
||||
**********************************************************************************************************************/
|
||||
/***********************************************************************************************************************
|
||||
* DISCLAIMER
|
||||
* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No
|
||||
* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all
|
||||
* applicable laws, including copyright laws.
|
||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
|
||||
* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM
|
||||
* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES
|
||||
* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS
|
||||
* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of
|
||||
* this software. By using this software, you agree to the additional terms and conditions found by accessing the
|
||||
* following link:
|
||||
* http://www.renesas.com/disclaimer
|
||||
*
|
||||
* Copyright (C) 2023 Renesas Electronics Corporation. All rights reserved.
|
||||
***********************************************************************************************************************/
|
||||
|
||||
#ifndef OSPI_B_EP_H_
|
||||
#define OSPI_B_EP_H_
|
||||
|
||||
/* Macro for flash device */
|
||||
#define OSPI_B_DEVICE_ID (0x21A5BEF) // For W35T51NW flash //(0x0F1A5B34) // For S28HS512T flash
|
||||
#define OSPI_B_DEVICE_HL_ID (0x21A5BEF) // For W35T51NW flash //(0x0F1A5A34) // For S28HL512T flash
|
||||
#define OSPI_B_MANUFACTURER_ID (0xEF) // For W35T51NW flash //(0x34) // For S28HL512T flash
|
||||
#define OSPI_B_DEVICE_ID_TYPE (0x5B) // For S28HS512T flash
|
||||
#define OSPI_B_DEVICE_HL_ID_TYPE (0x5A) // For S28HL512T flash
|
||||
#define OSPI_B_DEVICE_ID_DENSITY (0x1A)
|
||||
|
||||
/* Flash device sector size */
|
||||
#define OSPI_B_SECTOR_SIZE_4K (0x1000)
|
||||
#define OSPI_B_SECTOR_SIZE_256K (0x40000)
|
||||
#define OSPI_B_SECTOR_SIZE_512K (0x80000)
|
||||
#define OSPI_B_SECTOR_4K_END_ADDRESS (0x9001FFFF)
|
||||
|
||||
/* Flash device timing */
|
||||
#define OSPI_B_TIME_UNIT (BSP_DELAY_UNITS_MICROSECONDS)
|
||||
#define OSPI_B_TIME_RESET_SETUP (2U) // Type 50ns
|
||||
#define OSPI_B_TIME_RESET_PULSE (1000U) // Type 500us
|
||||
#define OSPI_B_TIME_ERASE_256K (1500000U) // Type 256KB sector is 331 KBps -> Type 0.773s
|
||||
#define OSPI_B_TIME_ERASE_4K (100000U) // Type 4KB sector is 95 KBps -> Type 0.042s
|
||||
#define OSPI_B_TIME_WRITE (10000U) // Type 256B page (4KB/256KB) is 595/533 KBps -> Type
|
||||
|
||||
/* Flash device status bit */
|
||||
#define OSPI_B_WEN_BIT_MASK (0x00000002)
|
||||
#define OSPI_B_BUSY_BIT_MASK (0x00000001)
|
||||
|
||||
/* Flash device address space mapping */
|
||||
#define OSPI_B_CS0_START_ADDRESS (0x80000000)
|
||||
#define OSPI_B_CS1_START_ADDRESS (0x90000000)
|
||||
#define OSPI_B_APP_ADDRESS(sector_no) ((uint8_t *)(OSPI_B_CS1_START_ADDRESS + ((sector_no) * OSPI_B_SECTOR_SIZE_4K)))
|
||||
#define OSPI_B_SECTOR_FIRST (0U)
|
||||
#define OSPI_B_SECTOR_SECOND (1U)
|
||||
#define OSPI_B_SECTOR_THREE (2U)
|
||||
#define OSPI_B_SECTOR_FOUR (3U)
|
||||
#define OSPI_B_SECTOR_FIVE (4U)
|
||||
#define OSPI_B_SECTOR_SIX (5U)
|
||||
#define OSPI_B_SECTOR_SEVEN (6U)
|
||||
#define OSPI_B_SECTOR_EIGHT (7U)
|
||||
#define OSPI_B_APP_DATA_SIZE (64U)
|
||||
|
||||
/* Macro for RTT Viewer handle */
|
||||
#define RTT_SELECT_SPI_MODE_CHAR ('1')
|
||||
#define RTT_SELECT_OPI_MODE_CHAR ('2')
|
||||
#define RTT_SELECT_DMA_SPI_MODE_CHAR ('3')
|
||||
#define RTT_SELECT_DMA_OPI_MODE_CHAR ('4')
|
||||
#define RTT_SELECT_WRITE_OPERATION_CHAR ('1')
|
||||
#define RTT_SELECT_READ_OPERATION_CHAR ('2')
|
||||
#define RTT_SELECT_ERASE_OPERATION_CHAR ('3')
|
||||
#define RTT_EXIT_SUB_MENU_CHAR ('4')
|
||||
#define RTT_NULL_CHAR ('\0')
|
||||
#define RTT_CHECK_INDEX (0U)
|
||||
|
||||
#define MAIN_MENU "\r\nOSPI Main Menu, Protocol Mode Option:"\
|
||||
"\r\n1. SPI 1S-1S-1S Protocol Mode"\
|
||||
"\r\n2. OPI 8D-8D-8D Protocol Mode"\
|
||||
"\r\nProtocol Mode Select: \r\n"
|
||||
|
||||
#define SUB_MENU "\r\nOSPI Sub Menu, %s Operation Option:"\
|
||||
"\r\n1. Write Operation"\
|
||||
"\r\n2. Read Operation"\
|
||||
"\r\n3. Erase Operation"\
|
||||
"\r\n4. Go Back To Main menu"\
|
||||
"\r\nOperation Select: \r\n"
|
||||
|
||||
#define EP_INFO "\r\nThis example project demonstrates basic functionalities of OSPI driver\r\n"\
|
||||
"on Renesas RA MCUs based on Renesas FSP. Based on the User input, EP performs\r\n"\
|
||||
"read/write/erase operation in SPI mode (1S-1S-1S) or DOPI mode (8D-8D-8D).\r\n"\
|
||||
"On successful completion of each operation, success message will be printed\r\n"\
|
||||
"on RTT viewer. Error and info messages will be printed on JlinkRTTViewer.\r\n\n"
|
||||
|
||||
#define RESET_VALUE (0x00)
|
||||
|
||||
typedef enum {
|
||||
flash_write,
|
||||
flash_read,
|
||||
flash_erase
|
||||
} flash_opration_t;
|
||||
|
||||
/* function declarations*/
|
||||
fsp_err_t ospi_b_init (void);
|
||||
fsp_err_t ospi_b_set_protocol_to_spi (void);
|
||||
fsp_err_t ospi_b_set_protocol_to_opi (void);
|
||||
//fsp_err_t ospi_b_operation (uint8_t * p_address);
|
||||
fsp_err_t ospi_b_operation (uint8_t *p_address, flash_opration_t operation);
|
||||
fsp_err_t ospi_b_read_device_id (uint32_t * const p_id);
|
||||
fsp_err_t timer_init (void);
|
||||
|
||||
#endif /* OSPI_B_EP_H_ */
|
||||
@@ -0,0 +1,13 @@
|
||||
import os
|
||||
from building import *
|
||||
|
||||
src = []
|
||||
objs = []
|
||||
cwd = GetCurrentDir()
|
||||
CPPPATH = [cwd]
|
||||
|
||||
src = Glob('*.c')
|
||||
|
||||
objs = DefineGroup('Drivers', src, depend = ['BSP_USING_OSPI_RAM'], CPPPATH = CPPPATH)
|
||||
|
||||
Return('objs')
|
||||
@@ -0,0 +1,199 @@
|
||||
#include <string.h>
|
||||
#include <inttypes.h>
|
||||
#include "hal_data.h"
|
||||
#include "hyper_ram_test.h"
|
||||
#include <rtthread.h>
|
||||
|
||||
#define DBG_TAG "hyperram"
|
||||
#define DBG_LVL DBG_INFO
|
||||
#include <rtdbg.h>
|
||||
|
||||
#define ram_cfg g_ospi1_cfg
|
||||
#define ram_ctrl g_ospi1_ctrl
|
||||
|
||||
#define OSPI_OM_RESET BSP_IO_PORT_12_PIN_07
|
||||
#define HYPER_RAM_RESET_DELAY() R_BSP_SoftwareDelay(10UL, BSP_DELAY_UNITS_MICROSECONDS)
|
||||
|
||||
#define HYPER_RAM_CFG_REG_0_ADDRESS (0x01000000)
|
||||
#define HYPER_RAM_CFG_REG_1_ADDRESS (0x01000001)
|
||||
|
||||
ospi_b_xspi_command_set_t g_hyper_ram_commands[] = {
|
||||
{
|
||||
.protocol = SPI_FLASH_PROTOCOL_8D_8D_8D,
|
||||
.frame_format = OSPI_B_FRAME_FORMAT_XSPI_PROFILE_2_EXTENDED,
|
||||
.latency_mode = OSPI_B_LATENCY_MODE_FIXED,
|
||||
.command_bytes = OSPI_B_COMMAND_BYTES_1,
|
||||
.address_bytes = SPI_FLASH_ADDRESS_BYTES_4,
|
||||
|
||||
.read_command = 0xA0,
|
||||
.read_dummy_cycles = 11,
|
||||
.program_command = 0x20,
|
||||
.program_dummy_cycles = 11,
|
||||
|
||||
.address_msb_mask = 0xF0,
|
||||
.status_needs_address = false,
|
||||
|
||||
.p_erase_commands = NULL,
|
||||
}
|
||||
};
|
||||
|
||||
uint16_t swap16(uint16_t value)
|
||||
{
|
||||
uint16_t ret;
|
||||
ret = value << 8;
|
||||
ret |= value >> 8;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static fsp_err_t hyper_ram_config_get(uint32_t address, uint16_t * const p_value_out)
|
||||
{
|
||||
spi_flash_direct_transfer_t xfer = {
|
||||
.address = address,
|
||||
.address_length = 4,
|
||||
.command_length = 2,
|
||||
.command = 0xE000,
|
||||
.data_length = 2,
|
||||
.dummy_cycles = 11,
|
||||
};
|
||||
|
||||
fsp_err_t err = R_OSPI_B_DirectTransfer(&ram_ctrl, &xfer, SPI_FLASH_DIRECT_TRANSFER_DIR_READ);
|
||||
if (err != FSP_SUCCESS)
|
||||
{
|
||||
LOG_E("HyperRAM config get failed!");
|
||||
return err;
|
||||
}
|
||||
|
||||
*p_value_out = (uint16_t)xfer.data;
|
||||
|
||||
return FSP_SUCCESS;
|
||||
}
|
||||
|
||||
static fsp_err_t hyper_ram_config_set(uint32_t address, uint16_t value)
|
||||
{
|
||||
spi_flash_direct_transfer_t xfer = {
|
||||
.address = address,
|
||||
.address_length = 4,
|
||||
.command = 0x6000,
|
||||
.command_length = 2,
|
||||
.data = (uint16_t)value,
|
||||
.data_length = 2,
|
||||
.dummy_cycles = 0,
|
||||
};
|
||||
|
||||
fsp_err_t err = R_OSPI_B_DirectTransfer(&ram_ctrl, &xfer, SPI_FLASH_DIRECT_TRANSFER_DIR_WRITE);
|
||||
if (err != FSP_SUCCESS)
|
||||
{
|
||||
LOG_E("HyperRAM config set failed!");
|
||||
return err;
|
||||
}
|
||||
|
||||
return FSP_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/* Define the static array at address 0x70000000 using section attribute */
|
||||
#define TEST_SIZE 8388608 // 32MB (8M x 4 bytes)
|
||||
static uint32_t test_array[TEST_SIZE] __attribute__((section(".ospi1_cs0_noinit")));
|
||||
|
||||
void hyper_ram_test(void)
|
||||
{
|
||||
const uint32_t test_bytes = TEST_SIZE * 4; // Total bytes: 32MB
|
||||
uint32_t errors = 0;
|
||||
rt_tick_t start_time, end_time;
|
||||
uint32_t write_speed_kbs, read_speed_kbs;
|
||||
uint32_t write_time_ms, read_time_ms;
|
||||
|
||||
/* Write pattern to RAM and measure time */
|
||||
start_time = rt_tick_get();
|
||||
for (uint32_t i = 0; i < TEST_SIZE; i++)
|
||||
{
|
||||
test_array[i] = i ^ 0xA5A5A5A5; // Use XOR pattern for better error detection
|
||||
}
|
||||
end_time = rt_tick_get();
|
||||
|
||||
/* Calculate write speed in KB/s and time in ms */
|
||||
write_time_ms = (end_time - start_time) * 1000 / RT_TICK_PER_SECOND;
|
||||
if (write_time_ms > 0)
|
||||
{
|
||||
write_speed_kbs = (test_bytes / 1024) / write_time_ms * 1000; // KB/s
|
||||
}
|
||||
else
|
||||
{
|
||||
write_speed_kbs = 0; // Avoid division by zero
|
||||
}
|
||||
|
||||
/* Verify written pattern while measuring read time */
|
||||
start_time = rt_tick_get();
|
||||
for (uint32_t i = 0; i < TEST_SIZE; i++)
|
||||
{
|
||||
uint32_t expected = i ^ 0xA5A5A5A5;
|
||||
uint32_t actual = test_array[i];
|
||||
if (actual != expected)
|
||||
{
|
||||
errors++;
|
||||
// rt_kprintf("errors:%d actual:%d\n", errors, actual);
|
||||
}
|
||||
}
|
||||
end_time = rt_tick_get();
|
||||
|
||||
/* Calculate read speed in KB/s and time in ms */
|
||||
read_time_ms = (end_time - start_time) * 1000 / RT_TICK_PER_SECOND;
|
||||
if (read_time_ms > 0)
|
||||
{
|
||||
read_speed_kbs = (test_bytes / 1024) / read_time_ms * 1000; // KB/s
|
||||
}
|
||||
else
|
||||
{
|
||||
read_speed_kbs = 0; // Avoid division by zero
|
||||
}
|
||||
|
||||
/* Print test results */
|
||||
if (errors == 0)
|
||||
{
|
||||
LOG_I("Hyper RAM test passed successfully!");
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG_E("Hyper RAM test failed with %u errors", errors);
|
||||
}
|
||||
|
||||
/* Print read and write speeds as integers */
|
||||
LOG_I("Write speed: %u KB/s (%u ms)", write_speed_kbs, write_time_ms);
|
||||
LOG_I("Read speed: %u KB/s (%u ms)", read_speed_kbs, read_time_ms);
|
||||
}
|
||||
MSH_CMD_EXPORT(hyper_ram_test, hyper_ram_test);
|
||||
|
||||
int hyper_ram_init(void)
|
||||
{
|
||||
/* Change OM_RESET back to normal IO mode. */
|
||||
R_IOPORT_PinCfg(&g_ioport_ctrl,
|
||||
OSPI_OM_RESET,
|
||||
IOPORT_CFG_PORT_DIRECTION_OUTPUT | IOPORT_CFG_DRIVE_HIGH | IOPORT_CFG_PORT_DIRECTION_OUTPUT | IOPORT_CFG_PORT_OUTPUT_HIGH);
|
||||
|
||||
/* Pin reset the OctaFlash */
|
||||
R_BSP_PinWrite(OSPI_OM_RESET, BSP_IO_LEVEL_LOW);
|
||||
HYPER_RAM_RESET_DELAY();
|
||||
R_BSP_PinWrite(OSPI_OM_RESET, BSP_IO_LEVEL_HIGH);
|
||||
HYPER_RAM_RESET_DELAY();
|
||||
|
||||
/* Open the interface and immediately transition to 8D-8D-8D mode */
|
||||
R_OSPI_B_Open((spi_flash_ctrl_t *)&ram_ctrl, &ram_cfg);
|
||||
R_OSPI_B_SpiProtocolSet(&ram_ctrl, SPI_FLASH_PROTOCOL_8D_8D_8D);
|
||||
|
||||
R_XSPI1->LIOCFGCS_b[0].WRMSKMD = 1;
|
||||
|
||||
uint16_t cfg_reg0 = 0;
|
||||
hyper_ram_config_get(HYPER_RAM_CFG_REG_0_ADDRESS, &cfg_reg0);
|
||||
LOG_D("Read CR0 value: 0x%x", swap16(cfg_reg0));
|
||||
|
||||
uint16_t value0 = 0x8f1d;
|
||||
hyper_ram_config_set(HYPER_RAM_CFG_REG_0_ADDRESS, swap16(value0));
|
||||
LOG_D("Set CR0 to 0x%x", value0);
|
||||
|
||||
cfg_reg0 = 0;
|
||||
hyper_ram_config_get(HYPER_RAM_CFG_REG_0_ADDRESS, &cfg_reg0);
|
||||
LOG_D("Read CR0 value: 0x%x", swap16(cfg_reg0));
|
||||
|
||||
return RT_EOK;
|
||||
}
|
||||
INIT_BOARD_EXPORT(hyper_ram_init);
|
||||
@@ -0,0 +1,7 @@
|
||||
|
||||
#ifndef HYPER_RAM_TEST_H_
|
||||
#define HYPER_RAM_TEST_H_
|
||||
|
||||
void hyper_ram_test(void);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
* Copyright (c) 2006-2023, RT-Thread Development Team
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Change Logs:
|
||||
* Date Author Notes
|
||||
* 2018-07-28 liu2guang the first version for STM32F469NI-Discovery.
|
||||
*/
|
||||
|
||||
#ifndef __DRV_LCD_H_
|
||||
#define __DRV_LCD_H_
|
||||
|
||||
#include <rtthread.h>
|
||||
#include <rtdevice.h>
|
||||
#include "hal_data.h"
|
||||
|
||||
typedef enum
|
||||
{
|
||||
ROTATION_ZERO = 0,
|
||||
ROTATION_090 = 90,
|
||||
ROTATION_180 = 180,
|
||||
ROTATION_270 = 270,
|
||||
} bsp_rotation;
|
||||
|
||||
#define LCD_WIDTH DISPLAY_HSIZE_INPUT0
|
||||
#define LCD_HEIGHT DISPLAY_VSIZE_INPUT0
|
||||
#define LCD_BITS_PER_PIXEL DISPLAY_BITS_PER_PIXEL_INPUT1
|
||||
#define LCD_PIXEL_FORMAT RTGRAPHIC_PIXEL_FORMAT_RGB565
|
||||
#define LCD_BUF_SIZE (LCD_WIDTH * LCD_HEIGHT * LCD_BITS_PER_PIXEL / 8)
|
||||
|
||||
#define LCD_XSTRIDE_PHYS (((DISPLAY_BUFFER_STRIDE_PIXELS_INPUT0 * LCD_BITS_PER_PIXEL + 0x1FF) & 0xFFFFFE00) / LCD_BITS_PER_PIXEL)
|
||||
#define LCD_NUM_FRAMEBUFFERS (2)
|
||||
|
||||
#define LCD_BL_PIN BSP_USING_LCD_BL_PIN
|
||||
#define LCD_RST_PIN BSP_USING_LCD_RST_PIN
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,13 @@
|
||||
import os
|
||||
from building import *
|
||||
|
||||
src = []
|
||||
objs = []
|
||||
cwd = GetCurrentDir()
|
||||
CPPPATH = [cwd]
|
||||
|
||||
src = Glob('*.c')
|
||||
|
||||
objs = DefineGroup('Drivers', src, depend = ['BSP_USING_MIPI_LCD'], CPPPATH = CPPPATH)
|
||||
|
||||
Return('objs')
|
||||
@@ -0,0 +1,133 @@
|
||||
#include <rtthread.h>
|
||||
|
||||
#if (defined(BSP_USING_LCD)) || (defined(SOC_SERIES_R7FA8M85))
|
||||
#include <lcd_port.h>
|
||||
#include "hal_data.h"
|
||||
|
||||
#define DRV_DEBUG
|
||||
#define LOG_TAG "mipi_cfg"
|
||||
#include <drv_log.h>
|
||||
|
||||
#define MIPI_DSI_DISPLAY_CONFIG_DATA_DELAY_FLAG ((mipi_dsi_cmd_id_t) 0xFE)
|
||||
#define MIPI_DSI_DISPLAY_CONFIG_DATA_END_OF_TABLE ((mipi_dsi_cmd_id_t) 0xFD)
|
||||
|
||||
typedef struct
|
||||
{
|
||||
unsigned char size;
|
||||
unsigned char buffer[50];
|
||||
mipi_dsi_cmd_id_t cmd_id;
|
||||
mipi_dsi_cmd_flag_t flags;
|
||||
} lcd_table_setting_t;
|
||||
|
||||
volatile static bool g_message_sent = false;
|
||||
volatile static mipi_dsi_phy_status_t g_phy_status;
|
||||
|
||||
const lcd_table_setting_t g_lcd_init_focuslcd[] =
|
||||
{
|
||||
// 480*800 冠显
|
||||
{4, {0x99, 0x71, 0x02, 0xa2}, MIPI_DSI_CMD_ID_GENERIC_LONG_WRITE, MIPI_DSI_CMD_FLAG_LOW_POWER},
|
||||
{4, {0x99, 0x71, 0x02, 0xa3}, MIPI_DSI_CMD_ID_GENERIC_LONG_WRITE, MIPI_DSI_CMD_FLAG_LOW_POWER},
|
||||
{4, {0x99, 0x71, 0x02, 0xa4}, MIPI_DSI_CMD_ID_GENERIC_LONG_WRITE, MIPI_DSI_CMD_FLAG_LOW_POWER},
|
||||
|
||||
{2, {0xA4, 0x31}, MIPI_DSI_CMD_ID_DCS_LONG_WRITE, MIPI_DSI_CMD_FLAG_LOW_POWER}, // 2Lanes
|
||||
|
||||
{8, {0xB0, 0x22, 0x57, 0x1E, 0x61, 0x2F, 0x57, 0x61}, MIPI_DSI_CMD_ID_DCS_LONG_WRITE, MIPI_DSI_CMD_FLAG_LOW_POWER}, // VGH_VGL (14v)
|
||||
|
||||
{3, {0xB7, 0x64, 0x64}, MIPI_DSI_CMD_ID_DCS_LONG_WRITE, MIPI_DSI_CMD_FLAG_LOW_POWER}, //Source (5v)
|
||||
|
||||
{3, {0xBF, 0xB4, 0xB4}, MIPI_DSI_CMD_ID_DCS_LONG_WRITE, MIPI_DSI_CMD_FLAG_LOW_POWER}, //VCOM (-2v)
|
||||
|
||||
// Gamma----(5V)
|
||||
{38, {0xC8, 0x00, 0x00, 0x0F, 0x1C, 0x34, 0x00, 0x60, 0x03, 0xA0, 0x06, 0x10, 0xFE, 0x06, 0x74, 0x03, 0x21, 0xC4, 0x00, 0x08, 0x00, 0x22, 0x46, 0x0F, 0x8F, 0x0A, 0x32, 0xF2, 0x0C, 0x42, 0x0C, 0xF3, 0x80, 0x00, 0xAB, 0xC0, 0x03, 0xC4}, MIPI_DSI_CMD_ID_GENERIC_LONG_WRITE, MIPI_DSI_CMD_FLAG_LOW_POWER},
|
||||
{38, {0xC9, 0x00, 0x00, 0x0F, 0x1C, 0x34, 0x00, 0x60, 0x03, 0xA0, 0x06, 0x10, 0xFE, 0x06, 0x74, 0x03, 0x21, 0xC4, 0x00, 0x08, 0x00, 0x22, 0x46, 0x0F, 0x8F, 0x0A, 0x32, 0xF2, 0x0C, 0x42, 0x0C, 0xF3, 0x80, 0x00, 0xAB, 0xC0, 0x03, 0xC4}, MIPI_DSI_CMD_ID_GENERIC_LONG_WRITE, MIPI_DSI_CMD_FLAG_LOW_POWER},
|
||||
// Gamma----(5.5V)
|
||||
{38, {0xC8, 0x00, 0x00, 0x13, 0x24, 0x44, 0x00, 0x74, 0x03, 0xB8, 0x04, 0x11, 0x16, 0x08, 0x86, 0x04, 0x21, 0xD3, 0x02, 0x10, 0x0F, 0x22, 0x4D, 0x0E, 0x90, 0x09, 0x32, 0xF0, 0x0B, 0x40, 0x0E, 0xF3, 0x7D, 0x0E, 0xA9, 0xBF, 0x03, 0xC4}, MIPI_DSI_CMD_ID_GENERIC_LONG_WRITE, MIPI_DSI_CMD_FLAG_LOW_POWER},
|
||||
{38, {0xC9, 0x00, 0x00, 0x13, 0x24, 0x44, 0x00, 0x74, 0x03, 0xB8, 0x04, 0x11, 0x16, 0x08, 0x86, 0x04, 0x21, 0xD3, 0x02, 0x10, 0x0F, 0x22, 0x4D, 0x0E, 0x90, 0x09, 0x32, 0xF0, 0x0B, 0x40, 0x0E, 0xF3, 0x7D, 0x0E, 0xA9, 0xBF, 0x03, 0xC4}, MIPI_DSI_CMD_ID_GENERIC_LONG_WRITE, MIPI_DSI_CMD_FLAG_LOW_POWER},
|
||||
// GIP
|
||||
{7, {0xD7, 0x10, 0x2A, 0x28, 0x19, 0x90, 0x90}, MIPI_DSI_CMD_ID_DCS_LONG_WRITE, MIPI_DSI_CMD_FLAG_LOW_POWER}, // 800
|
||||
|
||||
{33, {0xA3, 0x51, 0x03, 0x80, 0xCF, 0x44, 0x00, 0x00, 0x00, 0x00, 0x04, 0x78, 0x78, 0x00, 0x1A, 0x00, 0x45, 0x05, 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x02, 0x20, 0x52, 0x00, 0x05, 0x00, 0x00, 0xFF}, MIPI_DSI_CMD_ID_DCS_LONG_WRITE, MIPI_DSI_CMD_FLAG_LOW_POWER},
|
||||
{44, {0xA6, 0x02, 0x00, 0x24, 0x55, 0x35, 0x00, 0x38, 0x00, 0x78, 0x78, 0x00, 0x24, 0x55, 0x36, 0x00, 0x37, 0x00, 0x78, 0x78, 0x02, 0xAC, 0x51, 0x3A, 0x00, 0x00, 0x00, 0x78, 0x78, 0x03, 0xAC, 0x21, 0x00, 0x04, 0x00, 0x00, 0x78, 0x78, 0x3e, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00}, MIPI_DSI_CMD_ID_DCS_LONG_WRITE, MIPI_DSI_CMD_FLAG_LOW_POWER},
|
||||
{48, {0xA7, 0x19, 0x19, 0x00, 0x64, 0x40, 0x07, 0x16, 0x40, 0x00, 0x04, 0x03, 0x78, 0x78, 0x00, 0x64, 0x40, 0x25, 0x34, 0x00, 0x00, 0x02, 0x01, 0x78, 0x78, 0x00, 0x64, 0x40, 0x4B, 0x5A, 0x00, 0x00, 0x02, 0x01, 0x78, 0x78, 0x00, 0x24, 0x40, 0x69, 0x78, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x00, 0x44}, MIPI_DSI_CMD_ID_DCS_LONG_WRITE, MIPI_DSI_CMD_FLAG_LOW_POWER},
|
||||
{37, {0xAC, 0x08, 0x0A, 0x11, 0x00, 0x13, 0x03, 0x1B, 0x18, 0x06, 0x1A, 0x19, 0x1B, 0x1B, 0x1B, 0x18, 0x1B, 0x09, 0x0B, 0x10, 0x02, 0x12, 0x01, 0x1B, 0x18, 0x06, 0x1A, 0x19, 0x1B, 0x1B, 0x1B, 0x18, 0x1B, 0xFF, 0x67, 0xFF, 0x67, 0x00}, MIPI_DSI_CMD_ID_DCS_LONG_WRITE, MIPI_DSI_CMD_FLAG_LOW_POWER},
|
||||
|
||||
{8, {0xAD, 0xCC, 0x40, 0x46, 0x11, 0x04, 0x78, 0x78}, MIPI_DSI_CMD_ID_DCS_LONG_WRITE, MIPI_DSI_CMD_FLAG_LOW_POWER},
|
||||
{15, {0xE8, 0x30, 0x07, 0x00, 0x94, 0x94, 0x9C, 0x00, 0xE2, 0x04, 0x00, 0x00, 0x00, 0x00, 0xEF}, MIPI_DSI_CMD_ID_DCS_LONG_WRITE, MIPI_DSI_CMD_FLAG_LOW_POWER},
|
||||
|
||||
{33, {0xE7, 0x8B, 0x3C, 0x00, 0x0C, 0xF0, 0x5D, 0x00, 0x5D, 0x00, 0x5D, 0x00, 0x5D, 0x00, 0xFF, 0x00, 0x08, 0x7B, 0x00, 0x00, 0xC8, 0x6A, 0x5A, 0x08, 0x1A, 0x3C, 0x00, 0x81, 0x01, 0xCC, 0x01, 0x7F, 0xF0, 0x22}, MIPI_DSI_CMD_ID_DCS_LONG_WRITE, MIPI_DSI_CMD_FLAG_LOW_POWER},
|
||||
|
||||
{2, {0x11, 0x00}, MIPI_DSI_CMD_ID_DCS_SHORT_WRITE_0_PARAM, MIPI_DSI_CMD_FLAG_LOW_POWER}, //Sleep out
|
||||
{120, {0}, MIPI_DSI_DISPLAY_CONFIG_DATA_DELAY_FLAG, (mipi_dsi_cmd_flag_t)0},
|
||||
{2, {0x29, 0x00}, MIPI_DSI_CMD_ID_DCS_SHORT_WRITE_0_PARAM, MIPI_DSI_CMD_FLAG_LOW_POWER}, //display on
|
||||
{2, {0x35, 0x00}, MIPI_DSI_CMD_ID_DCS_SHORT_WRITE_1_PARAM, MIPI_DSI_CMD_FLAG_LOW_POWER}, //TE off
|
||||
|
||||
{0x00, {0}, MIPI_DSI_DISPLAY_CONFIG_DATA_END_OF_TABLE, (mipi_dsi_cmd_flag_t)0},
|
||||
};
|
||||
|
||||
void mipi_dsi0_callback(mipi_dsi_callback_args_t *p_args)
|
||||
{
|
||||
switch (p_args->event)
|
||||
{
|
||||
case MIPI_DSI_EVENT_SEQUENCE_0:
|
||||
{
|
||||
if (MIPI_DSI_SEQUENCE_STATUS_DESCRIPTORS_FINISHED == p_args->tx_status)
|
||||
{
|
||||
g_message_sent = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case MIPI_DSI_EVENT_PHY:
|
||||
{
|
||||
g_phy_status |= p_args->phy_status;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void mipi_dsi_push_table(const lcd_table_setting_t *table)
|
||||
{
|
||||
fsp_err_t err = FSP_SUCCESS;
|
||||
const lcd_table_setting_t *p_entry = table;
|
||||
|
||||
while (MIPI_DSI_DISPLAY_CONFIG_DATA_END_OF_TABLE != p_entry->cmd_id)
|
||||
{
|
||||
mipi_dsi_cmd_t msg =
|
||||
{
|
||||
.channel = 0,
|
||||
.cmd_id = p_entry->cmd_id,
|
||||
.flags = p_entry->flags,
|
||||
.tx_len = p_entry->size,
|
||||
.p_tx_buffer = p_entry->buffer,
|
||||
};
|
||||
|
||||
if (MIPI_DSI_DISPLAY_CONFIG_DATA_DELAY_FLAG == msg.cmd_id)
|
||||
{
|
||||
R_BSP_SoftwareDelay (table->size, BSP_DELAY_UNITS_MILLISECONDS);
|
||||
}
|
||||
else
|
||||
{
|
||||
g_message_sent = false;
|
||||
/* Send a command to the peripheral device */
|
||||
err = R_MIPI_DSI_Command(&g_mipi_dsi0_ctrl, &msg);
|
||||
if (err != FSP_SUCCESS)
|
||||
{
|
||||
LOG_E("R_MIPI_DSI_Command error\n");
|
||||
}
|
||||
/* Wait */
|
||||
while (!g_message_sent);
|
||||
}
|
||||
p_entry++;
|
||||
}
|
||||
}
|
||||
|
||||
void ra8_mipi_lcd_init(void)
|
||||
{
|
||||
mipi_dsi_push_table(g_lcd_init_focuslcd);
|
||||
LOG_D("initialize mipi dsi configs\n");
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,3 @@
|
||||
#include <rtthread.h>
|
||||
#include "hal_data.h"
|
||||
|
||||
@@ -0,0 +1,157 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<package xmlns:xs="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<vendor>Renesas</vendor>
|
||||
<name>Project Content</name>
|
||||
<description>Project content managed by the Renesas Smart Configurator</description>
|
||||
<url/>
|
||||
<releases>
|
||||
<release version="1.0.0"/>
|
||||
</releases>
|
||||
<generators>
|
||||
<generator id="Renesas RA Smart Configurator">
|
||||
<project_files>
|
||||
<file category="include" name="src/"/>
|
||||
<file category="source" name="src/hal_entry.c"/>
|
||||
</project_files>
|
||||
</generator>
|
||||
</generators>
|
||||
<components generator="Renesas RA Smart Configurator">
|
||||
<component Cclass="Flex Software" Cgroup="Components" Csub="ra">
|
||||
<files>
|
||||
<file category="include" name="ra/arm/CMSIS_6/CMSIS/Core/Include/"/>
|
||||
<file category="include" name="ra/fsp/inc/"/>
|
||||
<file category="include" name="ra/fsp/inc/api/"/>
|
||||
<file category="include" name="ra/fsp/inc/instances/"/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/a-profile/cmsis_armclang_a.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/a-profile/cmsis_clang_a.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/a-profile/cmsis_cp15.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/a-profile/cmsis_gcc_a.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/a-profile/cmsis_iccarm_a.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/a-profile/irq_ctrl.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/cmsis_armclang.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/cmsis_clang.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/cmsis_compiler.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/cmsis_gcc.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/cmsis_version.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/core_ca.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/core_cm0.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/core_cm0plus.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/core_cm1.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/core_cm23.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/core_cm3.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/core_cm33.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/core_cm35p.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/core_cm4.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/core_cm52.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/core_cm55.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/core_cm7.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/core_cm85.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/core_sc000.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/core_sc300.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/core_starmc1.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/m-profile/armv7m_cachel1.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/m-profile/armv7m_mpu.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/m-profile/armv81m_pac.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/m-profile/armv8m_mpu.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/m-profile/armv8m_pmu.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/m-profile/cmsis_armclang_m.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/m-profile/cmsis_clang_m.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/m-profile/cmsis_gcc_m.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/m-profile/cmsis_iccarm_m.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/m-profile/cmsis_tiarmclang_m.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/r-profile/cmsis_armclang_r.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/r-profile/cmsis_clang_r.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/r-profile/cmsis_gcc_r.h" path=""/>
|
||||
<file category="header" name="ra/arm/CMSIS_6/CMSIS/Core/Include/tz_context.h" path=""/>
|
||||
<file category="other" name="ra/arm/CMSIS_6/LICENSE"/>
|
||||
<file category="header" name="ra/fsp/inc/api/bsp_api.h" path=""/>
|
||||
<file category="header" name="ra/fsp/inc/api/fsp_common_api.h" path=""/>
|
||||
<file category="header" name="ra/fsp/inc/api/r_ioport_api.h" path=""/>
|
||||
<file category="header" name="ra/fsp/inc/fsp_features.h" path=""/>
|
||||
<file category="header" name="ra/fsp/inc/fsp_version.h" path=""/>
|
||||
<file category="header" name="ra/fsp/inc/instances/r_ioport.h" path=""/>
|
||||
<file category="header" name="ra/fsp/src/bsp/cmsis/Device/RENESAS/Include/R7KA8P1KF_core0.h" path=""/>
|
||||
<file category="header" name="ra/fsp/src/bsp/cmsis/Device/RENESAS/Include/R7KA8P1KF_core1.h" path=""/>
|
||||
<file category="header" name="ra/fsp/src/bsp/cmsis/Device/RENESAS/Include/renesas.h" path=""/>
|
||||
<file category="header" name="ra/fsp/src/bsp/cmsis/Device/RENESAS/Include/system.h" path=""/>
|
||||
<file category="source" name="ra/fsp/src/bsp/cmsis/Device/RENESAS/Source/startup.c"/>
|
||||
<file category="source" name="ra/fsp/src/bsp/cmsis/Device/RENESAS/Source/system.c"/>
|
||||
<file category="source" name="ra/fsp/src/bsp/mcu/all/bsp_clocks.c"/>
|
||||
<file category="header" name="ra/fsp/src/bsp/mcu/all/bsp_clocks.h" path=""/>
|
||||
<file category="source" name="ra/fsp/src/bsp/mcu/all/bsp_common.c"/>
|
||||
<file category="header" name="ra/fsp/src/bsp/mcu/all/bsp_common.h" path=""/>
|
||||
<file category="header" name="ra/fsp/src/bsp/mcu/all/bsp_compiler_support.h" path=""/>
|
||||
<file category="source" name="ra/fsp/src/bsp/mcu/all/bsp_delay.c"/>
|
||||
<file category="header" name="ra/fsp/src/bsp/mcu/all/bsp_delay.h" path=""/>
|
||||
<file category="header" name="ra/fsp/src/bsp/mcu/all/bsp_exceptions.h" path=""/>
|
||||
<file category="source" name="ra/fsp/src/bsp/mcu/all/bsp_group_irq.c"/>
|
||||
<file category="header" name="ra/fsp/src/bsp/mcu/all/bsp_group_irq.h" path=""/>
|
||||
<file category="source" name="ra/fsp/src/bsp/mcu/all/bsp_guard.c"/>
|
||||
<file category="header" name="ra/fsp/src/bsp/mcu/all/bsp_guard.h" path=""/>
|
||||
<file category="source" name="ra/fsp/src/bsp/mcu/all/bsp_io.c"/>
|
||||
<file category="header" name="ra/fsp/src/bsp/mcu/all/bsp_io.h" path=""/>
|
||||
<file category="source" name="ra/fsp/src/bsp/mcu/all/bsp_ipc.c"/>
|
||||
<file category="header" name="ra/fsp/src/bsp/mcu/all/bsp_ipc.h" path=""/>
|
||||
<file category="source" name="ra/fsp/src/bsp/mcu/all/bsp_irq.c"/>
|
||||
<file category="header" name="ra/fsp/src/bsp/mcu/all/bsp_irq.h" path=""/>
|
||||
<file category="source" name="ra/fsp/src/bsp/mcu/all/bsp_macl.c"/>
|
||||
<file category="header" name="ra/fsp/src/bsp/mcu/all/bsp_macl.h" path=""/>
|
||||
<file category="header" name="ra/fsp/src/bsp/mcu/all/bsp_mcu_api.h" path=""/>
|
||||
<file category="header" name="ra/fsp/src/bsp/mcu/all/bsp_mmf.h" path=""/>
|
||||
<file category="header" name="ra/fsp/src/bsp/mcu/all/bsp_module_stop.h" path=""/>
|
||||
<file category="source" name="ra/fsp/src/bsp/mcu/all/bsp_register_protection.c"/>
|
||||
<file category="header" name="ra/fsp/src/bsp/mcu/all/bsp_register_protection.h" path=""/>
|
||||
<file category="source" name="ra/fsp/src/bsp/mcu/all/bsp_sbrk.c"/>
|
||||
<file category="source" name="ra/fsp/src/bsp/mcu/all/bsp_sdram.c"/>
|
||||
<file category="header" name="ra/fsp/src/bsp/mcu/all/bsp_sdram.h" path=""/>
|
||||
<file category="source" name="ra/fsp/src/bsp/mcu/all/bsp_security.c"/>
|
||||
<file category="header" name="ra/fsp/src/bsp/mcu/all/bsp_security.h" path=""/>
|
||||
<file category="header" name="ra/fsp/src/bsp/mcu/all/bsp_tfu.h" path=""/>
|
||||
<file category="header" name="ra/fsp/src/bsp/mcu/ra8p1/bsp_elc.h" path=""/>
|
||||
<file category="header" name="ra/fsp/src/bsp/mcu/ra8p1/bsp_feature.h" path=""/>
|
||||
<file category="source" name="ra/fsp/src/bsp/mcu/ra8p1/bsp_linker.c"/>
|
||||
<file category="header" name="ra/fsp/src/bsp/mcu/ra8p1/bsp_mcu_info.h" path=""/>
|
||||
<file category="header" name="ra/fsp/src/bsp/mcu/ra8p1/bsp_override.h" path=""/>
|
||||
<file category="header" name="ra/fsp/src/bsp/mcu/ra8p1/bsp_peripheral.h" path=""/>
|
||||
<file category="header" name="ra/fsp/src/bsp/mcu/ra8p1/r_adc_device_types.h" path=""/>
|
||||
<file category="header" name="ra/fsp/src/bsp/mcu/ra8p1/r_lpm_device_types.h" path=""/>
|
||||
<file category="source" name="ra/fsp/src/r_ioport/r_ioport.c"/>
|
||||
<file category="source" name="ra/fsp/src/r_sci_b_uart/r_sci_b_uart.c"/>
|
||||
</files>
|
||||
</component>
|
||||
<component Cclass="Flex Software" Cgroup="Build Configuration">
|
||||
<files>
|
||||
<file category="include" name="ra_cfg/fsp_cfg/"/>
|
||||
<file category="include" name="ra_cfg/fsp_cfg/bsp/"/>
|
||||
<file category="header" name="ra_cfg/fsp_cfg/bsp/board_cfg.h" path=""/>
|
||||
<file category="header" name="ra_cfg/fsp_cfg/bsp/bsp_cfg.h" path=""/>
|
||||
<file category="header" name="ra_cfg/fsp_cfg/bsp/bsp_mcu_device_cfg.h" path=""/>
|
||||
<file category="header" name="ra_cfg/fsp_cfg/bsp/bsp_mcu_device_pn_cfg.h" path=""/>
|
||||
<file category="header" name="ra_cfg/fsp_cfg/bsp/bsp_mcu_family_cfg.h" path=""/>
|
||||
<file category="header" name="ra_cfg/fsp_cfg/bsp/bsp_mcu_ofs_cfg.h" path=""/>
|
||||
<file category="header" name="ra_cfg/fsp_cfg/bsp/bsp_pin_cfg.h" path=""/>
|
||||
<file category="header" name="ra_cfg/fsp_cfg/r_ioport_cfg.h" path=""/>
|
||||
<file category="header" name="ra_cfg/fsp_cfg/r_sci_b_uart_cfg.h" path=""/>
|
||||
</files>
|
||||
</component>
|
||||
<component Cclass="Flex Software" Cgroup="Generated Data">
|
||||
<files>
|
||||
<file category="include" name="ra_gen/"/>
|
||||
<file category="header" name="ra_gen/bsp_clock_cfg.h" path=""/>
|
||||
<file category="source" name="ra_gen/common_data.c"/>
|
||||
<file category="header" name="ra_gen/common_data.h" path=""/>
|
||||
<file category="source" name="ra_gen/hal_data.c"/>
|
||||
<file category="header" name="ra_gen/hal_data.h" path=""/>
|
||||
<file category="source" name="ra_gen/main.c"/>
|
||||
<file category="source" name="ra_gen/pin_data.c"/>
|
||||
<file category="source" name="ra_gen/vector_data.c"/>
|
||||
<file category="header" name="ra_gen/vector_data.h" path=""/>
|
||||
</files>
|
||||
</component>
|
||||
<component Cclass="Flex Software" Cgroup="Linker Script">
|
||||
<files>
|
||||
<file category="linkerScript" name="script/fsp.scat"/>
|
||||
</files>
|
||||
</component>
|
||||
</components>
|
||||
</package>
|
||||
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"definedMacros": [
|
||||
"_RA_CORE=CPU0",
|
||||
"_RA_ORDINAL=1",
|
||||
"_RENESAS_RA_"
|
||||
],
|
||||
"sourcePaths": [
|
||||
"ra",
|
||||
"ra_gen",
|
||||
"src"
|
||||
],
|
||||
"excludedFilePaths": [],
|
||||
"includePaths": [
|
||||
"ra/arm/CMSIS_6/CMSIS/Core/Include",
|
||||
"ra/fsp/inc",
|
||||
"ra/fsp/inc/api",
|
||||
"ra/fsp/inc/instances",
|
||||
"ra_cfg/fsp_cfg",
|
||||
"ra_cfg/fsp_cfg/bsp",
|
||||
"ra_gen",
|
||||
"src"
|
||||
],
|
||||
"libraryPaths": [],
|
||||
"libraryNames": [],
|
||||
"objectFiles": [],
|
||||
"linkerScript": "script/fsp.ld",
|
||||
"targetDeviceName": "R7KA8P1KFLCAC",
|
||||
"entrySymbol": "Reset_Handler",
|
||||
"isPreBuildContentGenEnabled": true,
|
||||
"isPostBuildContentGenEnabled": true,
|
||||
"isTargetDeviceSupportsTrustZone": true,
|
||||
"buildOptionsMap": {},
|
||||
"targetDeviceCommand": "R7KA8P1KF",
|
||||
"targetCoreName": "CPU0"
|
||||
}
|
||||
|
After Width: | Height: | Size: 60 KiB |
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 135 KiB |
|
After Width: | Height: | Size: 84 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 81 KiB |
|
After Width: | Height: | Size: 35 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 75 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 111 KiB |
|
After Width: | Height: | Size: 68 KiB |
@@ -0,0 +1,59 @@
|
||||
Import('RTT_ROOT')
|
||||
Import('rtconfig')
|
||||
from building import *
|
||||
from gcc import *
|
||||
|
||||
cwd = GetCurrentDir()
|
||||
src = []
|
||||
group = []
|
||||
CPPPATH = []
|
||||
|
||||
if rtconfig.PLATFORM in ['iccarm'] + GetGCCLikePLATFORM():
|
||||
if rtconfig.PLATFORM == 'iccarm' or GetOption('target') != 'mdk5':
|
||||
src += Glob('./fsp/src/bsp/mcu/all/*.c')
|
||||
src += Glob('./fsp/src/bsp/mcu/ra8p1/*.c')
|
||||
src += Glob('./fsp/src/bsp/cmsis/Device/RENESAS/Source/system.c')
|
||||
src += Glob('./fsp/src/bsp/cmsis/Device/RENESAS/Source/startup.c')
|
||||
src += Glob('./fsp/src/r_*/*.c')
|
||||
src += Glob('./npu/ethos-u-core-driver/src/*.c')
|
||||
src += Glob('./fsp/src/rm_ethosu/*.c')
|
||||
|
||||
CPPPATH = [ cwd + '/arm/CMSIS_6/CMSIS/Core/Include',
|
||||
cwd + '/fsp/inc',
|
||||
cwd + '/fsp/inc/api',
|
||||
cwd + '/fsp/inc/instances',
|
||||
cwd + '/fsp/src/rm_ethosu',
|
||||
cwd + '/npu/ethos-u-core-driver/include',
|
||||
]
|
||||
|
||||
if GetDepend('BSP_USING_G2D'):
|
||||
src += Glob(cwd + '/tes/dave2d/src/*.c')
|
||||
|
||||
if GetDepend('BSP_USING_RA8P1_USB'):
|
||||
src += Glob('./fsp/src/r_usb_basic/src/driver/*.c')
|
||||
src += Glob('./fsp/src/r_usb_basic/src/hw/*.c')
|
||||
CPPPATH += [cwd + '/fsp/src/r_usb_basic/src/driver/inc',
|
||||
cwd + '/fsp/src/r_usb_basic/src/hw/inc']
|
||||
|
||||
if GetDepend('BSP_USING_USB_PCDC'):
|
||||
src += Glob('./fsp/src/r_usb_pcdc/src/*.c')
|
||||
CPPPATH += [cwd + '/fsp/src/r_usb_pcdc/inc']
|
||||
|
||||
if GetDepend('BSP_USING_USB_HHID'):
|
||||
src += Glob('./fsp/src/r_usb_hhid/src/*.c')
|
||||
CPPPATH += [cwd + '/fsp/src/r_usb_hhid/inc']
|
||||
|
||||
if GetDepend('BSP_USING_MIPI_CSI_CAMERA'):
|
||||
src += Glob('./fsp/src/r_mipi_csi/*.c')
|
||||
src += Glob('./fsp/src/r_vin/*.c')
|
||||
CPPPATH += [cwd + '/fsp/src/r_mipi_csi']
|
||||
CPPPATH += [cwd + '/fsp/src/r_vin']
|
||||
|
||||
CPPPATH += [
|
||||
cwd + '/tes/dave2d/inc',
|
||||
cwd + '/fsp/src/r_mipi_csi',
|
||||
cwd + '/fsp/src/r_vin'
|
||||
]
|
||||
|
||||
group = DefineGroup('RA', src, depend = [''], CPPPATH = CPPPATH)
|
||||
Return('group')
|
||||
@@ -0,0 +1,190 @@
|
||||
/*
|
||||
* Copyright (c) 2017-2020 ARM Limited. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the License); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an AS IS BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/*
|
||||
* CMSIS-Core(A) Interrupt Controller API Header File
|
||||
*/
|
||||
|
||||
#ifndef IRQ_CTRL_H_
|
||||
#define IRQ_CTRL_H_
|
||||
|
||||
#if defined ( __ICCARM__ )
|
||||
#pragma system_include /* treat file as system include file for MISRA check */
|
||||
#elif defined (__clang__)
|
||||
#pragma clang system_header /* treat file as system include file */
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifndef IRQHANDLER_T
|
||||
#define IRQHANDLER_T
|
||||
/// Interrupt handler data type
|
||||
typedef void (*IRQHandler_t) (void);
|
||||
#endif
|
||||
|
||||
#ifndef IRQN_ID_T
|
||||
#define IRQN_ID_T
|
||||
/// Interrupt ID number data type
|
||||
typedef int32_t IRQn_ID_t;
|
||||
#endif
|
||||
|
||||
/* Interrupt mode bit-masks */
|
||||
#define IRQ_MODE_TRIG_Pos (0U)
|
||||
#define IRQ_MODE_TRIG_Msk (0x07UL /*<< IRQ_MODE_TRIG_Pos*/)
|
||||
#define IRQ_MODE_TRIG_LEVEL (0x00UL /*<< IRQ_MODE_TRIG_Pos*/) ///< Trigger: level triggered interrupt
|
||||
#define IRQ_MODE_TRIG_LEVEL_LOW (0x01UL /*<< IRQ_MODE_TRIG_Pos*/) ///< Trigger: low level triggered interrupt
|
||||
#define IRQ_MODE_TRIG_LEVEL_HIGH (0x02UL /*<< IRQ_MODE_TRIG_Pos*/) ///< Trigger: high level triggered interrupt
|
||||
#define IRQ_MODE_TRIG_EDGE (0x04UL /*<< IRQ_MODE_TRIG_Pos*/) ///< Trigger: edge triggered interrupt
|
||||
#define IRQ_MODE_TRIG_EDGE_RISING (0x05UL /*<< IRQ_MODE_TRIG_Pos*/) ///< Trigger: rising edge triggered interrupt
|
||||
#define IRQ_MODE_TRIG_EDGE_FALLING (0x06UL /*<< IRQ_MODE_TRIG_Pos*/) ///< Trigger: falling edge triggered interrupt
|
||||
#define IRQ_MODE_TRIG_EDGE_BOTH (0x07UL /*<< IRQ_MODE_TRIG_Pos*/) ///< Trigger: rising and falling edge triggered interrupt
|
||||
|
||||
#define IRQ_MODE_TYPE_Pos (3U)
|
||||
#define IRQ_MODE_TYPE_Msk (0x01UL << IRQ_MODE_TYPE_Pos)
|
||||
#define IRQ_MODE_TYPE_IRQ (0x00UL << IRQ_MODE_TYPE_Pos) ///< Type: interrupt source triggers CPU IRQ line
|
||||
#define IRQ_MODE_TYPE_FIQ (0x01UL << IRQ_MODE_TYPE_Pos) ///< Type: interrupt source triggers CPU FIQ line
|
||||
|
||||
#define IRQ_MODE_DOMAIN_Pos (4U)
|
||||
#define IRQ_MODE_DOMAIN_Msk (0x01UL << IRQ_MODE_DOMAIN_Pos)
|
||||
#define IRQ_MODE_DOMAIN_NONSECURE (0x00UL << IRQ_MODE_DOMAIN_Pos) ///< Domain: interrupt is targeting non-secure domain
|
||||
#define IRQ_MODE_DOMAIN_SECURE (0x01UL << IRQ_MODE_DOMAIN_Pos) ///< Domain: interrupt is targeting secure domain
|
||||
|
||||
#define IRQ_MODE_CPU_Pos (5U)
|
||||
#define IRQ_MODE_CPU_Msk (0xFFUL << IRQ_MODE_CPU_Pos)
|
||||
#define IRQ_MODE_CPU_ALL (0x00UL << IRQ_MODE_CPU_Pos) ///< CPU: interrupt targets all CPUs
|
||||
#define IRQ_MODE_CPU_0 (0x01UL << IRQ_MODE_CPU_Pos) ///< CPU: interrupt targets CPU 0
|
||||
#define IRQ_MODE_CPU_1 (0x02UL << IRQ_MODE_CPU_Pos) ///< CPU: interrupt targets CPU 1
|
||||
#define IRQ_MODE_CPU_2 (0x04UL << IRQ_MODE_CPU_Pos) ///< CPU: interrupt targets CPU 2
|
||||
#define IRQ_MODE_CPU_3 (0x08UL << IRQ_MODE_CPU_Pos) ///< CPU: interrupt targets CPU 3
|
||||
#define IRQ_MODE_CPU_4 (0x10UL << IRQ_MODE_CPU_Pos) ///< CPU: interrupt targets CPU 4
|
||||
#define IRQ_MODE_CPU_5 (0x20UL << IRQ_MODE_CPU_Pos) ///< CPU: interrupt targets CPU 5
|
||||
#define IRQ_MODE_CPU_6 (0x40UL << IRQ_MODE_CPU_Pos) ///< CPU: interrupt targets CPU 6
|
||||
#define IRQ_MODE_CPU_7 (0x80UL << IRQ_MODE_CPU_Pos) ///< CPU: interrupt targets CPU 7
|
||||
|
||||
// Encoding in some early GIC implementations
|
||||
#define IRQ_MODE_MODEL_Pos (13U)
|
||||
#define IRQ_MODE_MODEL_Msk (0x1UL << IRQ_MODE_MODEL_Pos)
|
||||
#define IRQ_MODE_MODEL_NN (0x0UL << IRQ_MODE_MODEL_Pos) ///< Corresponding interrupt is handled using the N-N model
|
||||
#define IRQ_MODE_MODEL_1N (0x1UL << IRQ_MODE_MODEL_Pos) ///< Corresponding interrupt is handled using the 1-N model
|
||||
|
||||
#define IRQ_MODE_ERROR (0x80000000UL) ///< Bit indicating mode value error
|
||||
|
||||
/* Interrupt priority bit-masks */
|
||||
#define IRQ_PRIORITY_Msk (0x0000FFFFUL) ///< Interrupt priority value bit-mask
|
||||
#define IRQ_PRIORITY_ERROR (0x80000000UL) ///< Bit indicating priority value error
|
||||
|
||||
/// Initialize interrupt controller.
|
||||
/// \return 0 on success, -1 on error.
|
||||
int32_t IRQ_Initialize (void);
|
||||
|
||||
/// Register interrupt handler.
|
||||
/// \param[in] irqn interrupt ID number
|
||||
/// \param[in] handler interrupt handler function address
|
||||
/// \return 0 on success, -1 on error.
|
||||
int32_t IRQ_SetHandler (IRQn_ID_t irqn, IRQHandler_t handler);
|
||||
|
||||
/// Get the registered interrupt handler.
|
||||
/// \param[in] irqn interrupt ID number
|
||||
/// \return registered interrupt handler function address.
|
||||
IRQHandler_t IRQ_GetHandler (IRQn_ID_t irqn);
|
||||
|
||||
/// Enable interrupt.
|
||||
/// \param[in] irqn interrupt ID number
|
||||
/// \return 0 on success, -1 on error.
|
||||
int32_t IRQ_Enable (IRQn_ID_t irqn);
|
||||
|
||||
/// Disable interrupt.
|
||||
/// \param[in] irqn interrupt ID number
|
||||
/// \return 0 on success, -1 on error.
|
||||
int32_t IRQ_Disable (IRQn_ID_t irqn);
|
||||
|
||||
/// Get interrupt enable state.
|
||||
/// \param[in] irqn interrupt ID number
|
||||
/// \return 0 - interrupt is disabled, 1 - interrupt is enabled.
|
||||
uint32_t IRQ_GetEnableState (IRQn_ID_t irqn);
|
||||
|
||||
/// Configure interrupt request mode.
|
||||
/// \param[in] irqn interrupt ID number
|
||||
/// \param[in] mode mode configuration
|
||||
/// \return 0 on success, -1 on error.
|
||||
int32_t IRQ_SetMode (IRQn_ID_t irqn, uint32_t mode);
|
||||
|
||||
/// Get interrupt mode configuration.
|
||||
/// \param[in] irqn interrupt ID number
|
||||
/// \return current interrupt mode configuration with optional IRQ_MODE_ERROR bit set.
|
||||
uint32_t IRQ_GetMode (IRQn_ID_t irqn);
|
||||
|
||||
/// Get ID number of current interrupt request (IRQ).
|
||||
/// \return interrupt ID number.
|
||||
IRQn_ID_t IRQ_GetActiveIRQ (void);
|
||||
|
||||
/// Get ID number of current fast interrupt request (FIQ).
|
||||
/// \return interrupt ID number.
|
||||
IRQn_ID_t IRQ_GetActiveFIQ (void);
|
||||
|
||||
/// Signal end of interrupt processing.
|
||||
/// \param[in] irqn interrupt ID number
|
||||
/// \return 0 on success, -1 on error.
|
||||
int32_t IRQ_EndOfInterrupt (IRQn_ID_t irqn);
|
||||
|
||||
/// Set interrupt pending flag.
|
||||
/// \param[in] irqn interrupt ID number
|
||||
/// \return 0 on success, -1 on error.
|
||||
int32_t IRQ_SetPending (IRQn_ID_t irqn);
|
||||
|
||||
/// Get interrupt pending flag.
|
||||
/// \param[in] irqn interrupt ID number
|
||||
/// \return 0 - interrupt is not pending, 1 - interrupt is pending.
|
||||
uint32_t IRQ_GetPending (IRQn_ID_t irqn);
|
||||
|
||||
/// Clear interrupt pending flag.
|
||||
/// \param[in] irqn interrupt ID number
|
||||
/// \return 0 on success, -1 on error.
|
||||
int32_t IRQ_ClearPending (IRQn_ID_t irqn);
|
||||
|
||||
/// Set interrupt priority value.
|
||||
/// \param[in] irqn interrupt ID number
|
||||
/// \param[in] priority interrupt priority value
|
||||
/// \return 0 on success, -1 on error.
|
||||
int32_t IRQ_SetPriority (IRQn_ID_t irqn, uint32_t priority);
|
||||
|
||||
/// Get interrupt priority.
|
||||
/// \param[in] irqn interrupt ID number
|
||||
/// \return current interrupt priority value with optional IRQ_PRIORITY_ERROR bit set.
|
||||
uint32_t IRQ_GetPriority (IRQn_ID_t irqn);
|
||||
|
||||
/// Set priority masking threshold.
|
||||
/// \param[in] priority priority masking threshold value
|
||||
/// \return 0 on success, -1 on error.
|
||||
int32_t IRQ_SetPriorityMask (uint32_t priority);
|
||||
|
||||
/// Get priority masking threshold
|
||||
/// \return current priority masking threshold value with optional IRQ_PRIORITY_ERROR bit set.
|
||||
uint32_t IRQ_GetPriorityMask (void);
|
||||
|
||||
/// Set priority grouping field split point
|
||||
/// \param[in] bits number of MSB bits included in the group priority field comparison
|
||||
/// \return 0 on success, -1 on error.
|
||||
int32_t IRQ_SetPriorityGroupBits (uint32_t bits);
|
||||
|
||||
/// Get priority grouping field split point
|
||||
/// \return current number of MSB bits included in the group priority field comparison with
|
||||
/// optional IRQ_PRIORITY_ERROR bit set.
|
||||
uint32_t IRQ_GetPriorityGroupBits (void);
|
||||
|
||||
#endif // IRQ_CTRL_H_
|
||||
@@ -0,0 +1,44 @@
|
||||
/*
|
||||
* Copyright (c) 2009-2023 ARM Limited. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the License); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an AS IS BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/*
|
||||
* CMSIS Core Version Definitions
|
||||
*/
|
||||
|
||||
#if defined ( __ICCARM__ )
|
||||
#pragma system_include /* treat file as system include file for MISRA check */
|
||||
#elif defined (__clang__)
|
||||
#pragma clang system_header /* treat file as system include file */
|
||||
#endif
|
||||
|
||||
#ifndef __CMSIS_VERSION_H
|
||||
#define __CMSIS_VERSION_H
|
||||
|
||||
/* CMSIS-Core(M) Version definitions */
|
||||
#define __CM_CMSIS_VERSION_MAIN ( 6U) /*!< \brief [31:16] CMSIS-Core(M) main version */
|
||||
#define __CM_CMSIS_VERSION_SUB ( 1U) /*!< \brief [15:0] CMSIS-Core(M) sub version */
|
||||
#define __CM_CMSIS_VERSION ((__CM_CMSIS_VERSION_MAIN << 16U) | \
|
||||
__CM_CMSIS_VERSION_SUB ) /*!< \brief CMSIS Core(M) version number */
|
||||
|
||||
/* CMSIS-Core(A) Version definitions */
|
||||
#define __CA_CMSIS_VERSION_MAIN ( 6U) /*!< \brief [31:16] CMSIS-Core(A) main version */
|
||||
#define __CA_CMSIS_VERSION_SUB ( 1U) /*!< \brief [15:0] CMSIS-Core(A) sub version */
|
||||
#define __CA_CMSIS_VERSION ((__CA_CMSIS_VERSION_MAIN << 16U) | \
|
||||
__CA_CMSIS_VERSION_SUB ) /*!< \brief CMSIS-Core(A) version number */
|
||||
|
||||
#endif
|
||||