mobile and embedded devices secure embedded systemscduffy/medses/l1.pdf · embedded system -...
TRANSCRIPT
Mobile and Embedded Devices
Secure Embedded Systems
Introduction to the course
About me
Craig Duffy Room 2Q17 Best to email
I specialise in embedded and mobile systems, mainly Linux based
Embedded Systems/Devices - aims
• This course aims to introduce you to mobile and embedded systems
• What are mobile/embedded systems?– Smaller systems
– Low power
– Portable
– Part of large system
– Real-time features
Embedded System - features
• Embedded software has different characteristics than more mainstream software– Speed, size, interface,
• Embedded software development is very different from ‘normal’ software development– Use of tools, system initialisation, interaction
with systems, debugging
Lectures/Practicals/Labs• In the lectures we will look at cross
development, arm architecture, writing low level C and Assembler, technologies like JTAG, SD Cards, Ethernet and Flash memory.
• In the practicals will focus on programming the Olimex boards, developing stand alone programs to use its resources and the various tools that embedded engineers use.
• Eventually we will port FreeRTOS onto the board and write some applications.
Lecture list
• Cross development techniques– Using a cross development environment– Extra tools for software development
• Using C and assembler language– Linking issues– Booting systems
• arm Architecture, CORTEX M series– RISC
• Writing low level devices– Embedded OS, real-time executive and monitors
• Embedded and mobile technologies– JTAG, Ethernet, Flash memory, SD cards
The Olimex board #1
The Olimex boards are based on the STMicroelectronics arm STM32F1 processor– ST version of arm core– 72MHz CPU– Memory protection register– 256 KB Flash, 64 KB RAM– USB interfaces– Ethernet
Olimex STM32-P107 Board
The Olimex board #2
• The board was developed for prototyping
• Has 3 serial interfaces connected - RS232, JTAG & UEXT • 10/100Mbit Ethernet • USB Host USB OTG• Switches and LEDs• CAN Network• SPI/I2C/I2S buses• Mini SD/MMC card connector• JTAG interface• Prototyping area• 16/32 instructions – Thumb machine
The arm CPU
• We will explore arm’s CPUs and look at low powered and RISC CPUs through the arm Cortex M3.
• We will also look at the types of boards and interfaces and the software that can run on them.
• We will look at some simple arm assembly language programming but most of our work will be in C.
Development environment
• We will be using a Code Sourcery GNU cross compiler kit
• The version of gcc is 4.5.2• We will also use binutils, gdb• Plus various other utilities
– Openocd - an open source jtag programmer suite
– telnet – to connect to openocd– eclipse – an open source IDE
Lab organisation
• The first few weeks will be small scale programming of the boards
• We will look at using the ST Micro standard library
• We will program the various peripherals on the board
• You will be guided in porting FreeRTOS onto the board and you will develop an app for it.
Literature and information sources
• Some books– The Definitive Guide to the ARM®
Cortex-M3 – Joseph Yiu – Arm System Developer’s Guide – Sloss,
Symes & Wright– ARM Architecture Reference Manual – D
Seal
Useful web sites
• My homes pages– cems.uwe.ac.uk/~cduffy,
kenny.netlabs.cems.uwe.ac.uk/~cduffy
• Web sites– ARM UK, freertos, GNU, Newlib,
– IBM developerworks
– ST micro web site
– Kernel newbies
– The Linux Documentation Project (LDP)