- clang h743 build and run cdc_msc ok
- switch unit test back to gcc, since path to clang conflict on local setup (x86 and arm)
This commit is contained in:
@@ -18,7 +18,6 @@ elseif (TOOLCHAIN STREQUAL "clang")
|
|||||||
set(TOOLCHAIN_COMMON_FLAGS
|
set(TOOLCHAIN_COMMON_FLAGS
|
||||||
--target=arm-none-eabi
|
--target=arm-none-eabi
|
||||||
-mcpu=cortex-m7
|
-mcpu=cortex-m7
|
||||||
-mfloat-abi=hard
|
|
||||||
-mfpu=fpv5-d16
|
-mfpu=fpv5-d16
|
||||||
)
|
)
|
||||||
set(FREERTOS_PORT GCC_ARM_CM7 CACHE INTERNAL "")
|
set(FREERTOS_PORT GCC_ARM_CM7 CACHE INTERNAL "")
|
||||||
|
@@ -45,7 +45,7 @@ elseif (TOOLCHAIN STREQUAL "clang")
|
|||||||
list(APPEND TOOLCHAIN_EXE_LINKER_FLAGS
|
list(APPEND TOOLCHAIN_EXE_LINKER_FLAGS
|
||||||
-Wl,--print-memory-usage
|
-Wl,--print-memory-usage
|
||||||
-Wl,--gc-sections
|
-Wl,--gc-sections
|
||||||
-Wl,--cref
|
#-Wl,--cref
|
||||||
)
|
)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
@@ -108,6 +108,25 @@ TU_ATTR_USED int sys_read (int fhdl, char *buf, size_t count) {
|
|||||||
// st->st_mode = S_IFCHR;
|
// st->st_mode = S_IFCHR;
|
||||||
//}
|
//}
|
||||||
|
|
||||||
|
// Clang use picolibc
|
||||||
|
#if defined(__clang__)
|
||||||
|
static int cl_putc(char c, FILE *f) {
|
||||||
|
(void) f;
|
||||||
|
return sys_write(0, &c, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int cl_getc(FILE* f) {
|
||||||
|
(void) f;
|
||||||
|
char c;
|
||||||
|
return sys_read(0, &c, 1) > 0 ? c : -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static FILE __stdio = FDEV_SETUP_STREAM(cl_putc, cl_getc, NULL, _FDEV_SETUP_RW);
|
||||||
|
FILE *const stdin = &__stdio;
|
||||||
|
__strong_reference(stdin, stdout);
|
||||||
|
__strong_reference(stdin, stderr);
|
||||||
|
#endif
|
||||||
|
|
||||||
int board_getchar(void) {
|
int board_getchar(void) {
|
||||||
char c;
|
char c;
|
||||||
return (sys_read(0, &c, 1) > 0) ? (int) c : (-1);
|
return (sys_read(0, &c, 1) > 0) ? (int) c : (-1);
|
||||||
|
@@ -56,10 +56,8 @@ function(add_board_target BOARD_TARGET)
|
|||||||
${ST_CMSIS}/Include
|
${ST_CMSIS}/Include
|
||||||
${ST_HAL_DRIVER}/Inc
|
${ST_HAL_DRIVER}/Inc
|
||||||
)
|
)
|
||||||
target_compile_options(${BOARD_TARGET} PUBLIC
|
#target_compile_options(${BOARD_TARGET} PUBLIC)
|
||||||
)
|
#target_compile_definitions(${BOARD_TARGET} PUBLIC)
|
||||||
target_compile_definitions(${BOARD_TARGET} PUBLIC
|
|
||||||
)
|
|
||||||
|
|
||||||
update_board(${BOARD_TARGET})
|
update_board(${BOARD_TARGET})
|
||||||
|
|
||||||
@@ -75,6 +73,7 @@ function(add_board_target BOARD_TARGET)
|
|||||||
)
|
)
|
||||||
elseif (CMAKE_C_COMPILER_ID STREQUAL "Clang")
|
elseif (CMAKE_C_COMPILER_ID STREQUAL "Clang")
|
||||||
target_link_options(${BOARD_TARGET} PUBLIC
|
target_link_options(${BOARD_TARGET} PUBLIC
|
||||||
|
#-ldummyhost
|
||||||
"LINKER:--script=${LD_FILE_GNU}"
|
"LINKER:--script=${LD_FILE_GNU}"
|
||||||
)
|
)
|
||||||
endif ()
|
endif ()
|
||||||
|
@@ -65,6 +65,7 @@
|
|||||||
// Standard Headers
|
// Standard Headers
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include <inttypes.h>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
@@ -174,7 +174,7 @@ static bool fifo_alloc(uint8_t rhport, uint8_t ep_addr, uint16_t packet_size) {
|
|||||||
// Check if free space is available
|
// Check if free space is available
|
||||||
TU_ASSERT(_allocated_fifo_words_tx + fifo_size + dwc2->grxfsiz <= _dwc2_controller[rhport].ep_fifo_size / 4);
|
TU_ASSERT(_allocated_fifo_words_tx + fifo_size + dwc2->grxfsiz <= _dwc2_controller[rhport].ep_fifo_size / 4);
|
||||||
_allocated_fifo_words_tx += fifo_size;
|
_allocated_fifo_words_tx += fifo_size;
|
||||||
TU_LOG(DWC2_DEBUG, " Allocated %u bytes at offset %lu", fifo_size * 4,
|
TU_LOG(DWC2_DEBUG, " Allocated %u bytes at offset %" PRIu32, fifo_size * 4,
|
||||||
_dwc2_controller[rhport].ep_fifo_size - _allocated_fifo_words_tx * 4);
|
_dwc2_controller[rhport].ep_fifo_size - _allocated_fifo_words_tx * 4);
|
||||||
|
|
||||||
// DIEPTXF starts at FIFO #1.
|
// DIEPTXF starts at FIFO #1.
|
||||||
@@ -419,9 +419,9 @@ void print_dwc2_info(dwc2_regs_t* dwc2) {
|
|||||||
volatile uint32_t const* p = (volatile uint32_t const*) &dwc2->guid;
|
volatile uint32_t const* p = (volatile uint32_t const*) &dwc2->guid;
|
||||||
TU_LOG(DWC2_DEBUG, "guid, gsnpsid, ghwcfg1, ghwcfg2, ghwcfg3, ghwcfg4\r\n");
|
TU_LOG(DWC2_DEBUG, "guid, gsnpsid, ghwcfg1, ghwcfg2, ghwcfg3, ghwcfg4\r\n");
|
||||||
for (size_t i = 0; i < 5; i++) {
|
for (size_t i = 0; i < 5; i++) {
|
||||||
TU_LOG(DWC2_DEBUG, "0x%08lX, ", p[i]);
|
TU_LOG(DWC2_DEBUG, "0x%08" PRIX32 ", ", p[i]);
|
||||||
}
|
}
|
||||||
TU_LOG(DWC2_DEBUG, "0x%08lX\r\n", p[5]);
|
TU_LOG(DWC2_DEBUG, "0x%08" PRIX32 "\r\n", p[5]);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@@ -81,20 +81,20 @@
|
|||||||
|
|
||||||
:tools:
|
:tools:
|
||||||
:test_compiler:
|
:test_compiler:
|
||||||
:executable: clang
|
:executable: gcc
|
||||||
:name: 'clang compiler'
|
:name: 'gcc compiler'
|
||||||
:arguments:
|
:arguments:
|
||||||
- -I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE #expands to -I search paths
|
- -I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE #expands to -I search paths
|
||||||
- -I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR #expands to -I search paths
|
- -I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR #expands to -I search paths
|
||||||
- -D$: COLLECTION_DEFINES_TEST_AND_VENDOR #expands to all -D defined symbols
|
- -D$: COLLECTION_DEFINES_TEST_AND_VENDOR #expands to all -D defined symbols
|
||||||
- -fsanitize=address
|
#- -fsanitize=address
|
||||||
- -c ${1} #source code input file (Ruby method call param list sub)
|
- -c ${1} #source code input file (Ruby method call param list sub)
|
||||||
- -o ${2} #object file output (Ruby method call param list sub)
|
- -o ${2} #object file output (Ruby method call param list sub)
|
||||||
:test_linker:
|
:test_linker:
|
||||||
:executable: clang
|
:executable: gcc
|
||||||
:name: 'clang linker'
|
:name: 'gcc linker'
|
||||||
:arguments:
|
:arguments:
|
||||||
- -fsanitize=address
|
#- -fsanitize=address
|
||||||
- ${1} #list of object files to link (Ruby method call param list sub)
|
- ${1} #list of object files to link (Ruby method call param list sub)
|
||||||
- -o ${2} #executable file output (Ruby method call param list sub)
|
- -o ${2} #executable file output (Ruby method call param list sub)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user