This week we are glad to host a blog post from Niall Cooling (CEO of Feabhas Limited) about how the recent addition of offline development and debugging (through CMSIS-DAP) has allowed Feabhas to choose mbed as an ideal platform for their professional training courses:
As a company who’s been involved with training many thousands of embedded software engineers over the last 18 years (in technologies such as C, C++ and Real-Time Operating Systems) our goal was always to try and recreate an engineer’s everyday environment in the training courses. To this end we have always used embedded target boards on which an application is programmed. Initially we started with a Renesas SH-2 based system, but over a decade ago we switched to an ARM7TDMI (NXP LPC21xx) target.
However, with the announcement and release of the Cortex-M family of microcontrollers we made the decision to port our training to a Cortex-M3 based system. Ideally we like to use off-the-shelf hardware where possible, but have always struggled to find target system that fit our requirements. As we work very closely with ARM (as both a provider of training to ARM and an ARM Approved Training Center) we were made aware of the mbed in its very early days.
Initially we thought the concept of the mbed was a great idea, but unfortunately had to rule it out on a number of reasons:
- We need an offline IDE (e.g. Keil uVision or IAR EW) as when training on a customer site we cannot guarantee internet access - may sites, for security reasons, are locked down.
- As great as the mbed library is, it actually hides all the code we are teaching engineers to develop (e.g GPIO, programming UARTs, handling interrupts, fault handling, etc.)
- As a consequence of (2) we also need source level debugging (e.g. breakpoint, reading assembler, memory access, single-step, etc.) and visibility of the build process (e.g. what the compiler & linker are doing, memory maps, etc.)
Even though I was a fan of the mbed (I did some early work on MQTT with the mbed) we didn’t pursue it as a viable target, instead prototyping our own board deliberately based around the same core as the original mbed platform (NXP LPC17xx series). Students are always asking for hardware they can continue to experiment with after the course and by using the same core it allowed us to point them at the mbed. As an aside, in the Embedded C++ courses, we recommend students take a look at the mbed libraries to illustrate how well device drivers can be wrapped in C++ objects.
Luckily for us, before we’d gone into full production, ARM announced CMSIS-DAP and its support for the mbed. So recently we have spent some time experimenting with CMSIS-DAP using the mbed and the Keil uVision IDE. The details of which are:
- Native C/C++ Application development for the mbed using CMSIS-DAP
- User I/O from mbed with CMSIS-DAP
- Rehosting ARMCC for the mbed with CMSIS-DAP
- Test Driven Development (TDD) with the mbed
The great news is that mbed + CMSIS-DAP meet our needs and as such we are redesigning our training platform to be to accommodate an mbed rather than mounting the NXP LPC1768 directly. We also have a full TDD (Test Driven Development) setup using the mbed, the Unity TDD framework and a little bit of Python for use on our embedded software testing course.
You can find me at: https://mbed.org/users/feabhas/
On June 17th the ARM University Program will be running a one-day Microcontroller Workshop at ARM Headquarters in Cambridge.
These workshops are exclusively for teaching faculty and post-graduate members of academia, and will provide the knowledge needed to teach students to use these tools in Labs and Projects.
The objective of this workshop is simple: “train the trainer”, so you are able to share this knowledge with your students.
ARM University Program
The aim of the ARM University Program is to encourage the use of ARM processors as the basis for educational labs and university courses. University courses, student projects, and research which focus on SoC design, computer architecture, embedded systems, microprocessors/controllers, assembly programming, OS application development, robotics, or mechatronics can benefit from using ARM IP and development systems. The program provides a variety of teaching materials, development tools, and other resources for both faculty and students.
- Introduction to the ARM University Program by Worldwide University Manager Dr. Khaled Benkrid
- Introduction of ARM and its relevance to Embedded Systems Education
- How to fit this activity into your classes and projects
- Hands-on exercises using both the mbed online compiler and the Keil-ARM MDK development environment via the CMSIS-DAP standard
- Q&A and networking discussions
- Rob Toulson, Director, The Cultures of The Digital Economy Research Institute, Anglia Ruskin University, Cambridge
- Tim Wilmshurst, Head of Electronic Systems, University of Derby
Joint authors of: “Fast and Effective Embedded Systems Design: applying the ARM mbed” available on Amazon
- Chris Styles, mbed co-founder. Principal Engineer, Online Tools, ARM Cambridge
ARM Headquarters, Cambridge. Click for map
Who Should Attend
These workshops are exclusively for teaching faculty and post-graduate members of academia, and will provide you with the knowledge needed to teach students to use these tools in labs and projects. Attendees who complete the full day of training will receive their own mbed board, an mbed Application Board, their own copy of MDK-PRO development environment, along with copies of all the training materials used.
Dates & Times
The primary workshop is on Monday 17th June: - If there is sufficient demand, a second workshop will run on the 18th June - Registration at 9:00, workshop begins at 9:30. Close by 17:00
For commercial companies there is usually a charge for these workshops, but these special university workshops are completely FREE-OF-CHARGE for all members of academia. However, for reasons of cost, only the simplest of catering and refreshments will be provided.
- These workshops are only open to post-graduate members of academia
- It is unlikely that we will accept more than two delegates from any particular department or faculty.
- We reserve the right to accept or refuse registrations based on our wish to enable the broadest spectrum of UK Universities to participate.
- Given the cost of arranging this training, please do not register if you are not sure that you can attend!
Find out more about the ARM University Program
Dr. Khaled Benkrid, Robert Owen and other members of the ARM University Programme Team will be there, and will be available to discuss your needs.
- Please note that ALL the information on the form must be completed.
- Workshop confirmations will be issued late May. Please do not expect confirmation of a place before 28th May.
- Final timing and travel advice will be issued with the confirmations.
- You will need to bring your own laptop, preferably running Windows (the mbed online compiler is OS independent. MDK and TeraTerm require Windows)
- Please download and install the evaluation version of MDK in advance, from the Keil website (Click: Evaluation Software Download)
The workshop was recorded and are available online to watch now.
We’re excited to announce we’re partnering with Xively on a kit for developers creating Internet of Things products! Xively builds on COSM/Pachube technology which leverages LogMeIn’s cloud that already connects over 250 million devices worldwide (mbed users among them). Combined with mbed you can rapidly prototype connected devices and co-develop IoT solutions, then easily migrate to a production design.
Xively Jumpstart Kit: ARM mbed edition includes :
- mbed LPC1768 (ARM Cortex-M3 based microcontroller)
- mbed application board (integrated sensors, comms, LCD display)
- mbed’s professional online tools for software development
- All the necessary libraries for Internet connection, sensor and LCD display drivers
- Xively API library to connect mbed to the cloud
Xively Cloud Services™
- Monitor and control your mbed device via the public cloud
- Develop custom web or smartphone applications using your mbed prototype
- Use Xively’s platform to provision and manage production devices
We are pleased to announce the introduction of an issue tracker for every mbed code repository (libraries and programs).
This new feature is switched off on repositories by default; to enable it on your code repository, just tick the "Enable issue tracking" checkbox in the "Admin settings":
We've included a very important field in the form for reporting an issue: the "URL to testcase program". Through this field you can provide a minimal test case reproducing the problem to the library maintainers, making it easier to find and fix problems.
We hope this will be a great way to track issue and feature requests on libraries, and make it even easier to improve the code quality of libraries published on mbed.org.
We have already enabled the issue tracker for all the mbed official code repositories. If you have issues related to these, please add a ticket. Also, if in the past you reported an issue in the forums or in a comment, that has perhaps not been noticed, it'd be great if you could add it here so it doesn't get missed. On the official mbed libraries, we will certainly give higher priority to the issues that have been reported with a testcase program, so it is a great habit to get into.
We are pleased to announce that the CMSIS software components used by the mbed SDK have been released under a permissive BSD open source license!
After we announced the open sourcing of the mbed SDK a couple of months ago, we received many queries about the license of the CMSIS components used by the mbed SDK.
The CMSIS package from ARM is not a typical "software project", it is the vehicle used by ARM to provide standard software interfaces to the Cortex-M processors. For this reason ARM adopted a customized license to serve its standardization effort. Unfortunately, not being a well-known license, many developers struggled to understand what were the implications of mixing the actual CMSIS software components with proprietary code, or code released under a different open source license.
To clear this confusion, ARM has officially released the software components of the CMSIS package, used by the mbed SDK, under the well known and understood BSD license, while the CMSIS Specification itself remains licensed under an ARM proprietary licence.
In the official CMSIS package, this is the relevant content of the "CMSIS END USER LICENCE AGREEMENT.pdf":
The package also includes the components contained in the following directories: (a) ./CMSIS/DSP_Lib - DSP Library sources and examples; (b) ./CMSIS/Include - Header files; (c) ./CMSIS/Lib - DSP Library build for various toolchains; (d) ./CMSIS/RTOS - Header file template for CMSIS-RTOS implementation; and (e) ./Device - Template files and implementations for Cortex-M class processors. All of the above components are licensed to you under the terms of the BSD licence, which is incorporated within or alongside the above components.
This makes the whole mbed SDK completely open source with a mix of well known and understood permissive open source licenses: Apache and BSD.
Have fun and keep innovating!