mirror of
https://github.com/hathach/tinyusb.git
synced 2025-03-13 19:19:18 +00:00
- 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:
parent
96f7ca02bf
commit
3442a87d5b
@ -18,7 +18,6 @@ elseif (TOOLCHAIN STREQUAL "clang")
|
||||
set(TOOLCHAIN_COMMON_FLAGS
|
||||
--target=arm-none-eabi
|
||||
-mcpu=cortex-m7
|
||||
-mfloat-abi=hard
|
||||
-mfpu=fpv5-d16
|
||||
)
|
||||
set(FREERTOS_PORT GCC_ARM_CM7 CACHE INTERNAL "")
|
||||
|
@ -45,7 +45,7 @@ elseif (TOOLCHAIN STREQUAL "clang")
|
||||
list(APPEND TOOLCHAIN_EXE_LINKER_FLAGS
|
||||
-Wl,--print-memory-usage
|
||||
-Wl,--gc-sections
|
||||
-Wl,--cref
|
||||
#-Wl,--cref
|
||||
)
|
||||
endif ()
|
||||
|
||||
|
@ -108,6 +108,25 @@ TU_ATTR_USED int sys_read (int fhdl, char *buf, size_t count) {
|
||||
// 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) {
|
||||
char c;
|
||||
return (sys_read(0, &c, 1) > 0) ? (int) c : (-1);
|
||||
|
@ -56,10 +56,8 @@ function(add_board_target BOARD_TARGET)
|
||||
${ST_CMSIS}/Include
|
||||
${ST_HAL_DRIVER}/Inc
|
||||
)
|
||||
target_compile_options(${BOARD_TARGET} PUBLIC
|
||||
)
|
||||
target_compile_definitions(${BOARD_TARGET} PUBLIC
|
||||
)
|
||||
#target_compile_options(${BOARD_TARGET} PUBLIC)
|
||||
#target_compile_definitions(${BOARD_TARGET} PUBLIC)
|
||||
|
||||
update_board(${BOARD_TARGET})
|
||||
|
||||
@ -75,6 +73,7 @@ function(add_board_target BOARD_TARGET)
|
||||
)
|
||||
elseif (CMAKE_C_COMPILER_ID STREQUAL "Clang")
|
||||
target_link_options(${BOARD_TARGET} PUBLIC
|
||||
#-ldummyhost
|
||||
"LINKER:--script=${LD_FILE_GNU}"
|
||||
)
|
||||
endif ()
|
||||
|
@ -65,6 +65,7 @@
|
||||
// Standard Headers
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <inttypes.h>
|
||||
#include <stddef.h>
|
||||
#include <string.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
|
||||
TU_ASSERT(_allocated_fifo_words_tx + fifo_size + dwc2->grxfsiz <= _dwc2_controller[rhport].ep_fifo_size / 4);
|
||||
_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);
|
||||
|
||||
// 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;
|
||||
TU_LOG(DWC2_DEBUG, "guid, gsnpsid, ghwcfg1, ghwcfg2, ghwcfg3, ghwcfg4\r\n");
|
||||
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
|
||||
|
||||
|
@ -81,20 +81,20 @@
|
||||
|
||||
:tools:
|
||||
:test_compiler:
|
||||
:executable: clang
|
||||
:name: 'clang compiler'
|
||||
:executable: gcc
|
||||
:name: 'gcc compiler'
|
||||
:arguments:
|
||||
- -I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE #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
|
||||
- -fsanitize=address
|
||||
#- -fsanitize=address
|
||||
- -c ${1} #source code input file (Ruby method call param list sub)
|
||||
- -o ${2} #object file output (Ruby method call param list sub)
|
||||
:test_linker:
|
||||
:executable: clang
|
||||
:name: 'clang linker'
|
||||
:executable: gcc
|
||||
:name: 'gcc linker'
|
||||
:arguments:
|
||||
- -fsanitize=address
|
||||
#- -fsanitize=address
|
||||
- ${1} #list of object files to link (Ruby method call param list sub)
|
||||
- -o ${2} #executable file output (Ruby method call param list sub)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user