fixup __forceinline for cpp code and add kitchen_sink cpp test (#670)
* fix __force_inline for different GCC versions in cpp mode (the affected versions are different from c mode), and build kitchsink.c as a cpp file too for testing * silly bug in host platform.h
This commit is contained in:
@ -1,7 +1,4 @@
|
||||
add_library(kitchen_sink_libs INTERFACE)
|
||||
target_sources(kitchen_sink_libs INTERFACE
|
||||
${CMAKE_CURRENT_LIST_DIR}/kitchen_sink.c
|
||||
)
|
||||
target_link_libraries(kitchen_sink_libs INTERFACE
|
||||
hardware_adc
|
||||
hardware_clocks
|
||||
@ -91,12 +88,12 @@ target_compile_definitions(kitchen_sink_libs INTERFACE
|
||||
PICO_AUDIO_DMA_IRQ=1
|
||||
)
|
||||
|
||||
add_executable(kitchen_sink)
|
||||
add_executable(kitchen_sink ${CMAKE_CURRENT_LIST_DIR}/kitchen_sink.c)
|
||||
target_link_libraries(kitchen_sink kitchen_sink_libs kitchen_sink_options)
|
||||
pico_set_program_name(kitchen_sink "Wombat tentacles")
|
||||
pico_add_extra_outputs(kitchen_sink)
|
||||
|
||||
add_executable(kitchen_sink_extra_stdio)
|
||||
add_executable(kitchen_sink_extra_stdio ${CMAKE_CURRENT_LIST_DIR}/kitchen_sink.c)
|
||||
if (COMMAND suppress_tinyusb_warnings)
|
||||
# Explicitly suppress warnings in TinyUSB files which have them (this has to be done
|
||||
# from the project that uses them per CMake "feature"). Note the function comes from
|
||||
@ -108,13 +105,17 @@ pico_add_extra_outputs(kitchen_sink_extra_stdio)
|
||||
pico_enable_stdio_usb(kitchen_sink_extra_stdio 1)
|
||||
pico_enable_stdio_semihosting(kitchen_sink_extra_stdio 1)
|
||||
|
||||
add_executable(kitchen_sink_copy_to_ram)
|
||||
add_executable(kitchen_sink_copy_to_ram ${CMAKE_CURRENT_LIST_DIR}/kitchen_sink.c)
|
||||
pico_set_binary_type(kitchen_sink_copy_to_ram copy_to_ram)
|
||||
target_link_libraries(kitchen_sink_copy_to_ram kitchen_sink_libs kitchen_sink_options)
|
||||
pico_add_extra_outputs(kitchen_sink_copy_to_ram)
|
||||
|
||||
add_executable(kitchen_sink_no_flash)
|
||||
add_executable(kitchen_sink_no_flash ${CMAKE_CURRENT_LIST_DIR}/kitchen_sink.c)
|
||||
pico_set_binary_type(kitchen_sink_no_flash no_flash)
|
||||
target_link_libraries(kitchen_sink_no_flash kitchen_sink_libs kitchen_sink_options)
|
||||
pico_add_extra_outputs(kitchen_sink_no_flash)
|
||||
|
||||
add_executable(kitchen_sink_cpp ${CMAKE_CURRENT_LIST_DIR}/kitchen_sink_cpp.cpp)
|
||||
target_link_libraries(kitchen_sink_cpp kitchen_sink_libs kitchen_sink_options)
|
||||
pico_set_program_name(kitchen_sink_cpp "Wombat tentacles CPP")
|
||||
pico_add_extra_outputs(kitchen_sink_cpp)
|
||||
|
@ -97,7 +97,7 @@ uint32_t *foo = (uint32_t *) 200;
|
||||
uint32_t dma_to = 0;
|
||||
uint32_t dma_from = 0xaaaa5555;
|
||||
|
||||
void spiggle(void) {
|
||||
void __noinline spiggle(void) {
|
||||
dma_channel_config c = dma_channel_get_default_config(1);
|
||||
channel_config_set_bswap(&c, true);
|
||||
channel_config_set_transfer_data_size(&c, DMA_SIZE_16);
|
||||
@ -106,6 +106,10 @@ void spiggle(void) {
|
||||
dma_channel_transfer_from_buffer_now(1, foo, 23);
|
||||
}
|
||||
|
||||
__force_inline int something_inlined(int x) {
|
||||
return x * 2;
|
||||
}
|
||||
|
||||
void __isr dma_handler_a(void) {
|
||||
printf("HELLO A\n");
|
||||
if (dma_hw->ints1 & 1) {
|
||||
@ -131,7 +135,7 @@ int main(void) {
|
||||
|
||||
stdio_init_all();
|
||||
|
||||
printf("HI %d\n", (int)time_us_32());
|
||||
printf("HI %d\n", something_inlined((int)time_us_32()));
|
||||
puts("Hello Everything!");
|
||||
puts("Hello Everything2!");
|
||||
|
||||
|
1
test/kitchen_sink/kitchen_sink_cpp.cpp
Normal file
1
test/kitchen_sink/kitchen_sink_cpp.cpp
Normal file
@ -0,0 +1 @@
|
||||
#include "kitchen_sink.c"
|
Reference in New Issue
Block a user