element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • 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
RoadTests & Reviews
  • Products
  • More
RoadTests & Reviews
Blog Arm Education: Internet of Things Course - Keil MDK
  • Blog
  • RoadTest Forum
  • Documents
  • RoadTests
  • Reviews
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join RoadTests & Reviews to participate - click to join for free!
  • Share
  • More
  • Cancel
  • Author Author: ralphjy
  • Date Created: 21 May 2019 3:21 AM Date Created
  • Views 1046 views
  • Likes 2 likes
  • Comments 4 comments
Related
Recommended
  • RoadTest
  • arm education iot course

Arm Education: Internet of Things Course - Keil MDK

ralphjy
ralphjy
21 May 2019

The third course module introduces the Arm Cortex-M4 Processor Architecture that is used for the STM32F401 processor on the development board included with the course.  This course module also has the first lab and goes through installation of the required software tools and libraries.

 

image

 

The Cortex-M4 Processor combines high performance with low power consumption - making it ideal for IoT type applications.

 

image

 

Keil MDK Installation

The Keil MDK (Microcontroller Development Kit) is the design environment used to build and deploy the firmware for the development board.  It includes a project manager, editor, compiler, debugger, and the required component libraries.

image

 

There is always a learning curve associated with using new programs and tools - even just the installation, so I had a few hiccups in the process.

 

My first problem was sort of funny.  The instructions in the lab indicated "You can find all of the files associated with this lab in the Resources section of the Main Menu".   Being new to using the VitalSource environment it took me a while to figure out where the Resources section was located (it's opened with the paper clip icon in the course window).  Once you locate the Resource list you can download all of the associated lab material.

image

My next problem was with the the STLink installation that is required for USB connection to the the development board.  I followed the installation instructions and downloaded and installed the driver but it would not detect the ST-Link device.

image

image

 

For some reason, the ST-LinkUpgrade.exe program that was included with Keil_v5 was not updating my USB driver.  I had to go to the Keil website and download the STM32 ST-LINK utility, STM32 ST-LINK Utility v4.4.0 setup.exe.

image

 

This new program updated the USB driver and I was able to see the STLink port in Device Manager and connect to the board.

 

image

 

The board firmware was not the latest version, so I upgraded it.

image

 

The rest of the installation went without issues.  I used the Pack Installer to load the libraries required for the hardware included in the course.

 

image

 

Lab Exercise - Compute Square Root Approximation

The lab exercise is intended to familiarize you with the with the mVision IDE.  It also demonstrates integrating assembly code with C code.

 

The IDE is a familiar Windows GUI interface with dedicated windows for tasks like Project/File management, Code editing, Build and Error output.

image

 

I like the instructional format - a source code template is provided and the accompanying video walks you through the development and testing of the program.  By use of the assembly code this lab provided insight into the operation of the device registers and the main and process stacks.

 

There are useful debug windows that allow you to view the registers, variables and there is a disassembly window to view the bare metal code.

 

Here's the view of the sqrt subroutine in the disassembly window:

image

 

In this lab the program was coded, built, and uploaded to the device.  Then the debug interface was used to execute, break trap and single step while observing the variables and registers.  A good start and I'm looking forward to the developing the IoT application (Weather Station).

  • Sign in to reply
  • Jan Cumps
    Jan Cumps over 6 years ago in reply to ralphjy

    There will be a time when manufacturers will stop putting limitations in their evaluation toolsets. Both time- and size-based.

    I can see productivity-focused options still being limited -  but the two ones above have never done any supplier any favour.

    You restrict (or often: stop) the possibilities of people that are actually interested in your product and gotten to the effort of getting hold of a device.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • noorpuri
    noorpuri over 6 years ago

    Online MBED IDE is also best alternative of KEIL

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • ralphjy
    ralphjy over 6 years ago in reply to gordonmx

    Hi Gordon,

     

    I downloaded the limited MDK-Lite Edition.  Don't recall how I chose that one but it doesn't require a license and is listed as used for educational purposes.

    image

    Not sure if this will cause any issues later but it is working for now.  I always get the pop-up warning about the 32 KByte limitation.

     

    When you register with Keil you should get an email with a sales contact but I haven't tried contacting them.

     

    Ralph

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • gordonmx
    gordonmx over 6 years ago

    Good Morning Ralph,

     

    I'm working through module 3 and have installed Keil's uVision v5 IDE, as recommended, but what license did you use and how did you request it?  From STM's website there seems to be a free limited QuickStart license for Cortex M0/M0+ dev boards, but the STM32F401RE has a Cortex M4.  The other option is a 30 day evaluation copy.  To get a 30 day evaluation copy, the ARM Keil website points you to a list of distributor (i.e. Arrow Electronics, Future Electronics, etc.).  Which license did you use and who did you contact?  Thanks.

     

    Gordon

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • 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