Teaching Assembly and C Language Concurrently

2010 ◽  
Vol 47 (2) ◽  
pp. 120-131 ◽  
Author(s):  
Janez Puhan ◽  
Árpád Bűrmen ◽  
Tadej Tuma ◽  
Iztok Fajfar

The paper discusses whether (and how) to teach assembly coding as opposed to (or in conjunction with) higher programming languages as part of a modern electrical engineering curriculum. We describe the example of a very simple cooperative embedded real-time operating system, first programmed in C and then in assembler. A few lines of C language code are compared with the slightly longer assembly code equivalent, and the advantages and drawbacks are discussed. The example affords students a much deeper understanding of computer architecture and operating systems. The course is linked to other courses in the curriculum, which all use the same hardware and software platform; this lowers prices, reduces overheads and encourages students to reuse parts of a written code in subsequent courses. A student learns that badly written and poorly documented code is very difficult to reuse.

Electronics ◽  
2019 ◽  
Vol 8 (2) ◽  
pp. 228 ◽  
Author(s):  
Jonathan Álvarez Ariza

DSCBlocks is an open-source platform in hardware and software developed in JavaFX, which is focused on learning embedded systems through Digital Signal Controllers (DSCs). These devices are employed in industrial and educational sectors due to their robustness, number of peripherals, processing speed, scalability and versatility. The platform uses graphical blocks designed in Google’s tool Blockly that can be used to build different Algorithm Visualizations (AVs). Afterwards, the algorithms are converted in real-time to C language, according to the specifications of the compiler for the DSCs (XC16) and they can be downloaded in one of the two models of development board for the dsPIC 33FJ128GP804 and dsPIC 33FJ128MC802. The main aim of the platform is to provide a flexible environment, drawing on the educational advantages of the AVs with different aspects concerning the embedded systems, such as declaration of variables and functions, configuration of ports and peripherals, handling of Real-Time Operating System (RTOS), interrupts, among others, that are employed in several fields such as robotics, control, instrumentation, etc. In addition, some experiments that were designed in the platform are presented in the manuscript. The educational methodology and the assessment provided by the students (n = 30) suggest that the platform is suitable and reliable to learn concepts relating to embedded systems.


Author(s):  
Massimo Violante ◽  
Gianpaolo Macario ◽  
Salvatore Campagna

Automotive infotainment applications are examples of embedded systems in which a heterogeneous software stack is used, which most likely comprises a real-time operating system, an automotive-grade Linux, and possibly Android. Thanks to the availability of modern systems-on-a-chip providing multicore computing platforms, architects have the possibility of integrating the entire software stack in a single chip. Embedded virtualization appears an interesting technology to achieve this goal, while providing the different operating systems the capability of exchanging data as well as optimizing resource usage. Although very well known in server-class systems, virtualization is rather new to the embedded domain; in order to leverage its benefits, it is therefore mandatory to understand its peculiarities and shortcomings. In this chapter, the authors illustrate the virtualization technologies with particular emphasis on hypervisors and Linux Containers. Moreover, they illustrate how those technologies can cooperate to fulfill the requirements on automotive infotainment applications. Finally, the authors report some experimental evidence of the performance overheads introduced when using embedded virtualization.


Author(s):  
Tri Cong Phung

Controlling accurately the position and velocity of robots in a given time is an important requirement in the industry. The open-source real-time operating systems not only have more advantages than the normal operating systems in both economy and flexibility but also meet the needs. This paper concentrates on building algorithms for controlling the robot trajectory in time using a modern real-time operating system called Linux-Xenomai. Firstly, the paper analyzes several advantages of the real-time operating system Linux-Xenomai comparing general operating systems and other real-time operating systems. Secondly, a real-time controller of a 5 degree-of-freedom (DOF) robot is built based on the real-time operating system Linux-Xenomai. After that, the paper proposes algorithms to test the ability of working in time of the robot. Finally, the real experiments are done to verify the proposed algorithms.


Author(s):  
Frederick M. Proctor ◽  
Justin R. Hibbits

General-purpose computers are increasingly being used for serious control applications, due to their prevalence, low cost and high performance. Real-time operating systems are available for PCs that overcome the nondeterminism inherent in desktop operating systems. Depending on the timing requirements, however, many users can get by with a non-real-time operating system. This paper discusses timing techniques applicable to non-real-time operating systems, using Linux as an example, and compares them with the performance that can be obtained with true real-time OSes.


Author(s):  
Amit K. Shukla ◽  
Rachit Sharma ◽  
Pranab K. Muhuri

A real-time operating system (RTOS) is an integral part of a real-time embedded system (RTES). Most of the RTESs work on dynamic environments, and hence, the computational cost of tasks cannot be calculated in advance. Thus, RTOSs play a significant role in the smooth operations of the RTES through efficient task scheduling schemes and resource managements. This article investigates the existing design challenges and scope of the modern RTOSs. A wide variety of latest RTOSs are discussed and elaborated in detail. A comparative study with their prospects has been explained so that interested readers can use the article as a readily available starting point for their further studies on this topic.


2014 ◽  
Vol 7 (1) ◽  
pp. 16-29
Author(s):  
Taqwa Flayyih Hasan

Scheduling is a key concept in computer multitasking and multiprocessing operating system design, and in real-time operating system design. CPU scheduling is the basis of multiprogramming operating systems by switching the CPU among process; the operating system can make the computer more productive, scheduling algorithms are widely used in communications networks and in operating systems to allocate resources to competing tasks. In this paper, visual interfaces for CPU scheduling algorithms were designed by using Visual Basic6 language. They may use to learn users about this algorithms and how they work


2018 ◽  
Vol 2018 ◽  
pp. 1-10 ◽  
Author(s):  
Roberto Rodriguez-Zurrunero ◽  
Ramiro Utrilla ◽  
Elena Romero ◽  
Alvaro Araujo

Wireless Sensor Networks (WSNs) are a growing research area as a large of number portable devices are being developed. This fact makes operating systems (OS) useful to homogenize the development of these devices, to reduce design times, and to provide tools for developing complex applications. This work presents an operating system scheduler for resource-constraint wireless devices, which adapts the tasks scheduling in changing environments. The proposed adaptive scheduler allows dynamically delaying the execution of low priority tasks while maintaining real-time capabilities on high priority ones. Therefore, the scheduler is useful in nodes with rechargeable batteries, as it reduces its energy consumption when battery level is low, by delaying the least critical tasks. The adaptive scheduler has been implemented and tested in real nodes, and the results show that the nodes lifetime could be increased up to 70% in some scenarios at the expense of increasing latency of low priority tasks.


1991 ◽  
Vol 24 (2) ◽  
pp. 25-26
Author(s):  
C.D. Locke ◽  
R.P. Cook ◽  
K.D. Gordon ◽  
H. Tokuda

Sign in / Sign up

Export Citation Format

Share Document