Documente Academic
Documente Profesional
Documente Cultură
Dan Smith
Principal Engineer, Barr Group
Automation
Multicore
Concurrency
Connectivity
FIRMWARE
Software
High Speed
Interconnect
SoC
Industry experience
Telecom & Datacom
Industrial Control
Low-power Devices & Consumer Electronics
More information:
Why?
Better tools
Easier than ever to prototype something quickly
More time focusing on product-specific requirements and
functionality
9
Signal processing
10
11
Renesas MCUs
SuperH (SH2A-FPU, SH4A)
RX Family (RX600)
MCU/DSP Hybrid (FPU,MAC,Barrel Shifter)
Digital Signal Controllers
M16C Family (R32C / 100)
12
Test-driven development
13
14
Write test(s)
Run test(s) FAIL (no logic in code)
Write code to make tests pass
Run tests PASS
Emphasis on automation
Essential if battery of tests is to be run over & over again
16
Application
17
Host Implementation
Target Implementation
Host Platform
Target Platform
18
19
20
21
22
C (today)
30
C++ (today)
20
10
0
23
C (expected)
C++ (expected)
24
32 kilobytes or less:8%
Up to 256 kilobytes : 24%
Up to 1MB: 56%
Greater than 1MB: 71%
e2 Studio (Eclipse)
Renesas High-Performance Embedded Workshop (HEW)
IAR Embedded Workbench
Green Hills MULTI
27
28
29
Target Side
Bootloader
U-Boot Bootloader
RTOS
FreeRTOS
Filesystem
FatFs (ElmChan)
TCP/IP
lwIP, uIP
30
31
32
33
32 bit offerings
RISC: RX Family (RX600, RX200, )
CISC: V850, SuperH
34
35
What is heat?
Wasted energy!
Reduced heat
Reduced cooling costs and complexity
Better reliability
Battery-powered devices
Longer run time
Smaller package
Happier customers
Better for environment
Less expensive to operate
36
37
38
39
41
xUML
UML
42
Code
OFF
carsEnabled
pedsEnabled
exit /
exit /
carsGreen
pedsWalk
entry / CARS_GREEN
exit /
entry / PEDS_WALK
exit /
TIMEOUT
carsGreenNoPed
entry /
PEDS_WAITING
pedsFlash
entry /
exit /
TIMEOUT
carsGreenInt
TIMEOUT
entry /
PEDS_WAITING
[else]
[me->flashCtr != 0] /
--me->flashCtr;
carsGreenPedWait
entry /
TIMEOUT
[else] /
carsYellow
[(me->flashCtr & 1) == 0] /
entry / CARS_YELLOW
exit /
TIMEOUT
offline
entry /
exit /
ON
TIMEOUT /
me->flashCtr ^= 1;
[(me->flashCtr & 1) == 0] /
CARS_RED; PEDS_DONT_WALK;
[else] / CARS_BLANK; PEDS_BLANK;
43
45
46
Learning Curve
Complex tools impose a serious learning curve
Easy to become bogged down in options & drawing / layout
Beware of analysis paralysis!
Move to target
Use architecture-independent data types (e.g. uint32_t)
Abstract away underlying hardware
47
Code Generation
One of the biggest motivations for modeling
UML-aware drawing tools are far better than Visio
but code generation is even better!
48
49
50
52
53
54
55
58
Books:
Embedded C Coding Standard, Michael Barr
The CERT C Secure Coding Standard, Robert Seacord
Practical UML Statecharts in C/C++, 2nd Edition: Event-Driven
Programming for Embedded Systems, Miro Samek
Test Driven Development for Embedded C, James Grenning
C++ Primer, 5th Ed., Lippman, Moo, LaJoie
59
Questions?
60
or
Ask me for the paper form for you to use
Thank you!
61