|
Forum Index : Microcontroller and PC projects : PicoMite User Manual V6.01.00 Updates
| Author | Message | ||||
| Geoffg Guru Joined: 06/06/2011 Location: AustraliaPosts: 3320 |
I decided to start this topic for any PicoMite User Manual V6.01.00 updates to avoid cluttering the main firmware topic. If you find anything wrong with the manual, please post it here. I might not acknowledge every post but I will collect all suggestions and from time to time release a new revision in this topic. The manual was checked and rechecked so there should be little wrong with it, but then that is probably just hopeful thinking. Geoff Geoff Graham - http://geoffg.net |
||||
| twofingers Guru Joined: 02/06/2014 Location: GermanyPosts: 1702 |
Hi Geoff, thanks for your great work! Can you confirm that the "PicoCFunctions.h" (V1.5, #define BaseAddress 1000030C) in the C Routines folder is up to date and works with this MMBasic version? I'm asking because I have version v2.0.1, which seems more "modern" to me. I think CSUBs are being neglected and have been somewhat forgotten. If there are any further updates to the manual, I would appreciate it if the size of the buffer required/expected by the Play MP3, WAV, and FLAC commands were also specified. For example, 30 KB heap is needed. Kind regards Michael causality ≠ correlation ≠ coincidence |
||||
| Geoffg Guru Joined: 06/06/2011 Location: AustraliaPosts: 3320 |
Peter, I believe that this is one for you. Geoff Geoff Graham - http://geoffg.net |
||||
| disco4now Guru Joined: 18/12/2014 Location: AustraliaPosts: 1075 |
This is an up to date PicoCFunctions.h that covers both PICO and PICO2 v2.0.2 Calltable address now 0x1000023C for RP2350 v6.01.00 Release PicoCFunctions.zip F4 H7FotSF4xGT |
||||
| phil99 Guru Joined: 11/02/2018 Location: AustraliaPosts: 2873 |
This could at least be updated to "the MISO pin must not be directly connected." Or a more complete description Edited 2025-12-17 21:48 by phil99 |
||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 10709 |
Geoff. The PicoCFunctions.h above from Gerry (disco4now) should replace the one currently in the download Edited 2025-12-17 23:06 by matherp |
||||
| Geoffg Guru Joined: 06/06/2011 Location: AustraliaPosts: 3320 |
OK. The download has been updated. Geoff Geoff Graham - http://geoffg.net |
||||
| twofingers Guru Joined: 02/06/2014 Location: GermanyPosts: 1702 |
Hi Geoff, I'm wondering if it would be useful to include the working command "MM.INFO(CALLTABLE)", which displays the BaseAddress, in the manual. Are there any reasons not to do so? > ? hex$(MM.INFO(CALLTABLE)) 1000023C Kind regards Michael Additionally, it would be helpful, in my opinion, to mention the respective compiler command line for the different hardware (RP2040, 2350), e.g. for Pico2, bin\arm-none-eabi-gcc -c -mcpu=cortex-m33 -mfloat-abi=hard -mthumb -Wall -Wno-main -ffunction-sections -O3 -fPIC -I. %1.c -o %1.o or something similar. This could also be done in a separate CSub-PDF. My goal is to lower the barriers to writing CSubs. As we have seen here, this can lead to amazing results. I'm sorry if I'm causing any more work ... Breakdown of the Compiler Flags: arm-none-eabi-gcc: The compiler driver. it coordinates the preprocessor, the actual compiler, and the assembler. -c: Compile only. This generates an object file without performing the linking stage. -mcpu=cortex-m33: Defines the target architecture. The Cortex-M33 is the core of the RP2350 (Pico 2). -mfloat-abi=hard: Enables the hardware floating-point unit (FPU) of the chip for calculations. -mthumb: Generates code using the compact Thumb instruction set. -O3: Optimization Level 3. The compiler attempts to make the code as fast as possible. -fPIC: Position Independent Code. This is essential for CSubs because they are loaded into MMBasic RAM at varying memory addresses. -I.: Adds the current directory (.) to the search path for header files like your PicoCFunctions.h. Why this is important: For MMBasic users, this command is often contained within a Batch file (.bat on Windows). The variable %1 acts as a placeholder for your C program's filename. Note: If you were compiling for the older RP2040 (Pico 1), the flags would be -mcpu=cortex-m0plus and -mfloat-abi=soft (as the M0+ lacks a hardware FPU). (Source: GEMINI-KI) Edited 2025-12-18 13:57 by twofingers causality ≠ correlation ≠ coincidence |
||||
| toml_12953 Guru Joined: 13/02/2015 Location: United StatesPosts: 502 |
The TAB function doesn't work the way the manual states. TAB(n) seems to output n spaces no matter what column the print starts in. The manual (page 200) says it will only output spaces until column n is reached. TAB as described in the manual would make it much easier to get tabulated output neatly aligned. |
||||
| Geoffg Guru Joined: 06/06/2011 Location: AustraliaPosts: 3320 |
Thanks, somehow it went missing. I will add it in. I'm not sure about the rest of your suggestion. Writing CSubs is a complex subject and not of interest to the typical user. So, it needs a separate and comprehensive manual/tutorial. This is a big subject which will require someone with a deep knowledge of the subject to write (any volunteers?). Geoff Geoff Graham - http://geoffg.net |
||||
| Geoffg Guru Joined: 06/06/2011 Location: AustraliaPosts: 3320 |
This sounds like a bug. Peter? Geoff Geoff Graham - http://geoffg.net |
||||
| Turbo46 Guru Joined: 24/12/2017 Location: AustraliaPosts: 1649 |
CSUBs To quote Sgt. Shultz "I know nothing". But after having success with Claude writing the code for a Micromite CFunction I thought I would ask Claude if it could write a document about writing CSUBs for MMBasic on the Picomite. Writing_CSUBs_for_MMBasic_PicoMite.zip And here it is. Maybe it will be useful for someone in the know as a starting point at least. Bill Keep safe. Live long and prosper. |
||||
| BarryH Newbie Joined: 05/01/2025 Location: AustraliaPosts: 25 |
page 174 - SUB ... END SUB 2 paragraphs are duplicated "Arguments in the callers list..." "Arrays are passed by..." BarryH |
||||
| The Back Shed's forum code is written, and hosted, in Australia. | © JAQ Software 2025 |