This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

ARM Keil Studio (AKS) for VSCode trial run - not ready for prime time

Hi there,

My current development environment (AKS) is supposed to run on the following system:

  • fresh Windows 11 Pro laptop without any previous installation of VSCode, Keil MDK, or similar ARM development software
  • laptop PC with Intel N95 (4 cores, integrated graphics), 16 GB RAM, and 512 GB SSD or similar (eventually more powerful)
  • development boards with ST-Link embedded debug probes, such as:
    • STM32F4-DISCO(VERY) (or STM32F407G-DISC1) - currently using
    • STM32F429I-DISC1
    • NUCLEO-H723ZG
    • NUCLEO-H723ZG

My initial experience was unsatisfactory as AKS proved to be unstable and erratic. The PC was a clean fresh laptop with Windows 11 Pro (OEM) used for less than a week. Installing VSCode was uneventful but, maybe my choice of installation was inappropriate: installed for all users (i.e. in Program Files). The STM32F407G-DISC1 board is almost new (only used occasionally) with all the firmware updates as required by the embedded ST-Link probe.

I followed the official documentation: Arm Keil Studio Visual Studio Code Extensions - User Guide (Non-Confidential), Issue 06 - 108029_0000_06_en. I noticed the following:

  • The Keil Studio Pack was installed and activated properly with all the dependencies (no other conflicting software from ARM or Keil exists on the host PC)
  • The Microsoft C/C++ and Microsoft C/C++ Themes were also installed and used
  • I selected the RTOS Blinky project for my board from the official page (https://www.keil.com/boards2/stmicroelectronics/stm32f4_discovery/)
  • The selected software pack for the board is Keil.STM32F4xx_DFP.2.17.1 (installed successfully)
  • Building the project failed because of an include error: cannot open source file "stm32f4xx_hal.h" (from the "main.h" header file) which is wrong because the file exists in its location as part of the STM32F4xx_DFP.2.17.1 installation. Eventually, the path wasn't identified correctly at the project conversion (from MDK to AKS). Strangely, the project converter displays some warnings but not related to a possible path issue.
  • Further attempts to rebuild the project failed as well.
  • The most visible error remains the same: #include errors detected based on information provided by the configurationProvider setting.
  • I decided to try a simple program I wrote (Blinky without RTOS, in a single source file). Eventually, the "stm32f4xx_hal.h" dependency still exists and the result should be the same, shouldn't it? Wrong, This time the build process succeeded. There are no errors anymore despite the mentioned dependency. Eventually, the process of creating the "environment" triggered by the build, took a long time but nothing else happened.
  • I returned to RTO Blinky by deleting the previous folder and creating a fresh copy to restart. After one more failure and repeating, the third attempt succeeded. I didn't change anything. Just out of the blue, it worked.
  • Configuring the debugger proved to be even messier. The embedded probe (ST-Link) was detected, but selecting it produced another strange and cryptic message "Pack not found for selected device". Impossible, the STM32F4xx_DFP.2.17.1 software pack that was used on a different PC with Keil-MDK 5.37 didn't produce any error ever. I work as an instructor in the university with groups of students and, other than an occasional ST-Link firmware or driver update, I never had an issue.
  • I tried both, the RTOS Blinky and my Blinky several times. I noticed that the detected probe has a different name than the one supposed to be associated with the debugging support in CMSIS debugger API. I decided to try to rename it manually to ST-Link only to see a long list of various devices. I found mine and I tried to load it. I managed to program the flash but I never succeeded in starting the debugging process.

Questions:

1. What are the prerequisites for installing AKS for VSCode properly? (e.g. system requirements, chosen platform effects, VSCode installation, compatibility issues, 32- vs 64-bit cases and issues, software packs integration and dependencies, etc.)
2. What are the configuration steps for various targets? The documentation seems incomplete and confusing as long as there aren't clear steps to follow.
3. Where are the proper examples for the supported boards? The simple MDK to AKS conversion isn't reliable (multiple attempts produce, eventually, various results and various warnings and errors)
4. What are the steps of the proper hardware integration of a certain target? Assuming that I build my hardware (not using an evaluation kit), what should I do to connect with it, be able to upload code, and debug it properly on my target?
5. Will AKS for VSCode be replacing MDK anytime soon? If so, when will it happen? If not, what is the roadmap for Keil MDK? Will it continue to exist as MDK5? Will it be an MDK6 (or higher)?
6. Is AKS only intended for non-commercial and educational purposes at this moment? I don't see how AKS could be used efficiently and reliably in an enterprise environment yet. What is the roadmap for AKS?
7. The AKS debugging features look rudimentary compared with the MDK debugger. Are there any plans to improve the AKS debugger and add features like trace, logic analyzer, register/port viewer, power measurements, and more?

I know, it's a long message. After a few days of frustrating efforts, I'm at the end of the rope. I intended to use AKS with my students because it is multi-platform and many like the idea of working with VSCode. But, to be honest, I cannot recommend them AKS. Maybe AKS for Cloud is better. But not AKS for VSCode. We will continue with Keil-MDK for the moment until we find a better solution. At this moment I almost regret not using STM32Cube. The reason for selecting Keil-MDK was the availability of a huge amount of literature and documentation that the students could use combined with good debugging features supporting a multitude of probes. Last but not least, once you learn Keil-MDK you can use it for almost any ARM Cortex-M on the planet.

The intention of updating the user experience of Keil tools to the 21st century is laudable. I applaud the attempt but I feel that the road ahead is long and bumpy.

I would appreciate comments, advice, pointers to better documentation, and other information regarding AKS. (See the above questions.)

But I won't use it with my students in January when the winter term begins. I will only mention its existence for those inclined to take the challenge and use it.

Thank you for your time reading this.

Steve

  • Hello,

    First of all, let me apologise that your experience with Keil Studio for VS Code fell short of what we would hope.

    Keil Studio for VS Code natively uses the new [CMSIS csolution format](https://github.com/Open-CMSIS-Pack/cmsis-toolbox/blob/main/docs/YML-Input-Format.md), and you will get the smoothest experience using boards with official examples available in that format. These can be found on the new Keil website, https://keil.arm.com/. However, unfortunately at this time, we do not have an example available in this format for the board you are using.

    We do offer uvprojx to csolution conversion but currently cannot offer 100% compatibility. We do not have your board to hand, but for the example in question we were able to use the conversion utility to generate a buildable .csolution.yaml. When testing, we did see erroneous import errors from intellisense similar to those you observed, but if we ignored them we were able to build the example. We believe we understand this error with our intellisense handling and will aim to deliver a fix promptly.

    With regard to the debug pack errors you saw, the debug extension is designed to be able to operate in isolation from the other extensions in the Keil Studio bundle, and as such, attempts to source the debug information required to debug from packs on its own rather than depending on the local pack cache. We have reached out to our debug team to see if we can identify what may have caused this for you.

    With regard to hardware dependencies, we don't have additional requirements for installation other than those of VS Code itself.

    Keil Studio for VS Code is currently only useable for non-commercial applications. We are actively exploring how we support professional use cases.

    For your points 2 and 4 (configuration steps, hardware integration), could you give us more details on the issues you had?

    Thank you.

    The Keil Studio team.