Another significant feature of an ICE was the provision of RAM to replace the target's program memory which is no longer required for FLASH based MCUs.
![printf using st link in atollic truestudio printf using st link in atollic truestudio](https://usermanual.wiki/Document/AtollicTrueSTUDIOforSTM32UserGuide.1420695683/asset-45.png)
Of course they do! Just because the majority of the debug/watchpoint/trace logic is now physically implemented on the same silicon die as the MCU rather than externally as in older ICEs is neither here nor there - it doesn't alter the fundamental principles of an ICE which are to allow you to monitor, control and idealy trace the execution of a processor when operating in your actual target hardware.
![printf using st link in atollic truestudio printf using st link in atollic truestudio](https://ppdevlog.files.wordpress.com/2018/11/swv-statistics.png)
This page details my usual method of examining the Stack in my programs: The difference is Forth allows this debugging in realtime. With ".s" stack print statements interspersed between commands much like "printf" statements used to debug C programs the Stack state can be easily examined for program bugs. This is why (good) Forth programmers write short Words of only a few short lines, because then the Stack is easy to examine. Stack garbage constitutes the majority of my debugging. I always examine the Stack after testing every new Word (subroutine) to make sure that if nothing is supposed to be left on it (as in passing data to another Word) that nothing is. The Forth debugger is a Word that examines the Stack called ".s" and read as "print Stack". then you've seen one Forth debugging environment" Everything in Forth revolves around the Stack, so my debugging is all Stack related. It's a bit like this "once you've seen one Forth debugging environment. I would almost count them as a second source, at least for the Cortex-M3 parts. We are talking $1 for a GD32F103C8T6 (Cortex-M3) and <$0.50 for a GD32F130G8U6 (QFN28 package, not quite a clone) for instance. GigaDevice makes STM32 clones which are incredibly cheap. They are not the cheapest but more geared towards real dev work. Olimex makes great prototype boards for STM32s.
#PRINTF USING ST LINK IN ATOLLIC TRUESTUDIO FULL#
The dev tools are less painful than others and you can go full open source stack if you need to. SWD debugging works quite well with the relatively cheap ST-Link.
![printf using st link in atollic truestudio printf using st link in atollic truestudio](https://i.stack.imgur.com/7DC64.png)
That said I am personally more and more drawn towards STM32s, entire range. Example: STM32L011D4P6 on for $0.70 a piece. If you can fit everything into under 16KB Flash + 2KB RAM for instance a low power optimized Cortex-M0(+) is the way to go.
#PRINTF USING ST LINK IN ATOLLIC TRUESTUDIO CODE#
Since you are doing some networking, any idea how large/small the code size will be? How much RAM do you think you will be using? As some guidance if you for instance include a TCP/IP stack count at least 50KB of code + 30KB RAM usage.