Welcome to the Embedded Systems Programming course. My name is Miro Samek and I'd like to teach you how to program embedded microcontrollers in C. This course is structured as a series of short, focused, fast paced, hands-on lessons. In this first lesson, we will get started by installing a free embedded development toolset and ordering a very inexpensive development board so you can actually run your code on a real microcontroller. Your own embedded board is certainly a lot of fun, but you can also follow along even without the board, because I will show you how to use an instruction set simulator. The C language that you are going to learn is a so called "high-level" programming language, but I will also frequently step down to the low level of machine code and show you exactly what happens inside the embedded processor. You will actually see how the processor executes your code, how it manipulates data, and how a computer can "do" things in the real world, such as turn on and off an LED. This deeper understanding will allow you to use the C language more efficiently and with greater confidence. You will gain understanding not just what for your program does, but also how the C statements translate to machine instructions and how fast the processor can execute them. The processor we are going to use in this course is called ARM Cortex-M4F, but what you'll learn will apply to the whole Cortex-M family starting from Cortex-M0, through M0+, Cortex-M3, and M4. The Cortex-M processor family I've chosen for this course is the most popular, modern, and energy efficient family of processor cores you can find in embedded microcontrollers today and for many years to come. Also, familiarity with ARM Cortex will look really good on your resume. So let's get started... The first thing you need is the embedded toolset. For this course, I've selected the professional toolset from IAR systems called EWARM, which stands for Embedded Workbench for ARM. The commercial version of this tool is one of the most expensive on the market, but IAR also offers the *free* size-limited, but not time-limited evaluation version of this toolset, which I will show you how to download and install in a minute. Before we do this, though, I'd only like to mention that I'm not associated with IAR or any microcontroller vendor for that matter. I've simply selected the free evaluation edition of their toolset, because it has all the features I need in this course, such as a state of-the-art C and C++ compiler, a nice embedded debugger, and an ARM instruction set simulator. To download IAR EWARM, point your browser to iar.com... Select the the Service Center menu and click on the Downloads link. On the downloads page, click on the latest Size-limited version of the ARM toolset. On the next page, scroll down and click on the Download software link. This download can take a while, because the file is over 900MB in size. After the download completes, show the file in folder ... double click on it... and run the installer. Click on Install IAR Embedded Workbench. Accept the license, and all default settings... This dialog box asks if you want to install a license dongle on your system. Click NO. Finally, installation copletes. Click Finish. Exit from the IAR navigation pane When the IAR Embedded Workbench comes up for the first time you will be presented with the Registration dialog box. Click Register. This will open the IAR registration form on your browser that you need to fill out. Here the most important step is to Select the Code Size limited license type. You need to fill out all the required fields... and finally you can click on Submit Registration. The IAR registration requires the confirmation of your email address. When you receive the email from IAR, open it and click on the registration link. This opens a web page with your license number, which you need to copy to the clipboard. Next, switch to the IAR Embedded Workbench, and select the Help->License Manager... menu. Finally, copy the license number from to the provided space and click next. Click next to activate the license. All right, your license is now installed and the tool is ready to use. In the last step of this lesson I will show you how to order an inexpensive evaluation board called Stellaris Launchpad from Texas Instruments. I repeat, that this step is optional, because you can use the ARM instruction set simulator in the IAR toolset to follow along in most of the upcoming lessons. I'd also like to mention that I'm not associated with Texas Instruments or any other microcontroller vendor. I've simply selected this particular TI board, because it is completely self-contained. The board is powered from a USB connector and has a complete hardware debugger, which will enable us to look inside the processor. The LaunchPad has a 32-bit ARM Cortex-M4F microcontroller, many peripherals, a bright multi-color LED, two user switches, and connectors for experimentation and furture expansion. Evaluation boards like this used to cost hundred of dollars just a few years ago, but now TI sells this board for only 12.99 US dollars. So, if you wish to order this board, point your browser to ti.com. In the search box, type Stellaris Launchpad Click on the BUY NOW link Click on add to cart and proceed to checkout This concludes the setup part of the course. In the next lesson you will learn how to create your first project in the IAR toolset and watch it run in the simulator and on the LaunchPad board. If you have any questions or comments about this course, please visit state-machine.com/quickstart, where you can find all currently available lessons, class notes, and projects. --- Links used in this lesson: IAR EWARM download: http://www.iar.com/en/Service-Center/Downloads/ TI Stellaris/Tiva LaunchPad board: http://www.ti.com/tool/ek-tm4c123gxl Course web-page: http://www.state-machine.com/quickstart YouTube playlist of the course: http://www.youtube.com/playlist?list=PLPW8O6W-1chwyTzI3BHwBLbGQoPFxPAPM