It is a good project who create a good surrounding community, I salute you and any others who work on this project for the work you have done....

I spent lot of time trying to compile it on different environment (IAR ,Keil, Ads ) and encounter lots of errors - mostly due to some header files not wiling to compile no meter what,I have try....

There is lack of information(documentation) regarding those macro files - what is the purpose,how to re compile them , how to use them in other compilers and in different environment?

A professional written project with good software engineering in mind would have more information embedded with in ,as adding remarks and documentation sometime is more important then the code himself and somewhat easy to move from one compiling environment to another.

I think it will be a grate benefit for you whether this project can be used by "professional" user's and not limited to hobbyist makers who can only used free tools.

I have been building STM32 ports easily and successfully with Atollic True Studio lite on Windows 7 & 10 for some time. It is easy to import an existing makefile project. You need to install MSYS2 for the gnu utilities and set the cross compiler to CROSS_COMPILE = arm-atollic-eabi- in the build target.

ST have acquired Atollic and now offer the full version for free. If you want a "professional" tool with IDE and advanced analysis and debugging then True Studio may do what you want.

Had MicroPython been developed for IAR it would never have achieved the level of community support that has helped develop and test it to where it is now.

A professional written project with good software engineering in mind would have more information embedded with in ,as adding remarks and documentation sometime is more important then the code himself and somewhat easy to move from one compiling environment to another

Ok I have a better understanding of your point now. Though I still think it is not entirely correct: yes there is no explicit documentation/user manual for e.g. these header files, but in my opinion it is not really needed (because everything is to a degree self-explanatory) and especially not after a cost/benefit analysis from the point of view of the authors (who'd rather spend time moving the project forward instead of spending a lot of time on documenting every bit of the code and/or build process which might not ever be read). Coincidentally I already stated the exact same thing a couple of days ago here wrt to the code itself: viewtopic.php?f=3&t=4069&start=10#p25250.

I think it will be a grate benefit for you whether this project can be used by "professional" user's and not limited to hobbyist makers who can only used free tools.

The place where I introduced MicroPython, and for which I ported it to windows/msvc, is exactly what I'd call "professional" usage. Buys Visual Studio, pays people to use it with MicroPython, has like >20k loc of C++, Labview and Matlab code all controlled by MicroPython, uses it to perform time-critcical tasks for scientific experiments. Ok not everything is time-critical, but it's science so things should run 100% correct plus there's sometimes people + robots involved so there's also a safety aspect, e.g. we have a robot with enough power in the arms to knock people unconscious, you don't usually find that in the hobbyiste maker space.

Anyway: all that just to illustrate that what you want is possible. Though it does take some studying of the code/makefiles and I understand it can be off-putting if it doesn't work immediately. As I went through that phase myself. But I surely did learn a lot from it.

UV100, you didn't state your reason for wanting to use IAR or Keil. Is it 1) you have existing C projects you want to integrate with MicroPython, 2) you already own IAR and Keil, 3) you want an IDE with editor, compiler analysis tools and debugger.

You may find it easier to build MicroPython with Atollic and incorporate your code into the make / gcc build. Atollic use Eclipse, gcc and gdb with their own extras including good support for STLink and Jlink.

It is possible to compile MicroPython with IAR Embedded Workbench. I've ported it to run inside of Digi International's XBee products (currently Cellular and Zigbee) on SiLabs EFM/EFR hardware. Some issues I encountered:

Since IAR uses a project file instead of a Makefile, I had to manually add the source files to my build. As I was bringing the platform up, I started with the "minimal" platform and would add C files whenever the linker complained about something missing.

Because it doesn't use the Makefile, I have to manually run make from a MinGW/MSYS bash prompt to generate QSTRs. I was able to create a pre-compilation .cmd script to update the version information, and plan to update it to handle QSTR generation at some point.

But I am not using it to build the STM target, so I can't speak to challenges related to that.

I have been building STM32 ports easily and successfully with Atollic True Studio lite on Windows 7 & 10 for some time. It is easy to import an existing makefile project. You need to install MSYS2 for the gnu utilities and set the cross compiler to CROSS_COMPILE = arm-atollic-eabi- in the build target.

ST have acquired Atollic and now offer the full version for free. If you want a "professional" tool with IDE and advanced analysis and debugging then True Studio may do what you want.

Had MicroPython been developed for IAR it would never have achieved the level of community support that has helped develop and test it to where it is now.

Hello,
As I am new to STM32 and C programming, I also want to import to Atollic as project file.
Do you have a guide on how to do so?
If possible to upload the Atollic project file and the files so I can import it.

It is possible to compile MicroPython with IAR Embedded Workbench. I've ported it to run inside of Digi International's XBee products (currently Cellular and Zigbee) on SiLabs EFM/EFR hardware. Some issues I encountered:

Since IAR uses a project file instead of a Makefile, I had to manually add the source files to my build. As I was bringing the platform up, I started with the "minimal" platform and would add C files whenever the linker complained about something missing.

Because it doesn't use the Makefile, I have to manually run make from a MinGW/MSYS bash prompt to generate QSTRs. I was able to create a pre-compilation .cmd script to update the version information, and plan to update it to handle QSTR generation at some point.

But I am not using it to build the STM target, so I can't speak to challenges related to that.

How does this pre-compilation .cmd script look like? Could you share it?