Some thoughts about the current installer
While trying to create my first small project, I collected some ideas about the current windows ~SDK~
I'm missing some out-of-the-box solution for seeing the console output ... as the mono tools already include some serial port implementation it would be nice to have some option in there (maybe "monomake console" )
... btw. I tried it with the Putty which I had already installed, but it got broken every time the mono reboots (probably because the COM-port disappears) ... which is bad when trying to hunt asserts that show up directly after reboot -.-
I don't like it when Installer mess around with my PATH-variable (without tell me) ... and I prefer it to have no toolchains in my default cmd.exe
A good example for an alternative solution is the Qt Windows installer. It creates a shortcut in startmenu for a cmd with the specific Qt-version ( e.g. "Qt 5.6 for Desktop (MinGW 4.9.2 32 bit)" )
Maybe that's a general point ... on Windows I would expect to get some shortcuts into startmenu (e.g. the cmd-shortcut, link to document and maybe a link to this community site ;) )
When looking into the monoprog folder, I remembered that for newer Qt5 versions it is nolonger needed to have a ICU dependency (which reduces installation/installer by ~20MB):
... it seems this should even be possible with your qt5.4.1 (according to the linked document), but maybe the prebuild core-lib has still dependencies ... I think with Qt5.6, I didn't had the dependencies in the prebuild Qt (but I can't remember if I was using mingw or VS2013 while trying this)
oh, btw. this was based on using "OpenMonoSetup-v1.0.12-x64.exe"
another point on my mind:
a real debugger ... I don't have any experience with Arduino or similar platforms, so I'm not sure what kind of tooling is normal for such platforms
( I'm usually programming on devices that have at least a basic Linux ... so, I'm used to some remote-gdb ... and most of the time with a nice IDE/GUI like QtCreator or Eclipse ... )
Hi @raute_at , thanks for your feedback.
You have some pretty valid points. Especially your point on ICU bindings is nice, I hate that even the simplest Qt app is still ~20Mb. So thanks for the hints :-)
Yes, it is pretty cumbersome that the serial port disappears and re-appears on reset. Mono do not have dedicated serial port hardware, it is all software controlled from the CPU. So a CPU reset is a reset of USB device as well. On Linux and Mac the app minicom handles reconnecting to serial ports gracefully - but on Windows we have not found a satisfying solution yet. We are considering implementing our own serial port terminal as a Console application in .NET - but we have to make some hard priorities on where to focus our time. So we would love to have the community engaged in a task like a .NET serial port console with re-connect features :-)
When you debug on embedded (bare metal) devices like Mono, you need a hardware debugger. That is a chip that controls the debug target (like Mono) through a debug interface such as SWD or JTAG.
That means a debugger is an external circuit, which Mono or Arduino does not include. On Mono we have exposed the JTAG and SWD pins in the Expansion Connector port, so you can bring your own debugger. Normally such debuggers create a gdb server that you connect to, just like embedded linux hardware.
I am looking into how to combine Mono's PSOC5 and OpenOCD to create a nice debugging environment, but since Cypress does not embrace OpenOCD with their own MiniProg 3 debugger, there is still much work to be done.
At a more basic level, I needed to manually add C:\openmono\monoprog to PATH. C:\openmono\bin was already there.
Why do you think about .Net serial port when you already got some Qt code that uses serial port?
... personally I don't like .Net as it requires nasty runtime installations ... and it got worse since the pre-installed runtimes got incompatible from win7 to win8 -.-
I already thought that the debug topic could requires some extra hardware :( ... I've some colleages that have to work with that everyday ;)
@raute_at A Qt based serial console that supports automatic reconnecting is also fine. I just assumed that we might get more help from our community by choosing .NET.
Actually we use Qt5's serial port library in the new release (0.8) of monoprog, and it seems work fine.