Explore chapters and articles related to this topic
Putting it all together
Published in Hanky Sjafrie, Introduction to Self-Driving Vehicle Technology, 2019
OSCC software consists of the necessary firmware for all the Arduino boards. Firmware is the embedded software that controls the hardware components. There are also some elements of control software that are designed to work with a standard SDV middleware, such as ROS. The software and firmware is based on PolySync’s Core platform, and full instructions for building and installing are provided on the OSCC wiki. Below, we give an example of how to build the firmware for a petrol Kia Soul. # navigate to the correct directory cd firmware mkdir build cd build # use flags to tell cmake to build for a petrol vehicle and to override operator control cmake .. -DKIA_SOUL=ON -DSTEERING_OVERRIDE=OFF # now build the firmware with make make # alternatively, use make <module-name> to build a specific module make brake make can-gateway make steering make throttle # now you can upload each module. The system expects a single module connected to /dev/ttyACM0 make brake-upload # if you want to upload all the modules at once specify their addresses cmake .. -DKIA_SOUL=ON -DSERIAL_PORT_BRAKE=/dev/ttyACM0 -DSERIAL_PORT_CAN_GATEWAY=/dev/ttyACM1 -DSERIAL_PORT_STEERING=/dev/ttyACM2 -DSERIAL_PORT_THROTTLE=/dev/ttyACM3 # now you can flash all the modules at once make all-upload
Programming Paradigm and the Internet of Things
Published in Vijender Kumar Solanki, Vicente García Díaz, J. Paulo Davim, Handbook of IoT and Big Data, 2019
Sourav Banerjee, Chinmay Chakraborty, Sudipta Paul
C is the most used embedded programming language platform [14,22–25]. According to a study, almost 80% of embedded software is being written using C or its different types [26]. The main features of C are lightweight footprint, use of lower-level hardware, availability of more trained C programmers, a short learning curve, adequate support of compilers, and performance. ANSI C provides all these features in its standard. Some of the types of C for embedded programming are nesC, keilC, dymanicC, and B#. The philosophy underlying nesC’s are that nesC is an expansion of C, nesC programs are subject to whole program analysis (for safety) and optimization (for performance), a static language, and that it supports and reflects TinyOS’s design. The nesC’s model provides system design by considering easy-to-accumulate OS-supported applications. The model permits alternate implementations and a flexible hardware/software boundary. This language allows us to write highly concurrent programs on a tool with very restricted resources. Careful restrictions on the programming model, including the lack of dynamic allocation and explicit specification of an application’s call-graph, facilitate whole-program analyses and optimizations. Aggressive inclining reduces both memory footprint and CPU usage, and static data-race detection allows the developer to recognize and fix concurrency bugs. When the Keil-C51 compiler is applied, it is called the KeilC language. It has added some new keywords in the scope of C to make it more embedded and system oriented.
E
Published in Philip A. Laplante, Comprehensive Dictionary of Electrical Engineering, 2018
ellipse detection ellipse detection the detection of ellipses in digital images, often with a view to locating elliptical objects or those containing ellipses; ellipse detection is also important for the location of circular features on real objects following orthographic projection or perspective projection. ellipsometry measurement of the changes of light polarization produced by scattering. elliptic See elliptic filter. (2) a device, consisting of a microprocessor, firmware (often in EPROM), and/or FPGAs/EPLDs, which is dedicated to specific functions, and becomes an inseparable component of a device or system, in contrast to devices that are controlled by stand-alone computers. Embedded computers use embedded software, which integrates an operating system with specific drivers and application software. Their design often requires special software-hardware codesign methods for speed, low power, low cost, high testability or other special requirements. (3) software that is part of a larger system and performs some of the requirements of that system; e.g., software used in an aircraft or rapid transit system. Such software does not provide an interface with the user. See firmware. embedded computer system computer, embedded system. See embedded
Explaining Digital Technology: Digital Artifact Delineation and Coalescence
Published in Journal of Computer Information Systems, 2023
Digital technologies shape our lives, societies, and organizations. On a personal use front, everyday products such as televisions, watches, and automobiles now have embedded software-based digital capabilities.3 On the social front, many of our time’s grand challenges, from health and well-being to sustainability, education, and social inclusion, now rely heavily on digital technologies.9 Organizations are routinely developing information systems comprising of intelligent machines equipped with digital sensors, Internet of Things (IoT) devices, and processors that produce petabytes of data at a very fast pace.6,34 This expeditious inclusion of digital technology in our lives, society, and organizations has given rise to topics like digital transformation, digital innovation, digital infrastructure, and digital platforms. Yet, the core of this change—the digital technology—is defined in a primitive way in the IS literature. Generally, the justification provided for explaining digital technology is the inclusion of digital object.11 Due to the rudimentary nature of digital objects, the justification fails to explain complex phenomena in the digital world. Although digital objects provide a theoretical foundation at the most fundamental level, digital technologies are complex, often multi-layered information systems that cannot be fully comprehended by including digital objects alone.