Hi again,

I spent a bit of time investigating the performance issue: a semihosting call 
(ie. a breakpoint) is emitted for each character, which is very very slow as 
you can imagine.

To make things faster:
 - I had to enable syslog buffering, so that up_puts was called instead of 
up_putc.
 - I had to implement SYSLOG buffer write with SYS_WRITE (0x5) rather than 
SYS_WRITE0 (0x4).

SYS_WRITE0 couldn't be used as the buffer portions we get from the syslog 
buffer aren't null-terminated. SYS_WRITE requires a file handle, so a bit of 
initialization code is needed to get a file handle to stdout.

Here's a quick n' dirty patch for it that I've tested on RP2040 + picoprobe 
with OpenOCD. I'd like some input on how to implement the initialization 
properly.

Jean


> On 14 Oct 2025, at 11:52, Jean Thomas <[email protected]> wrote:
> 
> Hi all,
> 
> It is very slow with debug probe too. I couldn't get pyOCD to work...
> 
> Jean
> 
>> On 14 Oct 2025, at 09:44, Tomek CEDRO <[email protected]> wrote:
>> 
>> Can you try with pyOCD and compare? Maybe different debug probe?
>> 
>> https://pyocd.io/docs/semihosting.html
>> 
>> Tomek
>> 
>> On Tue, Oct 14, 2025 at 2:13 AM Lwazi Dube <[email protected]> wrote:
>>> 
>>> It is very slow here too.
>>> 
>>> On Mon, 13 Oct 2025 at 18:50, Alan C. Assis <[email protected]> wrote:
>>> 
>>>> 
>>>> I don't know if it only happens here, but the text is printed slowly (about
>>>> 10 characters per second).
>>>> 
>>>> But it is a nice effect hehehe, like in movies or games (like Carmen
>>>> Sandiego game printing the message, who here remember it:
>>>> https://www.youtube.com/watch?v=X2hy711hDgM )
>>>> 
>>>> Thank you very much for your help!
>>>> 
>>>> BR,
>>>> 
>>>> Alan
>>>> 
>> 
>> 
>> 
>> -- 
>> CeDeROM, SQ7MHZ, http://www.tomek.cedro.info
> 

Reply via email to