Skip to content

Commit c10f971

Browse files
author
Hrvoje Cavrak
committed
Initial Commit
1 parent 5896e50 commit c10f971

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+52447
-0
lines changed

CMakeLists.txt

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
cmake_minimum_required(VERSION 3.13)
2+
3+
set(PICO_SDK_FETCH_FROM_GIT off)
4+
set(PICO_BOARD=pico)
5+
6+
include(pico_sdk_import.cmake)
7+
set(CMAKE_CXX_FLAGS "-Ofast -Wall -mcpu=cortex-m0plus -mtune=cortex-m0plus")
8+
9+
project(deskhop_project C CXX ASM)
10+
set(CMAKE_C_STANDARD 11)
11+
set(CMAKE_CXX_STANDARD 17)
12+
pico_sdk_init()
13+
14+
set(PICO_PIO_USB_DIR ${CMAKE_CURRENT_LIST_DIR}/Pico-PIO-USB)
15+
16+
add_library(Pico-PIO-USB STATIC
17+
${PICO_PIO_USB_DIR}/src/pio_usb.c
18+
${PICO_PIO_USB_DIR}/src/pio_usb_host.c
19+
${PICO_PIO_USB_DIR}/src/usb_crc.c
20+
)
21+
pico_generate_pio_header(Pico-PIO-USB ${PICO_PIO_USB_DIR}/src/usb_tx.pio)
22+
pico_generate_pio_header(Pico-PIO-USB ${PICO_PIO_USB_DIR}/src/usb_rx.pio)
23+
24+
target_link_libraries(Pico-PIO-USB PRIVATE
25+
pico_stdlib
26+
pico_multicore
27+
hardware_pio
28+
hardware_dma
29+
)
30+
target_include_directories(Pico-PIO-USB PRIVATE ${PICO_PIO_USB_DIR})
31+
32+
set(COMMON_SOURCES
33+
${CMAKE_CURRENT_LIST_DIR}/src/usb_descriptors.c
34+
${CMAKE_CURRENT_LIST_DIR}/src/utils.c
35+
${CMAKE_CURRENT_LIST_DIR}/src/handlers.c
36+
${CMAKE_CURRENT_LIST_DIR}/src/setup.c
37+
${CMAKE_CURRENT_LIST_DIR}/src/keyboard.c
38+
${CMAKE_CURRENT_LIST_DIR}/src/mouse.c
39+
${CMAKE_CURRENT_LIST_DIR}/src/led.c
40+
${CMAKE_CURRENT_LIST_DIR}/src/uart.c
41+
${CMAKE_CURRENT_LIST_DIR}/src/usb.c
42+
${CMAKE_CURRENT_LIST_DIR}/src/main.c
43+
)
44+
45+
set(COMMON_INCLUDES
46+
${CMAKE_CURRENT_LIST_DIR}/src
47+
${PICO_PIO_USB_DIR}/src
48+
)
49+
50+
set(COMMON_LINK_LIBRARIES
51+
pico_stdlib
52+
hardware_uart
53+
hardware_gpio
54+
55+
tinyusb_device
56+
pico_multicore
57+
Pico-PIO-USB
58+
)
59+
60+
# Pico A - Keyboard
61+
add_executable(board_A)
62+
63+
target_sources(board_A PUBLIC ${COMMON_SOURCES})
64+
target_compile_definitions(board_A PRIVATE BOARD_ROLE=0)
65+
target_include_directories(board_A PUBLIC ${COMMON_INCLUDES})
66+
target_link_libraries(board_A PUBLIC ${COMMON_LINK_LIBRARIES})
67+
68+
pico_enable_stdio_usb(board_A 0)
69+
pico_add_extra_outputs(board_A)
70+
71+
72+
# Pico B - Mouse
73+
add_executable(board_B)
74+
75+
target_compile_definitions(board_B PRIVATE BOARD_ROLE=1)
76+
target_sources(board_B PUBLIC ${COMMON_SOURCES})
77+
target_include_directories(board_B PUBLIC ${COMMON_INCLUDES})
78+
target_link_libraries(board_B PUBLIC ${COMMON_LINK_LIBRARIES})
79+
80+
pico_enable_stdio_usb(board_B 0)
81+
pico_add_extra_outputs(board_B)

Pico-PIO-USB/CMakeLists.txt

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
set(lib_name pico_pio_usb)
2+
add_library(${lib_name} INTERFACE)
3+
4+
set(dir ${CMAKE_CURRENT_LIST_DIR}/src)
5+
6+
pico_generate_pio_header(${lib_name} ${dir}/usb_tx.pio)
7+
pico_generate_pio_header(${lib_name} ${dir}/usb_rx.pio)
8+
9+
target_sources(${lib_name} INTERFACE
10+
${dir}/pio_usb.c
11+
${dir}/pio_usb_device.c
12+
${dir}/pio_usb_host.c
13+
${dir}/usb_crc.c
14+
)
15+
16+
target_link_libraries(${lib_name} INTERFACE
17+
pico_stdlib
18+
pico_multicore
19+
hardware_pio
20+
hardware_dma
21+
)
22+
23+
target_include_directories(${lib_name} INTERFACE ${dir})
24+
25+
# enable all warnings
26+
target_compile_options(${lib_name} INTERFACE -Wall -Wextra)

0 commit comments

Comments
 (0)