C Programming and Embedded Systems - Inspiring …tinoosh/cmpe311/notes/Intro.pdf · C Programming...
Transcript of C Programming and Embedded Systems - Inspiring …tinoosh/cmpe311/notes/Intro.pdf · C Programming...
![Page 1: C Programming and Embedded Systems - Inspiring …tinoosh/cmpe311/notes/Intro.pdf · C Programming and Embedded Systems ... with real-time computing constraints. ... microcontrollers](https://reader031.fdocuments.us/reader031/viewer/2022021512/5b1666f97f8b9a6d6d8bb9c5/html5/thumbnails/1.jpg)
C Programming and Embedded
SystemsInstructor: Tinoosh Mohsenin
Modified from slides by Alexander Nelson
![Page 2: C Programming and Embedded Systems - Inspiring …tinoosh/cmpe311/notes/Intro.pdf · C Programming and Embedded Systems ... with real-time computing constraints. ... microcontrollers](https://reader031.fdocuments.us/reader031/viewer/2022021512/5b1666f97f8b9a6d6d8bb9c5/html5/thumbnails/2.jpg)
What is an Embedded System?
• Loose Definition:▫ A system which is part of a larger system
• What does that actually mean▫ Hardware/Software co-design
Usually with specific purpose Usually special set of constraints (size/power/time)
▫ From Wiki: An embedded system is a computer system with a dedicated
function within a larger mechanical or electrical system, often with real-time computing constraints. It is embedded as part of a complete device often including hardware and mechanical parts. Embedded systems control many devices in common use today.
• Can be based on microcontroller, DSP, ASICs, even standard Microprocessor unit(MPU)
![Page 3: C Programming and Embedded Systems - Inspiring …tinoosh/cmpe311/notes/Intro.pdf · C Programming and Embedded Systems ... with real-time computing constraints. ... microcontrollers](https://reader031.fdocuments.us/reader031/viewer/2022021512/5b1666f97f8b9a6d6d8bb9c5/html5/thumbnails/3.jpg)
Examples
*Image credit to Fitbit, Arduino, Google, ford, we-online, Acorn Instruments, Raspberry Pi and used under Fair Use law. I do not claim ownership to any of these images
![Page 4: C Programming and Embedded Systems - Inspiring …tinoosh/cmpe311/notes/Intro.pdf · C Programming and Embedded Systems ... with real-time computing constraints. ... microcontrollers](https://reader031.fdocuments.us/reader031/viewer/2022021512/5b1666f97f8b9a6d6d8bb9c5/html5/thumbnails/4.jpg)
Market Share
• Embedded industry represents about $17 billion in revenue per year
▫ Compare to $19 B for cellphone processors
▫ Compare to ~$25 B for non-mobile, non-embedded MPUs
• Embedded Systems outnumber other MPUs by over 100:1
Data pulled from icinsights.com
![Page 5: C Programming and Embedded Systems - Inspiring …tinoosh/cmpe311/notes/Intro.pdf · C Programming and Embedded Systems ... with real-time computing constraints. ... microcontrollers](https://reader031.fdocuments.us/reader031/viewer/2022021512/5b1666f97f8b9a6d6d8bb9c5/html5/thumbnails/5.jpg)
Trends in Cellphone Chip Integration
Chip integration is increasing every generation
Cell phone size is decreasing
Users want more features every generation
Power budget is very limited
Y. Neuvo, ISSCC 2004
1993 iPhone 3GS
![Page 6: C Programming and Embedded Systems - Inspiring …tinoosh/cmpe311/notes/Intro.pdf · C Programming and Embedded Systems ... with real-time computing constraints. ... microcontrollers](https://reader031.fdocuments.us/reader031/viewer/2022021512/5b1666f97f8b9a6d6d8bb9c5/html5/thumbnails/6.jpg)
Integrated Transceiver
Cellphone Architecture Example
Cellphone chips have multiple processing cores and support multiple applications and features
Ex: Integrated Transceiver: WiFi (802.11a/b/g), Bluetooth, FM
www.phonewreck.com,C.H. Van Berkel, DATE 2009
6
![Page 7: C Programming and Embedded Systems - Inspiring …tinoosh/cmpe311/notes/Intro.pdf · C Programming and Embedded Systems ... with real-time computing constraints. ... microcontrollers](https://reader031.fdocuments.us/reader031/viewer/2022021512/5b1666f97f8b9a6d6d8bb9c5/html5/thumbnails/7.jpg)
Smart Health Monitoring: Analysis & Delivery
• Wearable medical monitoring systems▫ Reliable and seamless monitoring integrated into patients daily life
routine
• Data analysis▫ Real-time data analysis and diagnosis for efficient healthcare delivery
• Data delivery▫ Real time data transmission to healthcare providers (e.g. nurses, primary
care physicians, and first responders) through networks and immediate therapy through smart drug delivery
7
![Page 8: C Programming and Embedded Systems - Inspiring …tinoosh/cmpe311/notes/Intro.pdf · C Programming and Embedded Systems ... with real-time computing constraints. ... microcontrollers](https://reader031.fdocuments.us/reader031/viewer/2022021512/5b1666f97f8b9a6d6d8bb9c5/html5/thumbnails/8.jpg)
Military & Aerospace Telemedicine
![Page 9: C Programming and Embedded Systems - Inspiring …tinoosh/cmpe311/notes/Intro.pdf · C Programming and Embedded Systems ... with real-time computing constraints. ... microcontrollers](https://reader031.fdocuments.us/reader031/viewer/2022021512/5b1666f97f8b9a6d6d8bb9c5/html5/thumbnails/9.jpg)
Key Objectives• High performance: 10-100 GOPS
• Energy efficiency: 100-1000 GOPS/W
• Area efficiency: 10-100 GOPS/mm2
• Programmability
µC/
![Page 10: C Programming and Embedded Systems - Inspiring …tinoosh/cmpe311/notes/Intro.pdf · C Programming and Embedded Systems ... with real-time computing constraints. ... microcontrollers](https://reader031.fdocuments.us/reader031/viewer/2022021512/5b1666f97f8b9a6d6d8bb9c5/html5/thumbnails/10.jpg)
Microprocessor Based Embedded Systems
Microprocessor
Minimal embedded SystemI/O Interfaces
Communications
DAC
ADC
Other Peripherals
Embedded into microcontrollers
Clock/Time
Watchdog Timer
Bus Logic(Address, Data,
Control)
Digital I/O
Data RAM
Program ROM
![Page 11: C Programming and Embedded Systems - Inspiring …tinoosh/cmpe311/notes/Intro.pdf · C Programming and Embedded Systems ... with real-time computing constraints. ... microcontrollers](https://reader031.fdocuments.us/reader031/viewer/2022021512/5b1666f97f8b9a6d6d8bb9c5/html5/thumbnails/11.jpg)
Typical BUS structure comprising Address, Data and control signals
![Page 12: C Programming and Embedded Systems - Inspiring …tinoosh/cmpe311/notes/Intro.pdf · C Programming and Embedded Systems ... with real-time computing constraints. ... microcontrollers](https://reader031.fdocuments.us/reader031/viewer/2022021512/5b1666f97f8b9a6d6d8bb9c5/html5/thumbnails/12.jpg)
Data movement over an 8-bit Bus
Example:
For (i=0; i<8; i++){
printf (“%i”, a[i]);}
![Page 13: C Programming and Embedded Systems - Inspiring …tinoosh/cmpe311/notes/Intro.pdf · C Programming and Embedded Systems ... with real-time computing constraints. ... microcontrollers](https://reader031.fdocuments.us/reader031/viewer/2022021512/5b1666f97f8b9a6d6d8bb9c5/html5/thumbnails/13.jpg)
Microcontroller block diagram
![Page 14: C Programming and Embedded Systems - Inspiring …tinoosh/cmpe311/notes/Intro.pdf · C Programming and Embedded Systems ... with real-time computing constraints. ... microcontrollers](https://reader031.fdocuments.us/reader031/viewer/2022021512/5b1666f97f8b9a6d6d8bb9c5/html5/thumbnails/14.jpg)
fig_01_11
Big EndianIn big endian, you store the most significant byte in the smallest address
Little EndianIn little endian, you store the least significant byte in the smallest address
![Page 15: C Programming and Embedded Systems - Inspiring …tinoosh/cmpe311/notes/Intro.pdf · C Programming and Embedded Systems ... with real-time computing constraints. ... microcontrollers](https://reader031.fdocuments.us/reader031/viewer/2022021512/5b1666f97f8b9a6d6d8bb9c5/html5/thumbnails/15.jpg)
Memory-General Concepts
• A memory is an array of storage locations▫ Each with a unique address
▫ Like a collection of registers, but with optimized implementation
• Address is unsigned-binary encoded▫ n address bits ⇒ 2n locations
• All locations the same size▫ 2n × m bit memory
0
1
2
3
4
5
6
2n–2
2n–1
m bits
![Page 16: C Programming and Embedded Systems - Inspiring …tinoosh/cmpe311/notes/Intro.pdf · C Programming and Embedded Systems ... with real-time computing constraints. ... microcontrollers](https://reader031.fdocuments.us/reader031/viewer/2022021512/5b1666f97f8b9a6d6d8bb9c5/html5/thumbnails/16.jpg)
Memory Sizes
• Use power-of-2 multipliers▫ Kilo (K): 210 = 1,024 ≈ 103
▫ Mega (M): 220 = 1,048,576 ≈ 106
▫ Giga (G): 230 = 1,073,741,824 ≈ 109
• Example▫ 32K × 32-bit memory
▫ Capacity = 1,024K = 1Mbit
▫ Requires 15 address bits
• Size is determined by application requirements
![Page 17: C Programming and Embedded Systems - Inspiring …tinoosh/cmpe311/notes/Intro.pdf · C Programming and Embedded Systems ... with real-time computing constraints. ... microcontrollers](https://reader031.fdocuments.us/reader031/viewer/2022021512/5b1666f97f8b9a6d6d8bb9c5/html5/thumbnails/17.jpg)
Basic Memory Operations
• a inputs: unsigned address• d_in and d_out
▫ Type depends on application• Write operation
▫ en = 1, wr = 1▫ d_in value stored in location given
by address inputs• Read operation
▫ en = 1, wr = 0▫ d_out driven with value of location
given by address inputs• Idle: en = 0
a(0)
… …a(1)
en
wr
a(n–1)
d_in(0)
… …d_in(1)
d_in(m–1)
d_out(0)
…
…d_out(1)
d_out(m–1)
![Page 18: C Programming and Embedded Systems - Inspiring …tinoosh/cmpe311/notes/Intro.pdf · C Programming and Embedded Systems ... with real-time computing constraints. ... microcontrollers](https://reader031.fdocuments.us/reader031/viewer/2022021512/5b1666f97f8b9a6d6d8bb9c5/html5/thumbnails/18.jpg)
Int myVar=10
Int* myVarPtr=&myVar // take the
//address of myVar assign it to the
//pointer variable myVarPtr
The example places the integer value 10 in binary into somelocation e.g address 3000
When interpreted by the system, the code directs the system to set aside another memory word to hold the address
![Page 19: C Programming and Embedded Systems - Inspiring …tinoosh/cmpe311/notes/Intro.pdf · C Programming and Embedded Systems ... with real-time computing constraints. ... microcontrollers](https://reader031.fdocuments.us/reader031/viewer/2022021512/5b1666f97f8b9a6d6d8bb9c5/html5/thumbnails/19.jpg)
Why Microcontrollers?
• Peripheral loaded▫ ADC, DAC, GPIOs, Serial Interfaces
• Cheap▫ ~$1 for 8-bit processor
• Relatively Simple and Low Power▫ ~300µA operation (1 AA battery for 275 days,
depending on the application)▫ <1µA sleep (1 AA battery for 225 years)
• Programmable▫ Assembly or C
![Page 20: C Programming and Embedded Systems - Inspiring …tinoosh/cmpe311/notes/Intro.pdf · C Programming and Embedded Systems ... with real-time computing constraints. ... microcontrollers](https://reader031.fdocuments.us/reader031/viewer/2022021512/5b1666f97f8b9a6d6d8bb9c5/html5/thumbnails/20.jpg)
Our Microcontroller
• AVR Butterfly▫ ATMEGA 169PV chip▫ Built-in peripherals
120 segment LCD Screen Joystick Piezo element – sounds
• Programmer▫ AVR Dragon
• These boards will be used for projects and discussions