SlideShare a Scribd company logo
Embedded Objective-C
Shotaro “Fantom” Uchida
Who am I?
• I am Java Enthusiast so far...
– USB EHCI stack in Java
– TCP/IP in Java
– IEEE802.11 in Java
– ZigBee in Java
– OAuth 2.0 in Java
– XModem in Java
• I do everything (Hardware/Software) for Java
• 仕事下さい。よろしくお願いします。
But today...
Objective-C
#import "XYZPerson.h"
@implementation XYZPerson
- (void)sayHello {
NSLog(@"Hello, World!");
}
@end
Arduino
#import "XYZPerson.h"
@implementation XYZPerson
- (void)sayHello {
NSLog(@"Hello, World!");
}
@end
If I could...
Existing Solutions
Language
Bare-Metal C
Arduino Java-like
mbed C++
JavaME JavaME
Tessel JavaScript
Why not Objective-C ???
Is ObjC Proprietary?
How different?
Java
Java
C++ Runtime
JVM
C++
C Runtime
C
ObjC Runtime
Smalltalk-like
C++ Objective-C
5 Reasons Why Objective-C is the
Best
• C++ sucks.
• You can use “Pure C” anytime anywhere.
• It also means that you can use assembly
anytime.
• Powerful object-oriented language, but still
faster than Java.
• And C++ sucks.
Disadvantages
• Large memory footprint
– Classes are loaded at init array calls.
– No “class-loader” system.
– Needs to manage all method symbols i.e.
selectors.
• Message lookup
“Big 3” ObjC Runtime
Compiler Modern-ObjC Cons
Apple Clang Yes iOS/OSX only
libobjc GCC, Clang No Out-dated
No “Foundation”
GNUStep GCC, Clang Yes (w/ Clang) Out-dated
Huge
Another newer runtime “ObjFW”
• Lightweight
– < 1MB
• Portable
– Multi-platform includes Apple devices
– Works with PSP, Wii, and NintendoDS !
• Modern-ObjC
• Clang supported
– -fobjc-runtime=objfw
– Don't stop the support of ObjFW!! Plz!!
• Github
– https://github.com/Midar/objfw
Requirements to run ObjFW
• Still, you need 1MB+ RAM
– External RAM, typically
– Bootloader
• 1MB+ Flash
• “Fast enough” processor
Silabs EFM32 Wonder Gecko
• Cortex-M4F@48MHz
• External Bus Interface
– Up to 4x256MB
– Support code execution via I/D bus
• Ultra low power
• SDK with big memory!
– 4MB PSRAM
– 16MB Nor Flash
It works!!
• Ubuntu 14.04
• Eclipse Kepler
– With debugging!!
• Clang/LLVM 3.5 (trunk)
– Some nice major updates for ARM ;)
• ObjFW 0.8-dev
• Need some workaround...
– Read my blog: http://xmaker.mx/archives/14
Embedded Objective-C
Embedded Objective-C
What's Next?
• Threading support
– CMSIS-RTOS (RTX)
– Free RTOS
• Socket support
– lwIP
• File support
• Hardware APIs
ObjC
Powered
ObjArduino
Relese Date: When It's Done
Ad

More Related Content

What's hot (20)

anatomy of wrist and carpal bones
anatomy of wrist and carpal bones anatomy of wrist and carpal bones
anatomy of wrist and carpal bones
Rajesh Raj
 
Anatomy thorax
Anatomy thoraxAnatomy thorax
Anatomy thorax
eniyewassimie
 
Frog anatomy
Frog anatomyFrog anatomy
Frog anatomy
surendran aduthila
 
Conductive system of the heart rmc 2
Conductive system of the heart rmc 2Conductive system of the heart rmc 2
Conductive system of the heart rmc 2
rashidrmc
 
Anatomy of Hip joint
Anatomy of Hip joint Anatomy of Hip joint
Anatomy of Hip joint
Ammedicine Medicine
 
Structure of blood vessels
Structure of blood vesselsStructure of blood vessels
Structure of blood vessels
AtheenaPandian Enterprises
 
Ankle joint and joints of foot
Ankle joint and joints of footAnkle joint and joints of foot
Ankle joint and joints of foot
Komal Parmar
 
Applied anatomy sciatic nerve injury
Applied anatomy   sciatic nerve injuryApplied anatomy   sciatic nerve injury
Applied anatomy sciatic nerve injury
Akram Jaffar
 
Arm and cubital fossa
Arm and cubital fossaArm and cubital fossa
Arm and cubital fossa
Dr Laxman Khanal
 
Leech
LeechLeech
Leech
MArmaghan1
 
Color atlas of anatomy mc.minn
 Color atlas of anatomy mc.minn Color atlas of anatomy mc.minn
Color atlas of anatomy mc.minn
Mawara Ali
 
Appendicular Skeleton- Lower limb
Appendicular Skeleton- Lower limbAppendicular Skeleton- Lower limb
Appendicular Skeleton- Lower limb
ZENITH PARMAR
 
HAGFISH AND ITS ECONOMIC IMPORTANCE
HAGFISH AND ITS ECONOMIC IMPORTANCE HAGFISH AND ITS ECONOMIC IMPORTANCE
HAGFISH AND ITS ECONOMIC IMPORTANCE
KavimugarajaM
 
Introduction to upper limb
Introduction to upper limbIntroduction to upper limb
Introduction to upper limb
Lucidante1
 
Carpal & Phalanges.pptx
Carpal & Phalanges.pptxCarpal & Phalanges.pptx
Carpal & Phalanges.pptx
Rahul Sharma
 
Knee joint
Knee jointKnee joint
Knee joint
Dr Usha (Physio)
 
Thigh muscles
Thigh musclesThigh muscles
Thigh muscles
Harry Winter-Taylor
 
Orders of class osteichthyes
Orders of class osteichthyesOrders of class osteichthyes
Orders of class osteichthyes
St. Xavier's college, maitighar,Kathmandu
 
Anatomy of Upper extremity
Anatomy of Upper extremityAnatomy of Upper extremity
Anatomy of Upper extremity
Sunil Pahari
 
Anatomy of the ankle and joints of foot
Anatomy of the ankle and joints of footAnatomy of the ankle and joints of foot
Anatomy of the ankle and joints of foot
Akram Jaffar
 
anatomy of wrist and carpal bones
anatomy of wrist and carpal bones anatomy of wrist and carpal bones
anatomy of wrist and carpal bones
Rajesh Raj
 
Conductive system of the heart rmc 2
Conductive system of the heart rmc 2Conductive system of the heart rmc 2
Conductive system of the heart rmc 2
rashidrmc
 
Ankle joint and joints of foot
Ankle joint and joints of footAnkle joint and joints of foot
Ankle joint and joints of foot
Komal Parmar
 
Applied anatomy sciatic nerve injury
Applied anatomy   sciatic nerve injuryApplied anatomy   sciatic nerve injury
Applied anatomy sciatic nerve injury
Akram Jaffar
 
Color atlas of anatomy mc.minn
 Color atlas of anatomy mc.minn Color atlas of anatomy mc.minn
Color atlas of anatomy mc.minn
Mawara Ali
 
Appendicular Skeleton- Lower limb
Appendicular Skeleton- Lower limbAppendicular Skeleton- Lower limb
Appendicular Skeleton- Lower limb
ZENITH PARMAR
 
HAGFISH AND ITS ECONOMIC IMPORTANCE
HAGFISH AND ITS ECONOMIC IMPORTANCE HAGFISH AND ITS ECONOMIC IMPORTANCE
HAGFISH AND ITS ECONOMIC IMPORTANCE
KavimugarajaM
 
Introduction to upper limb
Introduction to upper limbIntroduction to upper limb
Introduction to upper limb
Lucidante1
 
Carpal & Phalanges.pptx
Carpal & Phalanges.pptxCarpal & Phalanges.pptx
Carpal & Phalanges.pptx
Rahul Sharma
 
Anatomy of Upper extremity
Anatomy of Upper extremityAnatomy of Upper extremity
Anatomy of Upper extremity
Sunil Pahari
 
Anatomy of the ankle and joints of foot
Anatomy of the ankle and joints of footAnatomy of the ankle and joints of foot
Anatomy of the ankle and joints of foot
Akram Jaffar
 

Similar to Embedded Objective-C (20)

차세대컴파일러, VM의미래: 애플 오픈소스 LLVM
차세대컴파일러, VM의미래: 애플 오픈소스 LLVM차세대컴파일러, VM의미래: 애플 오픈소스 LLVM
차세대컴파일러, VM의미래: 애플 오픈소스 LLVM
Jung Kim
 
nodebots presentation @seekjobs
nodebots presentation @seekjobsnodebots presentation @seekjobs
nodebots presentation @seekjobs
Esteban (Steven) De Salas
 
Java tuning on GNU/Linux for busy dev
Java tuning on GNU/Linux for busy devJava tuning on GNU/Linux for busy dev
Java tuning on GNU/Linux for busy dev
Tomek Borek
 
Rapid IoT prototyping with mruby
Rapid IoT prototyping with mrubyRapid IoT prototyping with mruby
Rapid IoT prototyping with mruby
雅也 山本
 
Project Basecamp: News From Camp 4
Project Basecamp: News From Camp 4Project Basecamp: News From Camp 4
Project Basecamp: News From Camp 4
Digital Bond
 
You Call that Micro, Mr. Docker? How OSv and Unikernels Help Micro-services S...
You Call that Micro, Mr. Docker? How OSv and Unikernels Help Micro-services S...You Call that Micro, Mr. Docker? How OSv and Unikernels Help Micro-services S...
You Call that Micro, Mr. Docker? How OSv and Unikernels Help Micro-services S...
rhatr
 
Beyond JVM - YOW Melbourne 2013
Beyond JVM - YOW Melbourne 2013Beyond JVM - YOW Melbourne 2013
Beyond JVM - YOW Melbourne 2013
Charles Nutter
 
Zero mq logs
Zero mq logsZero mq logs
Zero mq logs
Tomas Doran
 
High-Performance Computing with C++
High-Performance Computing with C++High-Performance Computing with C++
High-Performance Computing with C++
JetBrains
 
Java
JavaJava
Java
QUAID-E-AWAM UNIVERSITY OF ENGINEERING, SCIENCE & TECHNOLOGY, NAWABSHAH, SINDH, PAKISTAN
 
Messaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new frameworkMessaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new framework
Tomas Doran
 
Emulating With JavaScript
Emulating With JavaScriptEmulating With JavaScript
Emulating With JavaScript
alexanderdickson
 
Apple M1 & Ionic: Should I switch?
Apple M1 & Ionic: Should I switch?Apple M1 & Ionic: Should I switch?
Apple M1 & Ionic: Should I switch?
Philipp Höhne
 
Expert JavaScript Programming
Expert JavaScript ProgrammingExpert JavaScript Programming
Expert JavaScript Programming
Yoshiki Shibukawa
 
ITP Spacebrew Workshop - Spring 2014
ITP Spacebrew Workshop - Spring 2014ITP Spacebrew Workshop - Spring 2014
ITP Spacebrew Workshop - Spring 2014
Brett Renfer
 
"Making OpenCV Code Run Fast," a Presentation from Intel
"Making OpenCV Code Run Fast," a Presentation from Intel"Making OpenCV Code Run Fast," a Presentation from Intel
"Making OpenCV Code Run Fast," a Presentation from Intel
Edge AI and Vision Alliance
 
Jvm tuning in a rush! - Lviv JUG
Jvm tuning in a rush! - Lviv JUGJvm tuning in a rush! - Lviv JUG
Jvm tuning in a rush! - Lviv JUG
Tomek Borek
 
Some experiences for porting application to Intel Xeon Phi
Some experiences for porting application to Intel Xeon PhiSome experiences for porting application to Intel Xeon Phi
Some experiences for porting application to Intel Xeon Phi
Maho Nakata
 
Bits of Advice for the VM Writer, by Cliff Click @ Curry On 2015
Bits of Advice for the VM Writer, by Cliff Click @ Curry On 2015Bits of Advice for the VM Writer, by Cliff Click @ Curry On 2015
Bits of Advice for the VM Writer, by Cliff Click @ Curry On 2015
curryon
 
2013 - Igor Sysoev - NGINx: origen, evolución y futuro - PHP Conference Argen...
2013 - Igor Sysoev - NGINx: origen, evolución y futuro - PHP Conference Argen...2013 - Igor Sysoev - NGINx: origen, evolución y futuro - PHP Conference Argen...
2013 - Igor Sysoev - NGINx: origen, evolución y futuro - PHP Conference Argen...
PHP Conference Argentina
 
차세대컴파일러, VM의미래: 애플 오픈소스 LLVM
차세대컴파일러, VM의미래: 애플 오픈소스 LLVM차세대컴파일러, VM의미래: 애플 오픈소스 LLVM
차세대컴파일러, VM의미래: 애플 오픈소스 LLVM
Jung Kim
 
Java tuning on GNU/Linux for busy dev
Java tuning on GNU/Linux for busy devJava tuning on GNU/Linux for busy dev
Java tuning on GNU/Linux for busy dev
Tomek Borek
 
Rapid IoT prototyping with mruby
Rapid IoT prototyping with mrubyRapid IoT prototyping with mruby
Rapid IoT prototyping with mruby
雅也 山本
 
Project Basecamp: News From Camp 4
Project Basecamp: News From Camp 4Project Basecamp: News From Camp 4
Project Basecamp: News From Camp 4
Digital Bond
 
You Call that Micro, Mr. Docker? How OSv and Unikernels Help Micro-services S...
You Call that Micro, Mr. Docker? How OSv and Unikernels Help Micro-services S...You Call that Micro, Mr. Docker? How OSv and Unikernels Help Micro-services S...
You Call that Micro, Mr. Docker? How OSv and Unikernels Help Micro-services S...
rhatr
 
Beyond JVM - YOW Melbourne 2013
Beyond JVM - YOW Melbourne 2013Beyond JVM - YOW Melbourne 2013
Beyond JVM - YOW Melbourne 2013
Charles Nutter
 
High-Performance Computing with C++
High-Performance Computing with C++High-Performance Computing with C++
High-Performance Computing with C++
JetBrains
 
Messaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new frameworkMessaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new framework
Tomas Doran
 
Apple M1 & Ionic: Should I switch?
Apple M1 & Ionic: Should I switch?Apple M1 & Ionic: Should I switch?
Apple M1 & Ionic: Should I switch?
Philipp Höhne
 
Expert JavaScript Programming
Expert JavaScript ProgrammingExpert JavaScript Programming
Expert JavaScript Programming
Yoshiki Shibukawa
 
ITP Spacebrew Workshop - Spring 2014
ITP Spacebrew Workshop - Spring 2014ITP Spacebrew Workshop - Spring 2014
ITP Spacebrew Workshop - Spring 2014
Brett Renfer
 
"Making OpenCV Code Run Fast," a Presentation from Intel
"Making OpenCV Code Run Fast," a Presentation from Intel"Making OpenCV Code Run Fast," a Presentation from Intel
"Making OpenCV Code Run Fast," a Presentation from Intel
Edge AI and Vision Alliance
 
Jvm tuning in a rush! - Lviv JUG
Jvm tuning in a rush! - Lviv JUGJvm tuning in a rush! - Lviv JUG
Jvm tuning in a rush! - Lviv JUG
Tomek Borek
 
Some experiences for porting application to Intel Xeon Phi
Some experiences for porting application to Intel Xeon PhiSome experiences for porting application to Intel Xeon Phi
Some experiences for porting application to Intel Xeon Phi
Maho Nakata
 
Bits of Advice for the VM Writer, by Cliff Click @ Curry On 2015
Bits of Advice for the VM Writer, by Cliff Click @ Curry On 2015Bits of Advice for the VM Writer, by Cliff Click @ Curry On 2015
Bits of Advice for the VM Writer, by Cliff Click @ Curry On 2015
curryon
 
2013 - Igor Sysoev - NGINx: origen, evolución y futuro - PHP Conference Argen...
2013 - Igor Sysoev - NGINx: origen, evolución y futuro - PHP Conference Argen...2013 - Igor Sysoev - NGINx: origen, evolución y futuro - PHP Conference Argen...
2013 - Igor Sysoev - NGINx: origen, evolución y futuro - PHP Conference Argen...
PHP Conference Argentina
 
Ad

Recently uploaded (20)

IntroSlides-April-BuildWithAI-VertexAI.pdf
IntroSlides-April-BuildWithAI-VertexAI.pdfIntroSlides-April-BuildWithAI-VertexAI.pdf
IntroSlides-April-BuildWithAI-VertexAI.pdf
Luiz Carneiro
 
Reagent dosing (Bredel) presentation.pptx
Reagent dosing (Bredel) presentation.pptxReagent dosing (Bredel) presentation.pptx
Reagent dosing (Bredel) presentation.pptx
AlejandroOdio
 
Gas Power Plant for Power Generation System
Gas Power Plant for Power Generation SystemGas Power Plant for Power Generation System
Gas Power Plant for Power Generation System
JourneyWithMe1
 
Value Stream Mapping Worskshops for Intelligent Continuous Security
Value Stream Mapping Worskshops for Intelligent Continuous SecurityValue Stream Mapping Worskshops for Intelligent Continuous Security
Value Stream Mapping Worskshops for Intelligent Continuous Security
Marc Hornbeek
 
Artificial Intelligence (AI) basics.pptx
Artificial Intelligence (AI) basics.pptxArtificial Intelligence (AI) basics.pptx
Artificial Intelligence (AI) basics.pptx
aditichinar
 
Mathematical foundation machine learning.pdf
Mathematical foundation machine learning.pdfMathematical foundation machine learning.pdf
Mathematical foundation machine learning.pdf
TalhaShahid49
 
Mirada a 12 proyectos desarrollados con BIM.pdf
Mirada a 12 proyectos desarrollados con BIM.pdfMirada a 12 proyectos desarrollados con BIM.pdf
Mirada a 12 proyectos desarrollados con BIM.pdf
topitodosmasdos
 
Development of MLR, ANN and ANFIS Models for Estimation of PCUs at Different ...
Development of MLR, ANN and ANFIS Models for Estimation of PCUs at Different ...Development of MLR, ANN and ANFIS Models for Estimation of PCUs at Different ...
Development of MLR, ANN and ANFIS Models for Estimation of PCUs at Different ...
Journal of Soft Computing in Civil Engineering
 
Building Security Systems in Architecture.pdf
Building Security Systems in Architecture.pdfBuilding Security Systems in Architecture.pdf
Building Security Systems in Architecture.pdf
rabiaatif2
 
"Heaters in Power Plants: Types, Functions, and Performance Analysis"
"Heaters in Power Plants: Types, Functions, and Performance Analysis""Heaters in Power Plants: Types, Functions, and Performance Analysis"
"Heaters in Power Plants: Types, Functions, and Performance Analysis"
Infopitaara
 
Unit III.pptx IT3401 web essentials presentatio
Unit III.pptx IT3401 web essentials presentatioUnit III.pptx IT3401 web essentials presentatio
Unit III.pptx IT3401 web essentials presentatio
lakshitakumar291
 
QA/QC Manager (Quality management Expert)
QA/QC Manager (Quality management Expert)QA/QC Manager (Quality management Expert)
QA/QC Manager (Quality management Expert)
rccbatchplant
 
aset and manufacturing optimization and connecting edge
aset and manufacturing optimization and connecting edgeaset and manufacturing optimization and connecting edge
aset and manufacturing optimization and connecting edge
alilamisse
 
Raish Khanji GTU 8th sem Internship Report.pdf
Raish Khanji GTU 8th sem Internship Report.pdfRaish Khanji GTU 8th sem Internship Report.pdf
Raish Khanji GTU 8th sem Internship Report.pdf
RaishKhanji
 
Machine learning project on employee attrition detection using (2).pptx
Machine learning project on employee attrition detection using (2).pptxMachine learning project on employee attrition detection using (2).pptx
Machine learning project on employee attrition detection using (2).pptx
rajeswari89780
 
DT REPORT by Tech titan GROUP to introduce the subject design Thinking
DT REPORT by Tech titan GROUP to introduce the subject design ThinkingDT REPORT by Tech titan GROUP to introduce the subject design Thinking
DT REPORT by Tech titan GROUP to introduce the subject design Thinking
DhruvChotaliya2
 
Fort night presentation new0903 pdf.pdf.
Fort night presentation new0903 pdf.pdf.Fort night presentation new0903 pdf.pdf.
Fort night presentation new0903 pdf.pdf.
anuragmk56
 
How to Make Material Space Qu___ (1).pptx
How to Make Material Space Qu___ (1).pptxHow to Make Material Space Qu___ (1).pptx
How to Make Material Space Qu___ (1).pptx
engaash9
 
Upstream_processing of industrial products.pptx
Upstream_processing of industrial products.pptxUpstream_processing of industrial products.pptx
Upstream_processing of industrial products.pptx
KshitijJayswal2
 
fluke dealers in bangalore..............
fluke dealers in bangalore..............fluke dealers in bangalore..............
fluke dealers in bangalore..............
Haresh Vaswani
 
IntroSlides-April-BuildWithAI-VertexAI.pdf
IntroSlides-April-BuildWithAI-VertexAI.pdfIntroSlides-April-BuildWithAI-VertexAI.pdf
IntroSlides-April-BuildWithAI-VertexAI.pdf
Luiz Carneiro
 
Reagent dosing (Bredel) presentation.pptx
Reagent dosing (Bredel) presentation.pptxReagent dosing (Bredel) presentation.pptx
Reagent dosing (Bredel) presentation.pptx
AlejandroOdio
 
Gas Power Plant for Power Generation System
Gas Power Plant for Power Generation SystemGas Power Plant for Power Generation System
Gas Power Plant for Power Generation System
JourneyWithMe1
 
Value Stream Mapping Worskshops for Intelligent Continuous Security
Value Stream Mapping Worskshops for Intelligent Continuous SecurityValue Stream Mapping Worskshops for Intelligent Continuous Security
Value Stream Mapping Worskshops for Intelligent Continuous Security
Marc Hornbeek
 
Artificial Intelligence (AI) basics.pptx
Artificial Intelligence (AI) basics.pptxArtificial Intelligence (AI) basics.pptx
Artificial Intelligence (AI) basics.pptx
aditichinar
 
Mathematical foundation machine learning.pdf
Mathematical foundation machine learning.pdfMathematical foundation machine learning.pdf
Mathematical foundation machine learning.pdf
TalhaShahid49
 
Mirada a 12 proyectos desarrollados con BIM.pdf
Mirada a 12 proyectos desarrollados con BIM.pdfMirada a 12 proyectos desarrollados con BIM.pdf
Mirada a 12 proyectos desarrollados con BIM.pdf
topitodosmasdos
 
Building Security Systems in Architecture.pdf
Building Security Systems in Architecture.pdfBuilding Security Systems in Architecture.pdf
Building Security Systems in Architecture.pdf
rabiaatif2
 
"Heaters in Power Plants: Types, Functions, and Performance Analysis"
"Heaters in Power Plants: Types, Functions, and Performance Analysis""Heaters in Power Plants: Types, Functions, and Performance Analysis"
"Heaters in Power Plants: Types, Functions, and Performance Analysis"
Infopitaara
 
Unit III.pptx IT3401 web essentials presentatio
Unit III.pptx IT3401 web essentials presentatioUnit III.pptx IT3401 web essentials presentatio
Unit III.pptx IT3401 web essentials presentatio
lakshitakumar291
 
QA/QC Manager (Quality management Expert)
QA/QC Manager (Quality management Expert)QA/QC Manager (Quality management Expert)
QA/QC Manager (Quality management Expert)
rccbatchplant
 
aset and manufacturing optimization and connecting edge
aset and manufacturing optimization and connecting edgeaset and manufacturing optimization and connecting edge
aset and manufacturing optimization and connecting edge
alilamisse
 
Raish Khanji GTU 8th sem Internship Report.pdf
Raish Khanji GTU 8th sem Internship Report.pdfRaish Khanji GTU 8th sem Internship Report.pdf
Raish Khanji GTU 8th sem Internship Report.pdf
RaishKhanji
 
Machine learning project on employee attrition detection using (2).pptx
Machine learning project on employee attrition detection using (2).pptxMachine learning project on employee attrition detection using (2).pptx
Machine learning project on employee attrition detection using (2).pptx
rajeswari89780
 
DT REPORT by Tech titan GROUP to introduce the subject design Thinking
DT REPORT by Tech titan GROUP to introduce the subject design ThinkingDT REPORT by Tech titan GROUP to introduce the subject design Thinking
DT REPORT by Tech titan GROUP to introduce the subject design Thinking
DhruvChotaliya2
 
Fort night presentation new0903 pdf.pdf.
Fort night presentation new0903 pdf.pdf.Fort night presentation new0903 pdf.pdf.
Fort night presentation new0903 pdf.pdf.
anuragmk56
 
How to Make Material Space Qu___ (1).pptx
How to Make Material Space Qu___ (1).pptxHow to Make Material Space Qu___ (1).pptx
How to Make Material Space Qu___ (1).pptx
engaash9
 
Upstream_processing of industrial products.pptx
Upstream_processing of industrial products.pptxUpstream_processing of industrial products.pptx
Upstream_processing of industrial products.pptx
KshitijJayswal2
 
fluke dealers in bangalore..............
fluke dealers in bangalore..............fluke dealers in bangalore..............
fluke dealers in bangalore..............
Haresh Vaswani
 
Ad

Embedded Objective-C

  • 2. Who am I? • I am Java Enthusiast so far... – USB EHCI stack in Java – TCP/IP in Java – IEEE802.11 in Java – ZigBee in Java – OAuth 2.0 in Java – XModem in Java • I do everything (Hardware/Software) for Java • 仕事下さい。よろしくお願いします。 But today...
  • 3. Objective-C #import "XYZPerson.h" @implementation XYZPerson - (void)sayHello { NSLog(@"Hello, World!"); } @end
  • 5. #import "XYZPerson.h" @implementation XYZPerson - (void)sayHello { NSLog(@"Hello, World!"); } @end If I could...
  • 6. Existing Solutions Language Bare-Metal C Arduino Java-like mbed C++ JavaME JavaME Tessel JavaScript Why not Objective-C ???
  • 8. How different? Java Java C++ Runtime JVM C++ C Runtime C ObjC Runtime Smalltalk-like C++ Objective-C
  • 9. 5 Reasons Why Objective-C is the Best • C++ sucks. • You can use “Pure C” anytime anywhere. • It also means that you can use assembly anytime. • Powerful object-oriented language, but still faster than Java. • And C++ sucks.
  • 10. Disadvantages • Large memory footprint – Classes are loaded at init array calls. – No “class-loader” system. – Needs to manage all method symbols i.e. selectors. • Message lookup
  • 11. “Big 3” ObjC Runtime Compiler Modern-ObjC Cons Apple Clang Yes iOS/OSX only libobjc GCC, Clang No Out-dated No “Foundation” GNUStep GCC, Clang Yes (w/ Clang) Out-dated Huge
  • 12. Another newer runtime “ObjFW” • Lightweight – < 1MB • Portable – Multi-platform includes Apple devices – Works with PSP, Wii, and NintendoDS ! • Modern-ObjC • Clang supported – -fobjc-runtime=objfw – Don't stop the support of ObjFW!! Plz!! • Github – https://github.com/Midar/objfw
  • 13. Requirements to run ObjFW • Still, you need 1MB+ RAM – External RAM, typically – Bootloader • 1MB+ Flash • “Fast enough” processor
  • 14. Silabs EFM32 Wonder Gecko • Cortex-M4F@48MHz • External Bus Interface – Up to 4x256MB – Support code execution via I/D bus • Ultra low power • SDK with big memory! – 4MB PSRAM – 16MB Nor Flash
  • 15. It works!! • Ubuntu 14.04 • Eclipse Kepler – With debugging!! • Clang/LLVM 3.5 (trunk) – Some nice major updates for ARM ;) • ObjFW 0.8-dev • Need some workaround... – Read my blog: http://xmaker.mx/archives/14
  • 18. What's Next? • Threading support – CMSIS-RTOS (RTX) – Free RTOS • Socket support – lwIP • File support • Hardware APIs