element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Embedded and Microcontrollers
  • Technologies
  • More
Embedded and Microcontrollers
Embedded Forum ARM Keil MDK is free (sort-of)
  • Blog
  • Forum
  • Documents
  • Quiz
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Embedded and Microcontrollers to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 35 replies
  • Subscribers 463 subscribers
  • Views 14365 views
  • Users 0 members are here
  • mdkarm
  • keil
  • mdk
Related

ARM Keil MDK is free (sort-of)

shabaz
shabaz over 3 years ago

For ages, the Keil development environment/compiler which they call MDK (Microcontroller Development Kit) has been a chargeable product, extremely unaffordable for home use : (

It's really annoying when microcontroller manufacturers only supply sample code using Keil. It's not always easy to port the project files to Eclipse, often it's hard and a lot of work!

For curiosity I re-logged onto the Keil website today, and noticed there is now a Community Edition! The announcement was in March it seems.

There doesn't seem to be a code limit, which is great. 

I just now tried to build some sample code from Dialog Semiconductor (they have cheap BLE chips but 95% of the more useful example projects are with Keil, not Eclipse, hence the interest) and it worked and I was able to download to the target eval board, which has an integrated J-Link, so that works too. I'm still learning how to use Keil, it's new to me.

image

Keil has a pack system which is quite neat.. I've only installed the Dialog specific pack so far:

image

Anyway, I just thought I'd mentioned that the community edition was available, in case anyone else is interested in trying it too.

  • Sign in to reply
  • Cancel

Top Replies

  • scottiebabe
    scottiebabe over 3 years ago +2
    This is great news! That is one of my biggest complaints about the Pico, trying to setup the c development environment is way too complicated for a causal complier user.... I like one button installs,…
  • WestfW
    WestfW over 3 years ago in reply to scottiebabe +2
    > When you use the ardunio framework somewhere there is a trigger to have the rp2040 reset into bootloader mode (I'm not sure how its done) Arduino uses a hack where setting the usb/serial bitrate to…
  • Fred27
    Fred27 over 3 years ago +2
    I've only ever used Keil when exploring the Cortex M0 and M3 soft processors on Xilinx FPGAs. Keil was the only IDE supported and was way to expensive to consider beyond experimenting using the free trial…
Parents
  • scottiebabe
    scottiebabe over 3 years ago

    This is great news! That is one of my biggest complaints about the Pico, trying to setup the c development environment is way too complicated for a causal complier user.... I like one button installs, like with MPLabx.

    It would appear Kiel is using the arm v6 toolchain developer.arm.com/.../0611. I have no idea how the arm complier compares to gcc-arm, that is well above my pay grade...

    Thanks for sharing this news, I will have to give it a try in the near future!

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • scottiebabe
    scottiebabe over 3 years ago

    This is great news! That is one of my biggest complaints about the Pico, trying to setup the c development environment is way too complicated for a causal complier user.... I like one button installs, like with MPLabx.

    It would appear Kiel is using the arm v6 toolchain developer.arm.com/.../0611. I have no idea how the arm complier compares to gcc-arm, that is well above my pay grade...

    Thanks for sharing this news, I will have to give it a try in the near future!

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
Children
  • shabaz
    shabaz over 3 years ago in reply to scottiebabe

    I think you'll enjoy it! It is quite user-friendly to use. 

    The Keil MDK comes with an older V5 compiler plus the V6 that you mention, it is selectable per-project, in the project configuration options. 

    I've got used to a hybrid environment for working with the Pico, where the the tools, SDK and project source reside entirely on Linux, but I use Visual Code on Windows for writing the code, because the remote file capability in VC is pretty amazing, I've never seen anything like it. And then I use a separate SSH/SFTP app, called SecureCRT (it's like PuTTY) for performing the build and transferring it to the Windows machine, i.e. all of that is done from the command line, which is quicker than menus anyway, since it's just an up-arrow to recall the command and hit return, each time I want to build the code.

    It all in theory sounds onerous, but it's actually really nice for the Pico, so it's going to have to take a really awesome fully integrated setup for the Pico before I consider doing it differently. But the single fully-integrated setup would encourage a lot of people to use C /C++ with the Pico for sure.

    image

    Incidentally there's another C/C++ IDE called CLion, it's by the people who created PyCharm and the Android IDE, which is incredibly well executed for working with code (I guess it has to be for large Android apps!).

    CLion has slowly been getting embedded programming capabilities in the past couple of years, so it could be almost ripe for setting up for Pico development soon too. I have a 2019 release of it, which didn't have great capabilities for the embedded space.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • scottiebabe
    scottiebabe over 3 years ago in reply to shabaz

    This is total wizardry! This parallels my experience in many ways, only in my case my linux machine is the same as my windows machine and I have to reboot into linux (at which point I usually don't bother).  That is very neat, I had no idea this was possible! I am hopeful that when I upgrade to win11, I will try and setup WSL and hopefully all the pico sdk will just work under WSL.

    The arduino ide or platformio under Vscode give you a relatively easy way to use c/c++. However if you want to build any of the sample sdk applications or say uPython you need the actual sdk installed and setup correctly. 

    When you use the ardunio framework somewhere there is a trigger to have the rp2040 reset into bootloader mode (I'm not sure how its done) but its a nice addition not having to unplug the usb cable. I have now memorized where the enable/ground pins are and can short them with a pair of tweezers. A tactile push button also mounts very easily too!

    image

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • shabaz
    shabaz over 3 years ago in reply to scottiebabe

    Hehe I did that button-on-a-pico too! : ) I had a random SMD tact button that happened to straddle the pads.  It makes the Pico so much more easier to use as you say. I've been placing a tact button on any board design too, to make life easier.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • WestfW
    WestfW over 3 years ago in reply to shabaz

    Wait - have you actually managed to install Keil support for RPi Pico?  I don't see even the rp2040 in their "packs", and I'd think that configuring Keil to use the SDK would be a significant effort!

    (or is this just a "side discussion"?)

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • WestfW
    WestfW over 3 years ago in reply to scottiebabe

    > When you use the ardunio framework somewhere there is a trigger to have the rp2040 reset into bootloader mode (I'm not sure how its done)

    Arduino uses a hack where setting the usb/serial bitrate to 1200bps causes a chip reset (and enter bootloader.)
    Entering the bootloader via application SW command is easy - there's an SDK/ROM function for that: reset_usb_boot()

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
  • shabaz
    shabaz over 3 years ago in reply to WestfW

    That was just a side discussion on IDEs in general for Pico. Personally I'm happy with just building for the Pico from the command line, and using Visual Code, as shown in the screenshot above. The combination is great from my perspective, and free.

    However, I did download the latest CLion to see if it's straightforward to configure that for Pico, and it worked well!

    (for anyone who hasn't tried it, CLion is as close to Android Studio as possible, it's by the same org called JetBrains. It's a fantastic code editor and really good for code navigation).

    It is a 1-click effort to build projects, so perhaps CLion is a good option for an all-in-one IDE for Pico projects.

    CLion is chargeable, but at a reasonable price £69+tax in the UK, and the license is permanent with upgrades for that year. 

    The screenshot below shows a successful build for one of the Pico examples. I'll write up the steps in a blog post, but it was actually trivial to get to this stage.

    image

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • scottiebabe
    scottiebabe over 3 years ago in reply to WestfW

    This is incredible! That is a very clever solution. The same functionality applies to the rp2040 when programmed with the arduino framework. 

    image

    Thank you so much for explaining the magic that makes the bootloader entry happen!

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • GorgonMeducer
    GorgonMeducer over 2 years ago in reply to scottiebabe

    I have created a Pico-Template which is an MDK project. So you can use MDK for all Pico development, such as coding, compiling (using Arm Compiler 6), debugging etc.

    For debugging, you don't need an extra Pico working as a debugger adapter, and the pico template retargets printf to MDK debug (printf) view window. A software reset button has been added to the project.

    Enjoy~

    github.com/.../Pico_Template

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
  • scottiebabe
    scottiebabe over 2 years ago in reply to GorgonMeducer

    This is amazing! Thank you so much for sharing your hard work setting up a pico a template. I am downloading the 856 MB MDK as I type this Slight smile.

    I will try it out and let you know how it goes. Thanks again for sharing your project!

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • scottiebabe
    scottiebabe over 2 years ago in reply to GorgonMeducer

    I was able to compile your template project and generate a uf2 image. However I can't seem to get Keil to see the pico when flashed with pico-debug.

    image

    Not sure...

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube