Abhinav Upadhya, B. K. Srinivas; International Journal of Advance Research, Ideas and Innovations in Technology
© 2020, www.IJARIIT.com All Rights Reserved Page |557
ISSN: 2454-132X
Impact factor: 6.078
(Volume 6, Issue 3)
Available online at: www.ijariit.com
A comparative study on usage of Python and C/C++ for
firmware development
Abhinav Upadhya
abhinavupadhya.is16@rvce.edu.in
R. V. College of Engineering, Bengaluru, Karnataka
B. K. Srinivas
bksrinivas@rvce.edu.in
R. V. College of Engineering, Bengaluru, Karnataka
ABSTRACT
The C/C++ programming languages dominate embedded
systems programming, though they have a number of
disadvantages. Python, on the other hand, has many strengths
that make it a great language for embedded systems. This
Paper presents a comparative analysis of Python and C
Programming Language in the context of firmware
development.
Keywords— C, Python, RTOS, IOS, GUI, MicroPython,
Cython, Garbage Collection, Theano, JIT, Modules,
Stackoverflow, Unix, Macintosh
1. INTRODUCTION
C/C++ are compiled languages, while Python is an interpreted
language. C/C++ have been around for ages; C was first
developed in 1969, and C++ came along in 1983. Python is
younger as it was created in 1989 by Guido van Rossum. Since
then, it's become one of the most popular open source
programming languages. All Python releases are open source
and freely usable and distributable, even for commercial
projects.
Python isn't just the most-famous language for starting CS
programs, it's likewise the quickest developing language for
inserted processing. Possibly that sounds senseless when you
filter the numbers again and understand it's the quickest
developing language of the rest of the 5% of inserted
frameworks code that aren't C/C+ +, however Python will begin
eating into C/C++'s restraining infrastructure significantly
progressively throughout the following not many years.
Specialists moving into the business with experience
programming automatons, robots, or different ventures every
now and again have an Arduino or Raspberry Pi foundation.
They'll likely have managed Python in some way or another in
that time, and all things considered, they'll have knock facing
some inserted frameworks programming.
This paper is structured as follows. Section II discusses the
significance of C/C++ language in general [1]. Section III
discusses the significance of Python Language in general.
Section IV Discusses the Difference between Python and
C/C++ language in case of firmware/embedded system
development [3].
2. SIGNIFICANCE OF C/C++
The below list gives an overall significance of C/C++ as a
firmware development language.
(a) C is neither low-level nor high-level language. You can
closely work with the registers of the CPU. You can embed
assembly code in your C program.
(b)Bare metal (No OS) programming is possible with C for a
given computer architecture. This bare metal programming
is possible with the help of Cross-compilation for a
particular architecture. For Ex: Arduino and other
development boards.
(c) C is very fast. Most RTOS (Real Time Operating Systems)
that are prevalent are coded with C. Alongside your phone’s
OS like IOS and Android, there is a second OS for the
baseband processor (phone calls and network operation)
which is a RTOS. There are several RTOSs like VxWorks,
ThreadX, QNX.,etc.
(d)Direct access to low level hardware API's.
(e) You can find a C compiler for the vast majority of these
devices. This is not true for any high level language in my
experience.
(f) C (the runtime and your generated executable) is "small".
You don't have to load a bunch of stuff into the system to
get the code running.
(g)The hardware API/driver(s) will likely be written in C or
C++.
(h)C creates more compact and faster runtime code, and it’s
already the language of choice for 95% of embedded system
code, so it has a whole legacy that Python will have to
overcome.
(i) C++ plays a part in the development of applications such as
servers and microcontroller programs.
(j) C++ is the leading language for 3D, multiplayer, or other
types of game development. It is powerful enough to create
such elaborate games as CounterStrike, Doom, and Red
Dead Redemption.
(k)C++ is multi-paradigm means it follows three paradigms
Generic, Imperative, and Object-Oriented.
(l) Game development is the key to C++. That's why C++ is
becoming more popular among game developers.
3. SIGNIFICANCE OF PYTHON
Python is currently one of the most popular dynamic