Skip to content

Commit 814c39f

Browse files
committed
added option for frame/scanline timing diagnostics, moved more options to CMakeFiles.txt, output filename based on options, improved 80col render speed, reduced clock freq to 302MHz at stock voltage.
1 parent 34bca64 commit 814c39f

File tree

11 files changed

+349
-149
lines changed

11 files changed

+349
-149
lines changed

.vscode/c_cpp_properties.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44
"name": "Pico",
55
"includePath": [
66
"${workspaceFolder}/**",
7-
"${userHome}/.pico-sdk/sdk/1.5.1/**"
7+
"${userHome}/.pico-sdk/sdk/2.0.0/**"
88
],
99
"forcedInclude": [
1010
"${workspaceFolder}/build/generated/pico_base/pico/config_autogen.h",
11-
"${userHome}/.pico-sdk/sdk/1.5.1/src/common/pico_base/include/pico.h"
11+
"${userHome}/.pico-sdk/sdk/2.0.0/src/common/pico_base_headers/include/pico.h"
1212
],
1313
"defines": [],
1414
"compilerPath": "${userHome}/.pico-sdk/toolchain/13_3_Rel1/bin/arm-none-eabi-gcc",

.vscode/launch.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"interface/cmsis-dap.cfg",
1616
"target/${command:raspberry-pi-pico.getTarget}.cfg"
1717
],
18-
"svdFile": "${userHome}/.pico-sdk/sdk/1.5.1/src/${command:raspberry-pi-pico.getChip}/hardware_regs/${command:raspberry-pi-pico.getChipUppercase}.svd",
18+
"svdFile": "${userHome}/.pico-sdk/sdk/2.0.0/src/${command:raspberry-pi-pico.getChip}/hardware_regs/${command:raspberry-pi-pico.getChipUppercase}.svd",
1919
"runToEntryPoint": "main",
2020
// Fix for no_flash binaries, where monitor reset halt doesn't do what is expected
2121
// Also works fine for flash binaries
@@ -37,7 +37,7 @@
3737
"gdbTarget": "localhost:3333",
3838
"gdbPath": "${command:raspberry-pi-pico.getGDBPath}",
3939
"device": "${command:raspberry-pi-pico.getChipUppercase}",
40-
"svdFile": "${userHome}/.pico-sdk/sdk/1.5.1/src/${command:raspberry-pi-pico.getChip}/hardware_regs/${command:raspberry-pi-pico.getChipUppercase}.svd",
40+
"svdFile": "${userHome}/.pico-sdk/sdk/2.0.0/src/${command:raspberry-pi-pico.getChip}/hardware_regs/${command:raspberry-pi-pico.getChipUppercase}.svd",
4141
"runToEntryPoint": "main",
4242
// Give restart the same functionality as runToEntryPoint - main
4343
"postRestartCommands": [
@@ -63,7 +63,7 @@
6363
"limit": 4
6464
},
6565
"preLaunchTask": "Flash",
66-
"svdPath": "${userHome}/.pico-sdk/sdk/1.5.1/src/${command:raspberry-pi-pico.getChip}/hardware_regs/${command:raspberry-pi-pico.getChipUppercase}.svd"
66+
"svdPath": "${userHome}/.pico-sdk/sdk/2.0.0/src/${command:raspberry-pi-pico.getChip}/hardware_regs/${command:raspberry-pi-pico.getChipUppercase}.svd"
6767
},
6868
]
6969
}

.vscode/settings.json

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,23 +18,32 @@
1818
"cmake.cmakePath": "${userHome}/.pico-sdk/cmake/v3.28.6/bin/cmake",
1919
"C_Cpp.debugShortcut": false,
2020
"terminal.integrated.env.windows": {
21-
"PICO_SDK_PATH": "${env:USERPROFILE}/.pico-sdk/sdk/1.5.1",
21+
"PICO_SDK_PATH": "${env:USERPROFILE}/.pico-sdk/sdk/2.0.0",
2222
"PICO_TOOLCHAIN_PATH": "${env:USERPROFILE}/.pico-sdk/toolchain/13_3_Rel1",
2323
"Path": "${env:USERPROFILE}/.pico-sdk/toolchain/13_3_Rel1/bin;${env:USERPROFILE}/.pico-sdk/picotool/2.0.0/picotool;${env:USERPROFILE}/.pico-sdk/cmake/v3.28.6/bin;${env:USERPROFILE}/.pico-sdk/ninja/v1.12.1;${env:PATH}"
2424
},
2525
"terminal.integrated.env.osx": {
26-
"PICO_SDK_PATH": "${env:HOME}/.pico-sdk/sdk/1.5.1",
26+
"PICO_SDK_PATH": "${env:HOME}/.pico-sdk/sdk/2.0.0",
2727
"PICO_TOOLCHAIN_PATH": "${env:HOME}/.pico-sdk/toolchain/13_3_Rel1",
2828
"PATH": "${env:HOME}/.pico-sdk/toolchain/13_3_Rel1/bin:${env:HOME}/.pico-sdk/picotool/2.0.0/picotool:${env:HOME}/.pico-sdk/cmake/v3.28.6/bin:${env:HOME}/.pico-sdk/ninja/v1.12.1:${env:PATH}"
2929
},
3030
"terminal.integrated.env.linux": {
31-
"PICO_SDK_PATH": "${env:HOME}/.pico-sdk/sdk/1.5.1",
31+
"PICO_SDK_PATH": "${env:HOME}/.pico-sdk/sdk/2.0.0",
3232
"PICO_TOOLCHAIN_PATH": "${env:HOME}/.pico-sdk/toolchain/13_3_Rel1",
3333
"PATH": "${env:HOME}/.pico-sdk/toolchain/13_3_Rel1/bin:${env:HOME}/.pico-sdk/picotool/2.0.0/picotool:${env:HOME}/.pico-sdk/cmake/v3.28.6/bin:${env:HOME}/.pico-sdk/ninja/v1.12.1:${env:PATH}"
3434
},
3535
"raspberry-pi-pico.cmakeAutoConfigure": true,
3636
"raspberry-pi-pico.useCmakeTools": false,
3737
"raspberry-pi-pico.cmakePath": "${HOME}/.pico-sdk/cmake/v3.28.6/bin/cmake",
3838
"raspberry-pi-pico.ninjaPath": "${HOME}/.pico-sdk/ninja/v1.12.1/ninja",
39-
"raspberry-pi-pico.python3Path": "${HOME}/.pico-sdk/python/3.12.1/python.exe"
39+
"raspberry-pi-pico.python3Path": "${HOME}/.pico-sdk/python/3.12.1/python.exe",
40+
"files.associations": {
41+
"version.h": "c",
42+
"system_error": "c",
43+
"vremutms9918.h": "c",
44+
"cstdint": "c",
45+
"array": "c",
46+
"string": "c",
47+
"string_view": "c"
48+
}
4049
}

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ if(WIN32)
1515
else()
1616
set(USERHOME $ENV{HOME})
1717
endif()
18-
set(sdkVersion 1.5.1)
18+
set(sdkVersion 2.0.0)
1919
set(toolchainVersion 13_3_Rel1)
2020
set(picotoolVersion 2.0.0)
2121
set(picoVscode ${USERHOME}/.pico-sdk/cmake/pico-vscode.cmake)

src/CMakeLists.txt

Lines changed: 47 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,57 @@
11
cmake_minimum_required(VERSION 3.13)
22

3-
set(PROGRAM pico9918)
3+
4+
# compile-time options
5+
6+
set(PICO9918_VERSION "0.4.2.1")
7+
set(PICO9918_PCB_MAJOR_VER 0)
8+
set(PICO9918_PCB_MINOR_VER 4)
9+
10+
set(PICO9918_SCANLINES 0)
11+
set(PICO9918_NO_SPLASH 0)
12+
set(PICO9918_DIAG 0)
13+
14+
# end compile-time options
15+
16+
17+
# set up variables for the build process
18+
19+
execute_process(
20+
COMMAND git symbolic-ref --short HEAD
21+
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
22+
OUTPUT_VARIABLE PICO9918_GIT_BRANCH
23+
OUTPUT_STRIP_TRAILING_WHITESPACE
24+
)
25+
26+
string(REPLACE "." "-" PICO9918_VERSION_STR "${PICO9918_VERSION}")
27+
28+
set(PICO9918_BINARY_SUFFIX -pcb-v${PICO9918_PCB_MAJOR_VER}-${PICO9918_PCB_MINOR_VER}-${PICO9918_GIT_BRANCH}-build-${PICO9918_VERSION_STR})
29+
30+
if (${PICO9918_SCANLINES})
31+
set(PICO9918_BINARY_SUFFIX ${PICO9918_BINARY_SUFFIX}-sl)
32+
endif()
33+
34+
35+
set(PROGRAM pico9918${PICO9918_BINARY_SUFFIX})
436

537
add_executable(${PROGRAM} )
638

739
target_sources(${PROGRAM} PRIVATE main.c gpu.c clocks.pio.h tms9918.pio.h Thumb9900.S)
840

941
pico_set_program_name(${PROGRAM} "pico9918")
10-
pico_set_program_version(${PROGRAM} "0.4.2")
11-
12-
# compile-time options to ease development between JasonACT and I
13-
set(PICO9918_NO_SPLASH 0)
42+
pico_set_program_version(${PROGRAM} ${PICO9918_VERSION})
43+
pico_set_program_description(${PROGRAM} "PICO9918 VDP for PCB v${PICO9918_PCB_MAJOR_VER}.${PICO9918_PCB_MINOR_VER}")
44+
pico_set_program_url(${PROGRAM} "https://github.com/visrealm/pico9918")
1445

1546
# generate image array source files from png images
1647
if (PICO9918_NO_SPLASH EQUAL 0)
1748
visrealm_generate_image_source_ram(${PROGRAM} splash res/splash.png )
1849
endif()
1950

51+
if (PICO9918_DIAG)
52+
visrealm_generate_image_source_ram(${PROGRAM} font res/font_subset.png )
53+
endif()
54+
2055
# generate header file from pio
2156
pico_generate_pio_header(${PROGRAM} ${CMAKE_CURRENT_LIST_DIR}/clocks.pio)
2257
pico_generate_pio_header(${PROGRAM} ${CMAKE_CURRENT_LIST_DIR}/tms9918.pio)
@@ -28,8 +63,14 @@ pico_enable_stdio_usb(${PROGRAM} 0)
2863
pico_set_binary_type(${PROGRAM} copy_to_ram) # TOO SLOW TO BOOT
2964

3065
add_definitions(-DPICO9918_NO_SPLASH=${PICO9918_NO_SPLASH})
66+
add_definitions(-DPICO9918_VERSION="${PICO9918_VERSION}")
67+
add_definitions(-DPICO9918_PCB_MAJOR_VER=${PICO9918_PCB_MAJOR_VER})
68+
add_definitions(-DPICO9918_PCB_MINOR_VER=${PICO9918_PCB_MINOR_VER})
69+
add_definitions(-DPICO9918_SCANLINES=${PICO9918_SCANLINES})
70+
add_definitions(-DPICO9918_DIAG=${PICO9918_DIAG})
71+
3172
add_definitions(-DPICO_DISABLE_SHARED_IRQ_HANDLERS=1)
32-
add_definitions(-DPICO_TIME_DEFAULT_ALARM_POOL_DISABLED=1)
73+
#add_definitions(-DPICO_TIME_DEFAULT_ALARM_POOL_DISABLED=1)
3374
add_definitions(-DPICO_PANIC_FUNCTION=)
3475

3576
# Add the standard include files to the build

0 commit comments

Comments
 (0)