Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 03:51 28 Nov 2024 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : PicoMite / WebMite compiling it yourself

Author Message
homa

Guru

Joined: 05/11/2021
Location: Germany
Posts: 351
Posted: 10:26am 05 Aug 2023
Copy link to clipboard 
Print this post

  matherp said  I suspect you have overwritten the cmake file from the web github with the one from the normal pico or something similar

Please no more build questions on this thread which is for beta releases


Okay, as requested, here is a new thread on the topic of compiling it yourself. (See here https://www.thebackshed.com/forum/ViewTopic.php?TID=16027&P=5#207683 )

The file "cmake file" (CMakeLists.txt) is identical to the one from the repository. I have double checked that.

My procedure was:
1) Take the directory with the successful build for PicoMite (copy).
2) Delete the build folder there.
3) Add the folder "PicoMiteWeb-main", answer the questions about the duplicate files with YES. This will also result in the new "CMakeLists.txt".
4) build ==> Error :-(

Hence my question: What am I doing wrong?

Here is the content of the CMakeLists.txt:


cmake_minimum_required(VERSION 3.13)
include(pico_sdk_import.cmake)
project(test_project C CXX ASM)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)
set(PICO_BOARD pico_w)
pico_sdk_init()
add_executable(PicoMiteWeb
   PicoMite.c
   regex.c
   MMBasic.c
   Operators.c
   Custom.c
   Functions.c
   Commands.c
   Memory.c
   FileIO.c
   ff.c
   ffsystem.c
   ffunicode.c
   mmc_stm32.c
   Draw.c
   Editor.c
   XModem.c
   MM_Misc.c
   External.c
   MATHS.c
   Onewire.c
   I2C.c
   SPI.c
   Serial.c
   SPI-LCD.c
   BmpDecoder.c
   Touch.c
   GPS.c
   Audio.c
   CFunction.c
   Keyboard.c
   SSD1963.c
   picojpeg.c
   lfs.c
   lfs_util.c
hxcmod.c
   cjson.c
   mqtt.c
   MMmqtt.c
   MMTCPclient.c
   MMtelnet.c
   MMntp.c
   MMtcpserver.c
   MMtls.c
   tftp.c
   MMtftp.c
   MMudp.c
)
set_source_files_properties(mmc_stm32.c PROPERTIES COMPILE_FLAGS -O3)
target_include_directories(PicoMiteWeb PRIVATE
       ${CMAKE_CURRENT_LIST_DIR}
       ${CMAKE_CURRENT_LIST_DIR}/.. # for our common lwipopts
       )

pico_define_boot_stage2(slower_boot2 ${PICO_DEFAULT_BOOT_STAGE2_FILE})
target_compile_definitions(slower_boot2 PRIVATE PICO_FLASH_SPI_CLKDIV=4)
pico_set_boot_stage2(PicoMiteWeb slower_boot2)
Pico_enable_stdio_usb(PicoMiteWeb 1)
pico_enable_stdio_uart(PicoMiteWeb 0)
pico_add_extra_outputs(PicoMiteWeb)
target_compile_options(PicoMiteWeb PRIVATE  -DPICOMITEWEB
-DNDEBUG
                                       -DPICO_XOSC_STARTUP_DELAY_MULTIPLIER=64
-DPICO_FLASH_SIZE_BYTES=16777216
-DPICO_STDIO_USB_ENABLE_RESET_VIA_VENDOR_INTERFACE=0
-DPICO_STACK_SIZE=0x1800
-DPICO_CORE1_STACK_SIZE=0x0
-DPICO_HEAP_SIZE=0x9000
-DPICO_CYW43_ARCH_POLL
-DCYW43_HOST_NAME="WebMite"
-O2)
target_link_libraries(PicoMiteWeb
   pico_stdlib
   hardware_flash
   hardware_irq
   hardware_adc
   hardware_pwm
   hardware_i2c
   hardware_spi
   hardware_dma
   hardware_exception
hardware_pio
   pico_cyw43_arch_lwip_poll
   pico_lwip_mbedtls
   pico_mbedtls
)
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9128
Posted: 11:07am 05 Aug 2023
Copy link to clipboard 
Print this post

I've checked the github contents are correct and exactly in-line with my build environment so can't help further. This is why I won't help with building - there are too many moving parts and there is no way I can know what is different in your environment compared to mine
 
homa

Guru

Joined: 05/11/2021
Location: Germany
Posts: 351
Posted: 11:24am 05 Aug 2023
Copy link to clipboard 
Print this post

Okay Peter, that's a pity, but to some extent I understand. But can you confirm my steps 1-4, or am I already going down the wrong path here?


Has anyone else managed to build the WebMite version?
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4043
Posted: 12:18pm 05 Aug 2023
Copy link to clipboard 
Print this post

I can confirm that the WebMite WILL NOT build on Linux either, looks like the same issues - or the same incompetence :

[thwill@TOM-T480 ~/github/UKTailwind/PicoMiteWeb/build (main)$ cmake ..
Using PICO_SDK_PATH from environment ('/home/thwill/github/pico-sdk')
PICO_SDK_PATH is /home/thwill/github/pico-sdk
Defaulting PICO_PLATFORM to rp2040 since not specified.
Defaulting PICO platform compiler to pico_arm_gcc since not specified.
-- Defaulting build type to 'Release' since not specified.
PICO compiler is pico_arm_gcc
-- The C compiler identification is GNU 12.3.1
-- The CXX compiler identification is GNU 12.3.1
-- The ASM compiler identification is GNU
-- Found assembler: /opt/gcc-arm-none-eabi/bin/arm-none-eabi-gcc
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /opt/gcc-arm-none-eabi/bin/arm-none-eabi-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /opt/gcc-arm-none-eabi/bin/arm-none-eabi-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
Build type is Release
PICO target board is pico_w.
Using CMake board configuration from /home/thwill/github/pico-sdk/src/boards/pico_w.cmake
Using board configuration from /home/thwill/github/pico-sdk/src/boards/include/boards/pico_w.h
-- Found Python3: /usr/bin/python3 (found version "3.11.4") found components: Interpreter
TinyUSB available at /home/thwill/github/pico-sdk/lib/tinyusb/src/portable/raspberrypi/rp2040; enabling build support for USB.
BTstack available at /home/thwill/github/pico-sdk/lib/btstack
cyw43-driver available at /home/thwill/github/pico-sdk/lib/cyw43-driver
Pico W Bluetooth build support available.
lwIP available at /home/thwill/github/pico-sdk/lib/lwip
Pico W Wi-Fi build support available.
mbedtls available at /home/thwill/github/pico-sdk/lib/mbedtls
-- Configuring done
-- Generating done
-- Build files have been written to: /home/thwill/github/UKTailwind/PicoMiteWeb/build
thwill@TOM-T480 ~/github/UKTailwind/PicoMiteWeb/build (main)$ make
[  1%] Creating directories for 'PioasmBuild'
[  1%] No download step for 'PioasmBuild'
[  1%] No update step for 'PioasmBuild'
[  1%] No patch step for 'PioasmBuild'
[  1%] Performing configure step for 'PioasmBuild'
loading initial cache file /home/thwill/github/UKTailwind/PicoMiteWeb/build/pico-sdk/src/rp2_common/pico_cyw43_driver/pioasm/tmp/PioasmBuild-cache-Release.cmake
-- The CXX compiler identification is GNU 12.3.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/thwill/github/UKTailwind/PicoMiteWeb/build/pioasm
[  2%] Performing build step for 'PioasmBuild'
[ 10%] Building CXX object CMakeFiles/pioasm.dir/main.cpp.o
[ 20%] Building CXX object CMakeFiles/pioasm.dir/pio_assembler.cpp.o
[ 30%] Building CXX object CMakeFiles/pioasm.dir/pio_disassembler.cpp.o
[ 40%] Building CXX object CMakeFiles/pioasm.dir/gen/lexer.cpp.o
[ 50%] Building CXX object CMakeFiles/pioasm.dir/gen/parser.cpp.o
[ 60%] Building CXX object CMakeFiles/pioasm.dir/c_sdk_output.cpp.o
[ 70%] Building CXX object CMakeFiles/pioasm.dir/python_output.cpp.o
[ 80%] Building CXX object CMakeFiles/pioasm.dir/hex_output.cpp.o
[ 90%] Building CXX object CMakeFiles/pioasm.dir/ada_output.cpp.o
[100%] Linking CXX executable pioasm
[100%] Built target pioasm
[  2%] No install step for 'PioasmBuild'
[  2%] Completed 'PioasmBuild'
[  2%] Built target PioasmBuild
[  2%] Generating cyw43_bus_pio_spi.pio.h
[  2%] Built target cyw43_driver_picow_cyw43_bus_pio_spi_pio_h
[  2%] Building ASM object CMakeFiles/slower_boot2.dir/home/thwill/github/pico-sdk/src/rp2_common/boot_stage2/compile_time_choice.S.obj
[  3%] Linking ASM executable slower_boot2.elf
[  3%] Built target slower_boot2
[  4%] Generating slower_boot2.bin
[  4%] Generating slower_boot2_padded_checksummed.S
[  4%] Built target slower_boot2_padded_checksummed_asm
[  4%] Creating directories for 'ELF2UF2Build'
[  5%] No download step for 'ELF2UF2Build'
[  5%] No update step for 'ELF2UF2Build'
[  6%] No patch step for 'ELF2UF2Build'
[  6%] Performing configure step for 'ELF2UF2Build'
-- The C compiler identification is GNU 12.3.0
-- The CXX compiler identification is GNU 12.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/thwill/github/UKTailwind/PicoMiteWeb/build/elf2uf2
[  6%] Performing build step for 'ELF2UF2Build'
[ 50%] Building CXX object CMakeFiles/elf2uf2.dir/main.cpp.o
[100%] Linking CXX executable elf2uf2
[100%] Built target elf2uf2
[  6%] No install step for 'ELF2UF2Build'
[  6%] Completed 'ELF2UF2Build'
[  6%] Built target ELF2UF2Build
[  6%] Building C object CMakeFiles/PicoMiteWeb.dir/PicoMite.c.obj
/home/thwill/github/UKTailwind/PicoMiteWeb/PicoMite.c: In function 'main':
/home/thwill/github/UKTailwind/PicoMiteWeb/PicoMite.c:1891:5: warning: implicit declaration of function 'InitDisplaySSD'; did you mean 'InitDisplaySPI'? [-Wimplicit-function-declaration]
1891 |     InitDisplaySSD();
     |     ^~~~~~~~~~~~~~
     |     InitDisplaySPI
/tmp/ccjEJYql.s: Assembler messages:
/tmp/ccjEJYql.s:8066: Warning: ignoring changed section attributes for .text
[  6%] Building C object CMakeFiles/PicoMiteWeb.dir/regex.c.obj
... snip
[ 11%] Building C object CMakeFiles/PicoMiteWeb.dir/MM_Misc.c.obj
/home/thwill/github/UKTailwind/PicoMiteWeb/MM_Misc.c: In function 'cmd_option':
/home/thwill/github/UKTailwind/PicoMiteWeb/MM_Misc.c:2533:37: warning: implicit declaration of function 'ConfigDisplaySSD'; did you mean 'ConfigDisplaySPI'? [-Wimplicit-function-declaration]
2533 |             if(!Option.DISPLAY_TYPE)ConfigDisplaySSD(tp);
     |                                     ^~~~~~~~~~~~~~~~
     |                                     ConfigDisplaySPI
[ 11%] Building C object CMakeFiles/PicoMiteWeb.dir/External.c.obj
... snip
[ 15%] Building C object CMakeFiles/PicoMiteWeb.dir/SSD1963.c.obj
/home/thwill/github/UKTailwind/PicoMiteWeb/SSD1963.c: In function 'InitDisplaySSD':
/home/thwill/github/UKTailwind/PicoMiteWeb/SSD1963.c:226:21: error: 'DrawRectangleSSD1963' undeclared (first use in this function); did you mean 'DrawRectangleSPI'?
 226 |     DrawRectangle = DrawRectangleSSD1963;
     |                     ^~~~~~~~~~~~~~~~~~~~
     |                     DrawRectangleSPI
/home/thwill/github/UKTailwind/PicoMiteWeb/SSD1963.c:226:21: note: each undeclared identifier is reported only once for each function it appears in
/home/thwill/github/UKTailwind/PicoMiteWeb/SSD1963.c: In function 'SetBacklightSSD1963':
/home/thwill/github/UKTailwind/PicoMiteWeb/SSD1963.c:393:5: error: 'display_backlight' undeclared (first use in this function)
 393 |     display_backlight = intensity/5;                                // this is used in timer.c
     |     ^~~~~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/PicoMiteWeb.dir/build.make:496: CMakeFiles/PicoMiteWeb.dir/SSD1963.c.obj] Error 1
make[1]: *** [CMakeFiles/Makefile2:1514: CMakeFiles/PicoMiteWeb.dir/all] Error 2
make: *** [Makefile:91: all] Error 2
thwill@TOM-T480 ~/github/UKTailwind/PicoMiteWeb/build (main)$


My initial guess would be that there is something squiff with what has been uploaded to git. I'm sorry that I don't have the time to investigate further at the moment.

Note that one "obvious" thing that needs fixing is the capitalisation of some of the files in CMakeLists.txt

thwill@TOM-T480 ~/github/UKTailwind/PicoMiteWeb (main)$ git diff
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 33e4335..213c2c8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -41,9 +41,9 @@ add_executable(PicoMiteWeb
    lfs.c
    lfs_util.c
       hxcmod.c
-    cjson.c
+    cJSON.c
    mqtt.c
-    MMmqtt.c
+    MMMqtt.c
    MMTCPclient.c
    MMtelnet.c
    MMntp.c


Best wishes,

Tom
Edited 2023-08-05 22:30 by thwill
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4043
Posted: 12:42pm 05 Aug 2023
Copy link to clipboard 
Print this post

I did look further, it's fubar:
- SSD1963.c is included in CMakeLists.txt, I'm not sure it's supposed to be for the WebMite.
- MM_Misc.c and PicoMite.c are trying to call code in GUI.c which is (deliberately?) not included.

Best wishes,

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
aFox
Regular Member

Joined: 28/02/2023
Location: Germany
Posts: 76
Posted: 01:01pm 05 Aug 2023
Copy link to clipboard 
Print this post

Some weeks ago I tried to install the IDE including Visual Studio Code on my Windows 11 system like Peter. I was able to compile the original code succesfully.

But I failed with every Bluetooth example.
However, these examples should compile on Linux.

After hours of hours I gave up.
In case of bluetooth I am using the Arduino IDE instead.

Gregor
Edited 2023-08-05 23:05 by aFox
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9128
Posted: 01:17pm 05 Aug 2023
Copy link to clipboard 
Print this post

  Quote   SSD1963.c is included in CMakeLists.txt, I'm not sure it's supposed to be for the WebMite.
- MM_Misc.c and PicoMite.c are trying to call code in GUI.c which is (deliberately?) not included.


SSD is included in webmite
Try adding gui.h to the build directory NOT gui.c
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4043
Posted: 01:32pm 05 Aug 2023
Copy link to clipboard 
Print this post

  matherp said  SSD is included in webmite


Ack.

  matherp said  Try adding gui.h to the build directory NOT gui.c


Without GUI.c you with missing implementations for some functions:
/opt/gcc-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld: CMakeFiles/PicoMiteWeb.dir/MMBasic.c.obj:(.rodata.tokentbl+0x5b4): undefined reference to `fun_msgbox'
/opt/gcc-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld: CMakeFiles/PicoMiteWeb.dir/MMBasic.c.obj:(.rodata.tokentbl+0x5c0): undefined reference to `fun_ctrlval'
/opt/gcc-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld: CMakeFiles/PicoMiteWeb.dir/MMBasic.c.obj:(.rodata.tokentbl+0x5cc): undefined reference to `fun_mmhpos'
/opt/gcc-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld: CMakeFiles/PicoMiteWeb.dir/MMBasic.c.obj:(.rodata.tokentbl+0x5d8): undefined reference to `fun_mmvpos'
/opt/gcc-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld: CMakeFiles/PicoMiteWeb.dir/MMBasic.c.obj:(.rodata.commandtbl+0x5cc): undefined reference to `cmd_ctrlval'


Sorry I can't be more pro-active in solving this Peter but I don't know the WebMite (I don't have a Pico W), I was just trying to help out @homa.

Best wishes,

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
JohnS
Guru

Joined: 18/11/2011
Location: United Kingdom
Posts: 3802
Posted: 01:54pm 05 Aug 2023
Copy link to clipboard 
Print this post

Peter,

Maybe you could post the output from a (WebMite) cmake so people can see where their attempt first diverges from yours.

(Sorry I'm not set up for trying such a build myself right now.)

John
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9128
Posted: 02:28pm 05 Aug 2023
Copy link to clipboard 
Print this post

Its not gui.h, just deleted it which was in my webmite directory by mistake that and builds fine
 
homa

Guru

Joined: 05/11/2021
Location: Germany
Posts: 351
Posted: 04:16pm 05 Aug 2023
Copy link to clipboard 
Print this post

  matherp said  Its not gui.h, just deleted it which was in my webmite directory by mistake that and builds fine


i have deleted gui.h and gui.c, that does not help!

What I don't understand at all is that the normal version of PicoMite can be built and also runs wonderfully on the rp2040.

I'm completely surprised by these error messages, since the build works without the web files!?:


[build] C:\homa\PicoMite\PicoMiteWebALLb11\PicoMite.c:1891:5: warning: implicit declaration of function 'InitDisplaySSD'; did you mean 'InitDisplaySPI'? [-Wimplicit-function-declaration]
[build]  1891 |     InitDisplaySSD();
[build]       |     ^~~~~~~~~~~~~~
[build]       |     InitDisplaySPI

...

[build] C:\homa\PicoMite\PicoMiteWebALLb11\SSD1963.c: In function 'InitDisplaySSD':
[build] C:\homa\PicoMite\PicoMiteWebALLb11\SSD1963.c:226:21: error: 'DrawRectangleSSD1963' undeclared (first use in this function); did you mean 'DrawRectangleSPI'?
[build]   226 |     DrawRectangle = DrawRectangleSSD1963;
[build]       |                     ^~~~~~~~~~~~~~~~~~~~
[build]       |                     DrawRectangleSPI
[build] C:\homa\PicoMite\PicoMiteWebALLb11\SSD1963.c:226:21: note: each undeclared identifier is reported only once for each function it appears in
[build] C:\homa\PicoMite\PicoMiteWebALLb11\SSD1963.c: In function 'SetBacklightSSD1963':
[build] C:\homa\PicoMite\PicoMiteWebALLb11\SSD1963.c:393:5: error: 'display_backlight' undeclared (first use in this function)
[build]   393 |     display_backlight = intensity/5;                                // this is used in timer.c
[build]       |     ^~~~~~~~~~~~~~~~~



The build directory now contains the following files (after the above procedure and deletion of gui.*):


ArialNumFontPlus.h
arial_bold.h
Audio.c
Audio.h
BmpDecoder.c
build
CFunction.c
cJSON.c
cJSON.h
CMakeLists.txt
Commands.c
Commands.h
configuration.h
Custom.c
Custom.h
cyw43_bus_pio_spi.c
diskio.h
Draw.c
Draw.h
dr_flac.h
dr_wav.h
Editor.c
Editor.h
External.c
External.h
ff.c
ff.h
ffconf.h
ffsystem.c
ffunicode.c
FileIO.c
FileIO.h
Fnt_10x16.h
font1.h
Font_8x6.h
Functions.c
Functions.h
GPS.c
GPS.h
Hardware_Includes.h
Hom_16x24_LE.h
hxcmod.c
hxcmod.h
I2C.c
I2C.h
Include.h
Inconsola.h
Keyboard.c
lfs.c
lfs.h
lfs_util.c
lfs_util.h
lwipopts.h
lwipopts_examples_common.h
MATHS.c
MATHS.h
mbedtls_config.h
Memory.c
Memory.h
Misc_12x20_LE.h
MMBasic.c
MMBasic.h
MMBasic_Includes.h
mmc_stm32.c
MMMqtt.c
MMntp.c
MMTCPclient.c
MMtcpserver.c
MMtelnet.c
MMtftp.c
MMtls.c
MMudp.c
MM_Misc.c
MM_Misc.h
mqtt.c
Onewire.c
Onewire.h
Operators.c
Operators.h
PicoCFunctions.h
picojpeg.c
picojpeg.h
PicoMite.c
pico_sdk_import.cmake
pio.h
pio_instructions.h
PS2Keyboard.h
Readme
regex.c
Serial.c
Serial.h
smallfont.h
SPI-LCD.c
SPI-LCD.h
SPI.c
SPI.h
SSD1963.c
SSD1963.h
tftp.c
tinyfont.h
Touch.c
Touch.h
upng.h
Version.h
XModem.c
XModem.h
xregex.h
xregex2.h
X_8x13_LE.h


I would like to learn and understand this. I'm just a beginner in this field.
Thanks for all the help.
Edited 2023-08-06 02:18 by homa
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4043
Posted: 05:08pm 05 Aug 2023
Copy link to clipboard 
Print this post

  homa said  ... since the build works without the web files!?


Hi @homa,

I don't know what that means, you need to be very specific about what you are doing if you expect build problems to be debugged remotely.

If you mean that the standard PicoMite code compiles, then "yes it does" .

Excluding my incompetence the published WebMite code does not appear to compile. This has different files because it has different functionality, also its version of the CMakeLists.txt file defines a different macro PICOMITEWEB vs. PICOMITE controlling some conditional compilation within the common files.

Because I'm unfamiliar with what differences the WebMite is supposed to have from the PicoMite I can't help resolve this without input from Peter ... well I could, but it would require me to spend more of my time than I'm willing to do.

Unless some other code-warrior joins the fray there are only two ways this gets resolved, either Peter fixes it, or if Peter uploads his working source/build directory to Dropbox then (again excluding incompetence) I can probably figure out what's gone fubar.

Best wishes,

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
homa

Guru

Joined: 05/11/2021
Location: Germany
Posts: 351
Posted: 06:23pm 05 Aug 2023
Copy link to clipboard 
Print this post

  thwill said  
  homa said  ... since the build works without the web files!?

If you mean that the standard PicoMite code compiles, then "yes it does" .

Hello @Tom,

thanks for your help so far. As I unfortunately started to describe in the other thread. Yes I can compile the standard version of PicoMite. So I don't think my environment is the problem either.

My previous steps for a new Windows 11 were (including Peter's hints):

All the details are in the Pico Getting started manual (manual steps), but you need to load SDK 1.5 not 1.5.1 and you need compiler version 12.2.1

To follow the instructions in this PDF carefully: https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf


9.2.2 Alternative manual installation
 WARNING
Manual installation of the toolchain under MS Windows is complicated and not recommended.
To build you will need to install some extra tools.
- Arm GNU Toolchain (you need the filename ending with -arm-none-eabi.exe)
- CMake
- Build Tools for Visual Studio 2022
- Python 3.10
- Git
Download the executable installer for each of these from the links above, and then carefully follow the instructions in
the following sections to install all five packages on to your Windows computer.


https://developer.arm.com/-/media/Files/downloads/gnu/12.2.rel1/binrel/arm-gnu-toolchain-12.2.rel1-mingw-w64-i686-arm-none-eabi.exe?rev=4eb1b321a6f44ca78be67eb9cef8b37a&hash=AD35FDA3E92F4D716B9C4FCF21A9B27F
~ 208 MB

https://github.com/Kitware/CMake/releases/download/v3.27.1/cmake-3.27.1-windows-x86_64.msi
~ 32 MB

https://aka.ms/vs/17/release/vs_BuildTools.exe
~ 3,7 MB

https://www.python.org/downloads/release/python-3114/ (https://www.python.org/ftp/python/3.11.4/python-3.11.4-amd64.exe)
~ 25 MB

https://github.com/git-for-windows/git/releases/download/v2.41.0.windows.3/Git-2.41.0.3-64-bit.exe
~ 60 MB

For item 9.2.2.6 from the PDF I used
git clone https://github.com/raspberrypi/pico-sdk.git --branch 1.5.0
, of course.

Then install VSCodeSetup-x64-1.81.0.exe as described in the manual, including the "CMake Tools" extension.
https://code.visualstudio.com/download

Then the download from Peter's repository: https://github.com/UKTailwind

Exchange of files from the supreme directory:
gpio.c ==> ..\pico-sdk\src\rp2_common\hardware_gpio
spi.h ==> ..\pico-sdk\src\rp2_common\hardware_spi\include\hardware

HURRA: Load the PicoMite directory and build! Works!

Now the attempt to compile WebMite.

Here the steps as described above (new directory for the build) and the exchange of: cyw43_bus_pio_spi.c ==> ...pico-sdk\src\rp2_common\pico_cyw43_driver

1) Take the directory with the successful build for PicoMite (copy).
2) Delete the build folder there.
3) Add the folder "PicoMiteWeb-main", answer the questions about the duplicate files with YES. This will also result in the new "CMakeLists.txt".
4) build ==> Error :-(

You have read the rest ...
I hope that this description will also help others.

Good luck and help still requested.
Matthias
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4043
Posted: 06:31pm 05 Aug 2023
Copy link to clipboard 
Print this post

@homa,

I'm reasonably certain that tooling configuration isn't the cause of this particular issue since I'm seeing what I believe to be the same issue with the Linux toolchain . OR we are both systematically combining the two different (don't get me started over that ) git repo's incorrectly.

I really do suspect that Peter has somehow uploaded the wrong (or an incomplete) thing to github - but I'm ready to be proved wrong - and that's something only Peter can diagnose.

Best wishes,

Tom
Edited 2023-08-06 04:32 by thwill
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
homa

Guru

Joined: 05/11/2021
Location: Germany
Posts: 351
Posted: 06:50pm 05 Aug 2023
Copy link to clipboard 
Print this post

@Tom
  thwill said  ... OR we are both systematically combining the two different (don't get me started over that ) git repo's incorrectly.
...

I just tried this with the VGA version. Everything works with the combination according to the manual!
The build is also running on my VGA board right now :D

Apart from that, the Pico W are really exciting. I recommend you buy a couple. It's fun.

@Peter: Please, please help us and check the download version from your repository yourself. Thanks in advance!

Matthias
 
Plasmamac

Guru

Joined: 31/01/2019
Location: Germany
Posts: 554
Posted: 10:41pm 05 Aug 2023
Copy link to clipboard 
Print this post

I failed also but i will try it again thx for this thread.
Plasma
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4043
Posted: 12:14pm 06 Aug 2023
Copy link to clipboard 
Print this post

To build, modify SSD1963.h to add the 4 lines highlighted below:

...
#ifndef _SSD1963_H
   #define _SSD1963_H

   void InitDisplaySSD(void);                                         // Added
   void ConfigDisplaySSD(unsigned char *p);                           // Added
   void DrawRectangleSSD1963(int x1, int y1, int x2, int y2, int c);  // Added
   extern int display_backlight;                                      // Added

   // parameters of the display panel (refer to the glass data sheet)
...


I've no idea if the resulting binary works, as I have no Pico W to test on, but I think there is a reasonable chance.

Best wishes,

Tom
Edited 2023-08-06 23:46 by thwill
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
homa

Guru

Joined: 05/11/2021
Location: Germany
Posts: 351
Posted: 02:18pm 06 Aug 2023
Copy link to clipboard 
Print this post

@Tom

Thanks for your time ;-)
Yes, with the 4 extra lines the build works for me.
This version can also be flashed and the WebMite will start. Logging on to the wifi also works. So far, so good. Thank you very much!

What I don't understand is that this file (SSD1963.h) comes from the PicoMite directory and is not overwritten by the PicoMiteWeb directory. Why does the build work with the "normal" PicoMite version? But not with the WebMite version? Is this related to the new CMakeLists.txt from the PicoMiteWeb directory? I'm trying to learn the ins and outs :-))

Matthias
 
TassyJim

Guru

Joined: 07/08/2011
Location: Australia
Posts: 6100
Posted: 11:07pm 06 Aug 2023
Copy link to clipboard 
Print this post

My very uneducated thought:

The 4 lines Tom added are in GUI.h
The WEBmite does not include GUI.h in the makefile list which is why they were added to SSD1963.h instead.

Jim
VK7JH
MMedit   MMBasic Help
 
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 897
Posted: 11:35pm 06 Aug 2023
Copy link to clipboard 
Print this post

My theory.
The PicomiteWeb does not include the GUI commands so CMakelists.txt does not include Gui.c  This means the Gui.h is also not looked at so these declarations which are in there are not found.

Adding #include "Gui.h" at the top of  SSD1963.c also seems to allow it to compile.
This is probably not the only way to get it in there so Peter's setup must somehow find it by another means.



SSD1963.c
----------

#include "MMBasic_Includes.h"
#include "Hardware_Includes.h"
#include "Gui.h"


Latest F4 Latest H7
 
Print this page


To reply to this topic, you need to log in.

© JAQ Software 2024