Transcript ARM

David Harrison,
CEO/Design Engineer for Model Sounds Inc.
1
What is ARM?
 ARM is a family of instruction set architectures for computer processors
based on a Reduced Instruction Set Computing (RISC) architecture
developed by British company ARM Holdings – arm.com
 ARM Holdings develops the instruction set and architecture for ARM-based
products, but does not manufacture products – it licenses its ARM core
designs to semiconductor manufacturers such as TI, ST, Atmel, NXP,
Freescale, Cypress, Renesas etc.
 ARM IP is in 32-bit and 64-bit RISC microprocessors and microcontrollers,
graphics processors, enabling software, cell libraries, embedded memories,
high-speed connectivity products, peripherals and development tools.
 ARM chips are ubiquitous – used in everything from cell phones, tablets,
cable boxes, smart meters, hard drives, routers, etc.
David Harrison – January 21, 2015
2
What is ARM? - continued
 In the early 'pre-ARM' days, ARM stood for Acorn RISC
Machines. Then when ARM became a separate company,
ARM became Advanced RISC Machines and the modern
name is just ARM.
 VLSI Technology produced the first ARM silicon on 26 April
1985. It worked the first time, and was known as ARM1.
 Three main ARM series – A, M, R
David Harrison – January 21, 2015
3
ARM Cortex-A Series
 The ARM® Cortex®-A series of application processors provide a range
of solutions for devices undertaking complex compute tasks, such as
hosting a rich Operating System (OS) platform, executing a user
interface and supporting software applications.
 Cortex-A series processors can be found in a range of the highest
performing consumer devices, including a spectrum
of smartphones from ultra-low-cost to high-end flagship
devices, mobile computing platforms, digital TVs, and set-top boxes,
but can also be found in enterprise networking, printers and
server solutions.
David Harrison – January 21, 2015
4
ARM Cortex-R Series
 The ARM® Cortex®-R real-time processors offer high-performance computing





solutions for embedded systems where reliability, high availability, fault
tolerance, maintainability and real-time responses are required.
There are many applications requiring the key Cortex-R series attributes of :
High performance: Fast processing combined with a high clock frequency
Real-time: Processing meets hard real-time constraints on all occasions
Safe: Dependable, reliable systems with high error resistance
Cost effective: Features for optimal performance, power and area.
David Harrison – January 21, 2015
5
ARM Cortex-M Series
 The Cortex-M family is optimized for embedded MCU use in
cost and power sensitive MCU and mixed-signal devices
for applications such as Internet of Things, connectivity, smart
metering, human interface devices, automotive and industrial
control systems, domestic household appliances, consumer
products and medical instrumentation.
 And the Hobbyist’s favourite series!
David Harrison – January 21, 2015
6
ARM Technology Partners
ARM Holdings has over 175 technology partners.
A few are shown below.
David Harrison – January 21, 2015
7
ARM Microcontroller IDE’s/Compilers
 Is very difficult for hobbyists to get decent ARM development tools.
 Atmel provides Atmel Studio 6 IDE with C/C++ compiler suite
free of charge – fully functional, not crippled. Is based on
MS Visual Studio – Windows only.
 Microchip provides MPLABX IDE free of charge. Is based on
NetBeans IDE. Compilers are separate – free ones do not support
code optimization. Licensed version costs USD$900.
 None of the ARM microcontroller manufacturers provide any free
tools. They simply refer you to third part IDE/compiler vendors such
as : IAR, Atollic TrueStudio, Keil MDK etc. These vendors do not
publish prices – you have to apply for a quote on-line!
- E.G. Attollic TrueStudio – USD$2795!!
David Harrison – January 21, 2015
8
Available Free Open Source IDE’s
 Eclipse – http://eclipse.org. Java based, originally intended for
Java development but has extensions for C/C++ and other
languages, e.g. PHP for Web development.
 Eclipse is a generic modern IDE only – it has to be integrated
with a C/C++ compiler toolset.
 NetBeans – https://netbeans.org. Also Java based, originally
intended for Java development but has extensions for C/C++
development. NetBeans IDE is the official IDE for Java 8.
 NetBeans is a generic modern IDE only – it has to be
integrated with a C/C++ compiler toolset.
David Harrison – January 21, 2015
9
Almost Free Open Source IDE’s
 Atollic TrueSTUDIO for ARM Lite v5.2.1
Stripped down version of their TrueSTUDIO Professional.
Has a 32KByte firmware size limit.
 Keil MDK ARM Lite
Stripped down version of their MDK ARM Professional.
Has a 32KByte firmware size limit.
 Microsoft Visual Studio – Community Edition 2013
http://go.microsoft.com/fwlink/?LinkId=517284
then add VisualGDB from Sysprogs –
VisualGDB embedded edition is USD$89.00
 MicroElektronika (Belgrade, Serbia) – ARM Integrated IDE/C Compiler USD$299,
MikroProg ARM programmer – USD$49
David Harrison – January 21, 2015
10
ARM Development Tools Setup Process
 Since both Eclipse and NetBeans are Java based you must have Java
installed FIRST - suggest you get the latest version from java.com.
NOTE : You need the JDK (Java Development Kit, not just the JRE)
 Install the IDE of your choice.
 Install the GNU Compiler toolchain for ARM Embedded.
 Integrate the IDE with the Compiler toolchain and possibly GDB for
live debugging capability.
David Harrison – January 21, 2015
11
Installing Java Development Kit (JDK – NOT JRE)
Get latest Java build from Oracle's official JDK Web site:
http://www.oracle.com/technetwork/java/javase/downloads/index-jsp138363.html#javasejdk
12
Installing Eclipse CDT for C/C++
Download Eclipse CDT package for C/C++ (NOT Eclipse Standard Edition)
http://eclipse.org/downloads/packages/eclipse-ide-cc-developers/lunasr1
David Harrison – January 21, 2015
13
Getting GNU Tools for ARM Embedded …
 http://gnuarmeclipse.livius.net/blog/tag/gnu-tools-for-embedded/
David Harrison – January 21, 2015
14
Getting GNU Tools for ARM Embedded
https://launchpad.net/gcc-arm-embedded
David Harrison – January 21, 2015
15
Installing GNU Tools for ARM Embedded
 For Windows : gcc-arm-none-eabi-4_9-2014q4-20141203-win32.exe
 For Linux : gcc-arm-none-eabi-4_9-2014q4-20141203-linux.tar.tar
 For MAC OS : gcc-arm-none-eabi-4_9-2014q4-20141203-mac.tar.tar
 Install for your own OS
David Harrison – January 21, 2015
16
Eclipse Welcome Page
David Harrison – January 21, 2015
17
Your First Eclipse ARM C Project - 1
David Harrison – January 21, 2015
18
Your First Eclipse ARM C Project - 2
David Harrison – January 21, 2015
19
Your First Eclipse ARM C Project - 3
Cortex Microcontroller Software
Interface Standard (CMSIS)
David Harrison – January 21, 2015
20
Your First Eclipse ARM C Project - 4
David Harrison – January 21, 2015
21
Your First Eclipse ARM C Project - 5
David Harrison – January 21, 2015
22
Setting Eclipse ARM Internal Builder
David Harrison – January 21, 2015
23
Building the ARM Project-1
David Harrison – January 21, 2015
24
Building the ARM Project-2
David Harrison – January 21, 2015
25
Obtaining ST-LINK Utility to
Program the ST STM32F3Discovery Kit
http://www.st.com/web/en/catalog/tools/FM147/SC1887/PF258168?s_searchtype=
keyword#
David Harrison – January 21, 2015
26
Install ST-LINK Utility to Program the Kit
ST-LINK Utility is Windows only GUI for ST’s ST-LINK programming tool
STM32 ST-LINK Utility_v3.5.exe
David Harrison – January 21, 2015
27
Connect ST-LINK Utility to the Kit
David Harrison – January 21, 2015
28
ST-LINK Utility Connected to the Kit
David Harrison – January 21, 2015
29
Opening the Hex Firmware file to Program
David Harrison – January 21, 2015
30
Programming the Hex Firmware File to Target Kit
David Harrison – January 21, 2015
31