From 9f31765c98c48375cea1bde01f6c297dab343b02 Mon Sep 17 00:00:00 2001 From: Jonathan Williamson Date: Sat, 16 Jan 2021 15:02:18 +0000 Subject: [PATCH] Setup libraries and drivers correctly for CMake --- CMakeLists.txt | 5 ++++- drivers/CMakeLists.txt | 1 + drivers/st7789/CMakeLists.txt | 4 ++++ libraries/CMakeLists.txt | 1 + libraries/pico_graphics/CMakeLists.txt | 1 + pack/display/CMakeLists.txt | 4 +--- pack/unicorn/demo.cpp | 24 ++++++++++++------------ 7 files changed, 24 insertions(+), 16 deletions(-) create mode 100644 drivers/CMakeLists.txt create mode 100644 drivers/st7789/CMakeLists.txt create mode 100644 libraries/CMakeLists.txt create mode 100644 libraries/pico_graphics/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index e89b15af..44a33927 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,5 +10,8 @@ set(CMAKE_CXX_STANDARD 17) # Initialize the SDK pico_sdk_init() -# Example projects +add_subdirectory(drivers) +add_subdirectory(libraries) + +# Example Pico Pack projects add_subdirectory(pack) diff --git a/drivers/CMakeLists.txt b/drivers/CMakeLists.txt new file mode 100644 index 00000000..1642f9a3 --- /dev/null +++ b/drivers/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory(st7789) \ No newline at end of file diff --git a/drivers/st7789/CMakeLists.txt b/drivers/st7789/CMakeLists.txt new file mode 100644 index 00000000..ef26fdc5 --- /dev/null +++ b/drivers/st7789/CMakeLists.txt @@ -0,0 +1,4 @@ +add_library(st7789 st7789.cpp) + +# Pull in pico libraries that we need +target_link_libraries(st7789 pico_stdlib hardware_spi hardware_pwm hardware_dma) diff --git a/libraries/CMakeLists.txt b/libraries/CMakeLists.txt new file mode 100644 index 00000000..4da78a71 --- /dev/null +++ b/libraries/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory(pico_graphics) \ No newline at end of file diff --git a/libraries/pico_graphics/CMakeLists.txt b/libraries/pico_graphics/CMakeLists.txt new file mode 100644 index 00000000..8faab3ba --- /dev/null +++ b/libraries/pico_graphics/CMakeLists.txt @@ -0,0 +1 @@ +add_library(pico_graphics pico_graphics.cpp) \ No newline at end of file diff --git a/pack/display/CMakeLists.txt b/pack/display/CMakeLists.txt index 3d87a9fb..984a17cd 100644 --- a/pack/display/CMakeLists.txt +++ b/pack/display/CMakeLists.txt @@ -3,12 +3,10 @@ add_executable( demo.cpp image_data.cpp pico_display.cpp - ../../../drivers/st7789/st7789.cpp - ../../../libraries/pico_graphics/pico_graphics.cpp ) # Pull in pico libraries that we need -target_link_libraries(display pico_stdlib hardware_spi hardware_pwm hardware_dma) +target_link_libraries(display pico_stdlib hardware_spi hardware_pwm hardware_dma st7789 pico_graphics) # create map/bin/hex file etc. pico_add_extra_outputs(display) \ No newline at end of file diff --git a/pack/unicorn/demo.cpp b/pack/unicorn/demo.cpp index 340a022b..763e9f63 100644 --- a/pack/unicorn/demo.cpp +++ b/pack/unicorn/demo.cpp @@ -30,17 +30,17 @@ uint32_t dma_channel; static inline void unicorn_jetpack_program_init(PIO pio, uint sm, uint offset) { - pio_gpio_select(pio, LED_DATA); - pio_gpio_select(pio, LED_CLOCK); - pio_gpio_select(pio, LED_LATCH); - pio_gpio_select(pio, LED_BLANK); - pio_gpio_select(pio, ROW_0); - pio_gpio_select(pio, ROW_1); - pio_gpio_select(pio, ROW_2); - pio_gpio_select(pio, ROW_3); - pio_gpio_select(pio, ROW_4); - pio_gpio_select(pio, ROW_5); - pio_gpio_select(pio, ROW_6); + pio_gpio_init(pio, LED_DATA); + pio_gpio_init(pio, LED_CLOCK); + pio_gpio_init(pio, LED_LATCH); + pio_gpio_init(pio, LED_BLANK); + pio_gpio_init(pio, ROW_0); + pio_gpio_init(pio, ROW_1); + pio_gpio_init(pio, ROW_2); + pio_gpio_init(pio, ROW_3); + pio_gpio_init(pio, ROW_4); + pio_gpio_init(pio, ROW_5); + pio_gpio_init(pio, ROW_6); pio_sm_set_consecutive_pindirs(pio, sm, LED_DATA, 4, true); pio_sm_set_consecutive_pindirs(pio, sm, ROW_6, 7, true); @@ -62,7 +62,7 @@ static inline void unicorn_jetpack_program_init(PIO pio, uint sm, uint offset) { //sm_config_set_clkdiv(&c, 4); pio_sm_init(pio, sm, offset, &c); - pio_sm_enable(pio, sm, true); + pio_sm_set_enabled(pio, sm, true); } // pixel data is stored as a stream of bits delivered in the