-
Notifications
You must be signed in to change notification settings - Fork 12
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
imx8mm-var-dart: Add support for DART-MX8M-MINI
Supported demos: driver_examples/i2c/interrupt_b2b_transfer/slave driver_examples/i2c/interrupt_b2b_transfer/master driver_examples/i2c/polling_b2b_transfer/slave driver_examples/i2c/polling_b2b_transfer/master driver_examples/wdog driver_examples/sdma/scatter_gather driver_examples/sdma/memory_to_memory driver_examples/gpio/led_output driver_examples/pwm driver_examples/uart/auto_baudrate_detect driver_examples/uart/interrupt driver_examples/uart/idle_detect_sdma_transfer driver_examples/uart/interrupt_rb_transfer driver_examples/uart/sdma_transfer driver_examples/uart/polling driver_examples/uart/interrupt_transfer driver_examples/gpt/timer driver_examples/gpt/capture driver_examples/ecspi/ecspi_loopback driver_examples/ecspi/interrupt_b2b_transfer/slave driver_examples/ecspi/interrupt_b2b_transfer/master driver_examples/ecspi/polling_b2b_transfer/slave driver_examples/ecspi/polling_b2b_transfer/master driver_examples/rdc driver_examples/tmu_1/monitor_threshold driver_examples/tmu_1/temperature_polling driver_examples/sema4/uboot freertos_examples/freertos_hello freertos_examples/freertos_queue freertos_examples/freertos_sem freertos_examples/freertos_generic freertos_examples/freertos_tickless freertos_examples/freertos_mutex freertos_examples/freertos_event freertos_examples/freertos_swtimer cmsis_driver_examples/i2c/int_b2b_transfer/slave cmsis_driver_examples/i2c/int_b2b_transfer/master cmsis_driver_examples/uart/sdma_transfer cmsis_driver_examples/uart/interrupt_transfer cmsis_driver_examples/ecspi/int_loopback_transfer cmsis_driver_examples/ecspi/sdma_loopback_transfer multicore_examples/rpmsg_lite_str_echo_rtos multicore_examples/rpmsg_lite_pingpong_rtos/linux_remote demo_apps/hello_world Signed-off-by: Andre Morishita <[email protected]>
- Loading branch information
1 parent
7bb0571
commit 4667217
Showing
1,487 changed files
with
143,480 additions
and
0 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
23 changes: 23 additions & 0 deletions
23
boards/dart_mx8mm/cmsis_driver_examples/ecspi/int_loopback_transfer/RTE_Device.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
/* | ||
* Copyright 2018,2020 NXP | ||
* All rights reserved. | ||
* | ||
* SPDX-License-Identifier: BSD-3-Clause | ||
*/ | ||
|
||
#ifndef _RTE_DEVICE_H | ||
#define _RTE_DEVICE_H | ||
|
||
extern void ECSPI1_InitPins(); | ||
extern void ECSPI1_DeinitPins(); | ||
|
||
/* Driver name mapping. */ | ||
#define RTE_SPI1 1 | ||
#define RTE_SPI1_DMA_EN 0 | ||
|
||
/* ECSPI configuration. */ | ||
#define RTE_SPI1_PIN_INIT ECSPI1_InitPins | ||
#define RTE_SPI1_PIN_DEINIT ECSPI1_DeinitPins | ||
#define RTE_SPI1_TRANSFER_CHANNEL kECSPI_Channel0 | ||
|
||
#endif /* _RTE_DEVICE_H */ |
82 changes: 82 additions & 0 deletions
82
boards/dart_mx8mm/cmsis_driver_examples/ecspi/int_loopback_transfer/armgcc/CMakeLists.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
# CROSS COMPILER SETTING | ||
SET(CMAKE_SYSTEM_NAME Generic) | ||
CMAKE_MINIMUM_REQUIRED (VERSION 3.10.0) | ||
|
||
# THE VERSION NUMBER | ||
SET (MCUXPRESSO_CMAKE_FORMAT_MAJOR_VERSION 2) | ||
SET (MCUXPRESSO_CMAKE_FORMAT_MINOR_VERSION 0) | ||
|
||
include(ide_overrides.cmake OPTIONAL) | ||
|
||
if(CMAKE_SCRIPT_MODE_FILE) | ||
message("${MCUXPRESSO_CMAKE_FORMAT_MAJOR_VERSION}") | ||
return() | ||
endif() | ||
|
||
|
||
# ENABLE ASM | ||
ENABLE_LANGUAGE(ASM) | ||
|
||
SET(CMAKE_STATIC_LIBRARY_PREFIX) | ||
SET(CMAKE_STATIC_LIBRARY_SUFFIX) | ||
|
||
SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) | ||
SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) | ||
|
||
# CURRENT DIRECTORY | ||
SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) | ||
|
||
SET(EXECUTABLE_OUTPUT_PATH ${ProjDirPath}/${CMAKE_BUILD_TYPE}) | ||
SET(LIBRARY_OUTPUT_PATH ${ProjDirPath}/${CMAKE_BUILD_TYPE}) | ||
|
||
|
||
project(cmsis_ecspi_int_loopback_transfer) | ||
|
||
set(MCUX_BUILD_TYPES debug release ddr_debug ddr_release flash_debug flash_release) | ||
|
||
set(MCUX_SDK_PROJECT_NAME cmsis_ecspi_int_loopback_transfer.elf) | ||
|
||
if (NOT DEFINED SdkRootDirPath) | ||
SET(SdkRootDirPath ${ProjDirPath}/../../../../../..) | ||
endif() | ||
|
||
include(${ProjDirPath}/flags.cmake) | ||
|
||
include(${ProjDirPath}/config.cmake) | ||
|
||
add_executable(${MCUX_SDK_PROJECT_NAME} | ||
"${ProjDirPath}/../cmsis_ecspi_int_loopback_transfer.c" | ||
"${ProjDirPath}/../pin_mux.c" | ||
"${ProjDirPath}/../pin_mux.h" | ||
"${ProjDirPath}/../RTE_Device.h" | ||
"${ProjDirPath}/../board.c" | ||
"${ProjDirPath}/../board.h" | ||
"${ProjDirPath}/../clock_config.c" | ||
"${ProjDirPath}/../clock_config.h" | ||
"${ProjDirPath}/../fsl_iomuxc.h" | ||
"${ProjDirPath}/../empty_rsc_table.c" | ||
) | ||
|
||
target_include_directories(${MCUX_SDK_PROJECT_NAME} PRIVATE | ||
${ProjDirPath}/.. | ||
) | ||
|
||
set_source_files_properties("${ProjDirPath}/../RTE_Device.h" PROPERTIES COMPONENT_CONFIG_FILE "RTE_Device.MIMX8MM6") | ||
|
||
include(${SdkRootDirPath}/devices/MIMX8MM6/all_lib_device.cmake) | ||
|
||
IF(NOT DEFINED TARGET_LINK_SYSTEM_LIBRARIES) | ||
SET(TARGET_LINK_SYSTEM_LIBRARIES "-lm -lc -lgcc -lnosys") | ||
ENDIF() | ||
|
||
TARGET_LINK_LIBRARIES(${MCUX_SDK_PROJECT_NAME} PRIVATE -Wl,--start-group) | ||
|
||
target_link_libraries(${MCUX_SDK_PROJECT_NAME} PRIVATE ${TARGET_LINK_SYSTEM_LIBRARIES}) | ||
|
||
TARGET_LINK_LIBRARIES(${MCUX_SDK_PROJECT_NAME} PRIVATE -Wl,--end-group) | ||
|
||
ADD_CUSTOM_COMMAND(TARGET ${MCUX_SDK_PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_OBJCOPY} | ||
-Obinary ${EXECUTABLE_OUTPUT_PATH}/${MCUX_SDK_PROJECT_NAME} ${EXECUTABLE_OUTPUT_PATH}/cmsis_ecspi_int_loopback_transfer.bin) | ||
|
||
set_target_properties(${MCUX_SDK_PROJECT_NAME} PROPERTIES ADDITIONAL_CLEAN_FILES "output.map;${EXECUTABLE_OUTPUT_PATH}/cmsis_ecspi_int_loopback_transfer.bin") | ||
|
228 changes: 228 additions & 0 deletions
228
...8mm/cmsis_driver_examples/ecspi/int_loopback_transfer/armgcc/MIMX8MM6xxxxx_cm4_ddr_ram.ld
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,228 @@ | ||
/* | ||
** ################################################################### | ||
** Processors: MIMX8MM6CVTKZ | ||
** MIMX8MM6DVTLZ | ||
** | ||
** Compiler: GNU C Compiler | ||
** Reference manual: MX8MMRM, Rev. 0, 02/2019 | ||
** Version: rev. 4.0, 2019-02-18 | ||
** Build: b200330 | ||
** | ||
** Abstract: | ||
** Linker file for the GNU C Compiler | ||
** | ||
** Copyright 2016 Freescale Semiconductor, Inc. | ||
** Copyright 2016-2020 NXP | ||
** All rights reserved. | ||
** | ||
** SPDX-License-Identifier: BSD-3-Clause | ||
** | ||
** http: www.nxp.com | ||
** mail: [email protected] | ||
** | ||
** ################################################################### | ||
*/ | ||
|
||
/* Entry Point */ | ||
ENTRY(Reset_Handler) | ||
|
||
HEAP_SIZE = DEFINED(__heap_size__) ? __heap_size__ : 0x0400; | ||
STACK_SIZE = DEFINED(__stack_size__) ? __stack_size__ : 0x0400; | ||
|
||
/* Specify the memory areas */ | ||
MEMORY | ||
{ | ||
m_interrupts (RX) : ORIGIN = 0x7E000000, LENGTH = 0x00000240 | ||
m_text (RX) : ORIGIN = 0x7E000240, LENGTH = 0x001FFDC0 | ||
m_data (RW) : ORIGIN = 0x7E200000, LENGTH = 0x00200000 | ||
m_data2 (RW) : ORIGIN = 0x7E400000, LENGTH = 0x00C00000 | ||
} | ||
|
||
/* Define output sections */ | ||
SECTIONS | ||
{ | ||
/* The startup code goes first into internal RAM */ | ||
.interrupts : | ||
{ | ||
__VECTOR_TABLE = .; | ||
__Vectors = .; | ||
. = ALIGN(4); | ||
KEEP(*(.isr_vector)) /* Startup code */ | ||
. = ALIGN(4); | ||
} > m_interrupts | ||
|
||
.resource_table : | ||
{ | ||
. = ALIGN(8); | ||
KEEP(*(.resource_table)) /* Resource table */ | ||
. = ALIGN(8); | ||
} > m_text | ||
|
||
/* The program code and other data goes into internal RAM */ | ||
.text : | ||
{ | ||
. = ALIGN(4); | ||
*(.text) /* .text sections (code) */ | ||
*(.text*) /* .text* sections (code) */ | ||
*(.rodata) /* .rodata sections (constants, strings, etc.) */ | ||
*(.rodata*) /* .rodata* sections (constants, strings, etc.) */ | ||
*(.glue_7) /* glue arm to thumb code */ | ||
*(.glue_7t) /* glue thumb to arm code */ | ||
*(.eh_frame) | ||
KEEP (*(.init)) | ||
KEEP (*(.fini)) | ||
. = ALIGN(4); | ||
} > m_text | ||
|
||
.ARM.extab : | ||
{ | ||
*(.ARM.extab* .gnu.linkonce.armextab.*) | ||
} > m_text | ||
|
||
.ARM : | ||
{ | ||
__exidx_start = .; | ||
*(.ARM.exidx*) | ||
__exidx_end = .; | ||
} > m_text | ||
|
||
.ctors : | ||
{ | ||
__CTOR_LIST__ = .; | ||
/* gcc uses crtbegin.o to find the start of | ||
the constructors, so we make sure it is | ||
first. Because this is a wildcard, it | ||
doesn't matter if the user does not | ||
actually link against crtbegin.o; the | ||
linker won't look for a file to match a | ||
wildcard. The wildcard also means that it | ||
doesn't matter which directory crtbegin.o | ||
is in. */ | ||
KEEP (*crtbegin.o(.ctors)) | ||
KEEP (*crtbegin?.o(.ctors)) | ||
/* We don't want to include the .ctor section from | ||
from the crtend.o file until after the sorted ctors. | ||
The .ctor section from the crtend file contains the | ||
end of ctors marker and it must be last */ | ||
KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)) | ||
KEEP (*(SORT(.ctors.*))) | ||
KEEP (*(.ctors)) | ||
__CTOR_END__ = .; | ||
} > m_text | ||
|
||
.dtors : | ||
{ | ||
__DTOR_LIST__ = .; | ||
KEEP (*crtbegin.o(.dtors)) | ||
KEEP (*crtbegin?.o(.dtors)) | ||
KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)) | ||
KEEP (*(SORT(.dtors.*))) | ||
KEEP (*(.dtors)) | ||
__DTOR_END__ = .; | ||
} > m_text | ||
|
||
.preinit_array : | ||
{ | ||
PROVIDE_HIDDEN (__preinit_array_start = .); | ||
KEEP (*(.preinit_array*)) | ||
PROVIDE_HIDDEN (__preinit_array_end = .); | ||
} > m_text | ||
|
||
.init_array : | ||
{ | ||
PROVIDE_HIDDEN (__init_array_start = .); | ||
KEEP (*(SORT(.init_array.*))) | ||
KEEP (*(.init_array*)) | ||
PROVIDE_HIDDEN (__init_array_end = .); | ||
} > m_text | ||
|
||
.fini_array : | ||
{ | ||
PROVIDE_HIDDEN (__fini_array_start = .); | ||
KEEP (*(SORT(.fini_array.*))) | ||
KEEP (*(.fini_array*)) | ||
PROVIDE_HIDDEN (__fini_array_end = .); | ||
} > m_text | ||
|
||
__etext = .; /* define a global symbol at end of code */ | ||
__DATA_ROM = .; /* Symbol is used by startup for data initialization */ | ||
|
||
.data : AT(__DATA_ROM) | ||
{ | ||
. = ALIGN(4); | ||
__DATA_RAM = .; | ||
__data_start__ = .; /* create a global symbol at data start */ | ||
*(.data) /* .data sections */ | ||
*(.data*) /* .data* sections */ | ||
KEEP(*(.jcr*)) | ||
. = ALIGN(4); | ||
__data_end__ = .; /* define a global symbol at data end */ | ||
} > m_data | ||
|
||
__CACHE_REGION_START = ORIGIN(m_interrupts); | ||
__CACHE_REGION_SIZE = LENGTH(m_interrupts) + LENGTH(m_text) + LENGTH(m_data); | ||
|
||
__NDATA_ROM = __DATA_ROM + SIZEOF(.data); /* Symbol is used by startup for ncache data initialization */ | ||
|
||
.ncache.init : AT(__NDATA_ROM) | ||
{ | ||
__noncachedata_start__ = .; /* create a global symbol at ncache data start */ | ||
*(NonCacheable.init) | ||
. = ALIGN(4); | ||
__noncachedata_init_end__ = .; /* create a global symbol at initialized ncache data end */ | ||
} > m_data2 | ||
|
||
. = __noncachedata_init_end__; | ||
.ncache : | ||
{ | ||
*(NonCacheable) | ||
. = ALIGN(4); | ||
__noncachedata_end__ = .; /* define a global symbol at ncache data end */ | ||
} > m_data2 | ||
|
||
__DATA_END = __DATA_ROM + (__data_end__ - __data_start__); | ||
text_end = ORIGIN(m_text) + LENGTH(m_text); | ||
ASSERT(__DATA_END <= text_end, "region m_text overflowed with text and data") | ||
|
||
/* Uninitialized data section */ | ||
.bss : | ||
{ | ||
/* This is used by the startup in order to initialize the .bss section */ | ||
. = ALIGN(4); | ||
__START_BSS = .; | ||
__bss_start__ = .; | ||
*(.bss) | ||
*(.bss*) | ||
*(COMMON) | ||
. = ALIGN(4); | ||
__bss_end__ = .; | ||
__END_BSS = .; | ||
} > m_data | ||
|
||
.heap : | ||
{ | ||
. = ALIGN(8); | ||
__end__ = .; | ||
PROVIDE(end = .); | ||
__HeapBase = .; | ||
. += HEAP_SIZE; | ||
__HeapLimit = .; | ||
__heap_limit = .; /* Add for _sbrk */ | ||
} > m_data | ||
|
||
.stack : | ||
{ | ||
. = ALIGN(8); | ||
. += STACK_SIZE; | ||
} > m_data | ||
|
||
/* Initializes stack on the end of block */ | ||
__StackTop = ORIGIN(m_data) + LENGTH(m_data); | ||
__StackLimit = __StackTop - STACK_SIZE; | ||
PROVIDE(__stack = __StackTop); | ||
|
||
.ARM.attributes 0 : { *(.ARM.attributes) } | ||
|
||
ASSERT(__StackLimit >= __HeapLimit, "region m_data overflowed with stack and heap") | ||
} | ||
|
Oops, something went wrong.