NEHRU COLLEGE OF ARTS AND SCIENCE DEPARTMENT OF ECS EMBEDEDD SYSTEMS UNIT I: INTRODUCTION TO EMBEDDED SYSTEMS Definition and classification – Overview of microprocessor, Microcontroller, and DSP – exemplary high performance processors – CISC and RISC architecture – hardware unit in an embedded system- software embedded into a system – exemplary applications – embedded systems on a chip and in VLSI circuit SECTION-A 2 MARK QUESTIONS AND ANSWERS: 1. Define the term Embedded. Ans: An embedded system is some combination of computer hardware and software, either fixed in capability or programmable, that is specifically designed for a particular function. Industrial machines, automobiles, medical equipment, cameras, household appliances, airplanes, vending machines and toys (as well as the more obvious cellular phone and PDA) are among the myriad possible hosts of an embedded system. 2. Give one difference between microcontroller and microprocessor? Ans: Microprocessor is a also Known as 8085 IC . This 40 pin IC is use to perform many Arithmetical and logical Operations. This IC is use to interface different IC's to perform different work , For Example: Providing multiple interrupts using 8259 IC. Similarly we can perform many other operation by interfacing with other IC's. This type of IC's are used in Computers and Personal Uses. Microcontroller is again an IC of family 8051 series. This is really specialized IC having all the features available with 8085 and in addition to that other features like processor core, memory, and programmable I/O peripherals. This type of IC is self sufficient, can work solely without any help from other IC's . This Type of IC's are used in Automobile companies, embedded systems , remote control devices. This type of IC is usd to perform function on it's own , i.e. Automatic control is handled here. This IC is most advance version of microprocessor which can control other process. This IC has its own memory , I/O controls , interrupts Etc. 3. VLSI,DSP and embedded, what are the similarities between all these? Ans: DSP-the processing of analog signals and converting it into digital. VLSI: Very-large-scale integration (VLSI) is the process of creating integrated circuits by combining thousands of transistor-based circuits into a single chip. ... Embedded: An embedded system is a computer system designed to perform one or a few dedicated functions often with real-time computing constraints. 4. Where are Microcontrollers used? Ans: DVD, TV, VCR XBOX, Nintendo, Game Boy Carbon Monoxide Alarms PDAs, cellphones Automobiles Garage door openers Household appliances Automatic pilot systems Astronauts’ space suits SECTION-B 1. Draw the architecture of Harvard and von Neumann. 2. Give the detailed difference between RISC AND CISC. Ans: 1. RISC vs CISC There is still considerable controversy among experts about which architecture is better. Some say that RISC is cheaper and faster and therefor the architecture of the future. Others note that by making the hardware simpler, RISC puts a greater burden on the software. Software needs to become more complex. Software developers need to write more lines for the same tasks. Therefore they argue that RISC is not the architecture of the future, since conventional CISC chips are becoming faster and cheaper anyway. RISC has now existed more than 10 years and hasn't been able to kick CISC out of the market. If we forget about the embedded market and mainly look at the market for PC's, workstations and servers I guess a least 75% of the processors are based on the CISC architecture. Most of them the x86 standard (Intel, AMD, etc.), but even in the mainframe territory CISC is dominant via the IBM/390 chip. Looks like CISC is here to stay … Is RISC than really not better? The answer isn't quite that simple. RISC and CISC architectures are becoming more and more alike. Many of today's RISC chips support just as many instructions as yesterday's CISC chips. The PowerPC 601, for example, supports more instructions than the Pentium. Yet the 601 is considered a RISC chip, while the Pentium is definitely CISC. Further more today's CISC chips use many techniques formerly associated with RISC chips. SECTION-C 1. Draw the block diagram of 8051. 2. Give a brief applications of Embeddeds systems in the presents trend. Ans: An embedded system is a computer system designed to do one or a few dedicated and/or specific functions often with real-time computing constraints. It is embedded as part of a complete device often including hardware and mechanical parts. By contrast, a general-purpose computer, such as a personal computer (PC), is designed to be flexible and to meet a wide range of end-user needs. Embedded systems control many devices in common use today. Embedded systems contain processing cores that are typically either microcontrollers or digital signal processors (DSP). The key characteristic, however, is being dedicated to handle a particular task. They may require very powerful processors and extensive communication, for example air traffic control systems may usefully be viewed as embedded, even though they involve mainframe computers and dedicated regional and national networks between airports and radar sites (each radar probably includes one or more embedded systems of its own). Since the embedded system is dedicated to specific tasks, design engineers can optimize it to reduce the size and cost of the product and increase the reliability and performance. Some embedded systems are mass-produced, benefiting from economies of scale. UNIT-II UNIT II: PIC 16F87X MICROCONTROLLERS Device overview – architecture – memory organization – status register – option register – INTCON register – PCON register – I/O ports – data EEPROM – instruction set: Byte oriented operations – Bit oriented operations – Literal and Control operations Section-A 1. What are the softwares used to build the pic programs. Name any 3. • • Ans: MPLAB IDE v5.70 Programmer Software – Keil c Programmer Firmware – ccs compiler 2. Define status register? Ans: SR) Located inside the CPU and contains bits that are set or cleared based on the result of an instruction. 3. Define option register? Ans: The OPTION register in the PIC 16f84 microcontroller is a readable and writable register which contains various control bits to configure the TMR0/WDT. 4. Abbriviate EEPROM? Ans: Electrically erasable programmable read-only memory SECTION-B 1. Explain the Pcon register. PCON – Power Control Register D7 D6 D5 D4 D3 D2 D1 D0 SMOD x x x GF1 GF0 PD IDL Address: 87H (not bit addressable) SMOD – Serial mode bit used to determine the baud rate with Timer 1. )]1(256[Hzin frequency Oscillator rate BaudTHN−= If SMOD = 0 then N = 384. If SMOD = 1 then N = 192. TH1 is the high byte of timer 1 when it is in 8-bit autoreload mode. GF1 and GF0 are General purpose flags not implemented on the standard device PD is the power down bit. Not implemented on the standard device IDL activate the idle mode to save power. Not implemented on the standard device. 2. Explain the INTCON register. Ans: The INTCON Register Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 GIE EEIE T0IE INTE RBIE T0IF INTF RBIF The INTCON register is a readable and writable register which contains the various enable bits for all interrupt sources. The meaning of INTCON might be (though this is only me thinking) INTurrpt CONtrol register. I have serached the net for the source of this acronym with no avail; if you find it please e-mail me. Anyway, interrupt flag bits get set when an interrupt condition occurs regardless of the state of its corresponding enable bit or the global enable bit, GIE (INTCON<7>). This register is used to configure the interrupt control logic circuitry. Bits 0 to 6 are used to configure the interrupt enable/disable statuses and the interrupt flags for the four interrupt sources. No interrupt to the CPU will result unless the GIE bit is set. The GIE bit is the bit INTCON<7> and when set, enables all un-masked interrupts. R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-x R = Readable bit GIE EEIE T0IE INTE RBIE T0IF INTF RBIF Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 W= Writable bit U = Unimplemented bit, read as ‘0’ -n= Value at POR reset SECTION-C 1. Draw the architecture of PIC 16f87x Ans: Figure: PIC16F877 Block Diagram 2. Give the descriptions of Literal and Control operations? Ans: Literal and Control Operations: For literal and control operations, 'k' represents an 8 or 9-bit constant or literal value. In the machine code level in 14-bit word configuration, they are configured with 6 bits of Opcode followed by 8 bit constant (or literal). The table below lists the instructions words of the literal and control operations. As before, at the last column of the table, but unlike the previous two operations, the number of bits assigned to Opcode is fixed: some has 5, another 6, and others 3. The x marked bits in the Opcode are don't care values (1 or 0). In most cases, the Opcode is followed by a 8 bit literal. Table. Literal and Control Operations of 16F877 Instructions Mnemonic Description T Flag Instruction word (OPCODE+operand) addlw k add k and W 1 C, Z 11 111x kkkk kkkk andlw k and k and W 1 Z 11 1001 kkkk kkkk call k call subroutine at address k 2 10 0kkk kkkk kkkk clrwdt clear watchdog timer 1 00 0000 0110 0100 goto k go to address k 2 10 1kkk kkkk kkkk iorlw k OR k with W 1 Z 11 1000 kkkk kkkk movlw k move k to W (i.e., W=k) 1 11 00xx kkkk kkkk retfie return from interrupt 2 00 0000 0000 1001 retlw k return with k in W 2 11 01xx kkkk kkkk return return from subroutine 2 00 0000 0000 1000 sleep go into standby mode 1 00 0000 0110 0011 sublw k subtract W from k (i.e.,k-W) 1 C, Z 11 110x kkkk kkkk xorlw k XOR k with W 1 Z 11 1010 kkkk kkkk movlw 0x02, which loads a constant value of 2h to W register. From the table, the Opcode for movlw is 110000, and the literal value component must be 00000010 (2h), which makes the corresponding machine code as 3002h. UNIT-III UNIT III: PERIPHERAL FEATURES OF 16F87X MICROCONTROLLERS TIMER0 Module – TIMER1 Module – TIMER2 Module – Capture/Compare/PWM Modules – I2 C transmission and reception – USART – ADC Module - Special features of the CPU : oscillator selection – power on reset – power up timer – oscillator start up timer – brown out reset – interrupts – watchdog timer Section-A 1. Give one application of I2C? Ans: I2C provides good support for communication with various slow, on-board peripheral devices that are accessed intermittently, while being extremely modest in its hardware resource needs. It is used in multimedia applications. 2. What is USART? Ans: Universal Synchronous Asynchronous Receiver Transmitter. The USART is a full-duplex synchronous/asynchronous receiver-transmitter proven in high-volume devices from National Semiconductor. 3. What is function of oscillator in pic. Ans: Using the internal 4MHz Oscillator. Depending on the PIC device programmer you're using, there should be an option for setting the configuration-bits. 4. Name any 1 functions of interrupts? Ans: PIC interrupt forces the microcontroller to suspend execution of the main program and immediately execute a special set of instructions. SECTION-B 1. Explain the timer0 module. Ans: The Timer0 module timer/counter has the following Features: • 8-bit timer/counter • Readable and writable • 8-bit software programmable prescaler • Internal or external clock select • Interrupt on overflow from FFh to 00h • Edge select for external clock Figure 5-1 is a block diagram of the Timer0 module and the prescaler shared with the WDT. Additional information on the Timer0 module is Available in the PICmicro® Mid-Range MCU Family Timer mode is selected by clearing bit T0CS (OPTION_REG<5>). In Timer mode, the Timer0 Module will increment every instruction cycle (without Prescaler). If the TMR0 register is written, the increment Is inhibited for the following two instruction cycles. The user can work around this by writing an adjusted Value to the TMR0 register. 2. Explain the Timer1 module. Ans: The Timer1 module is a 16-bit timer/counter consisting of two 8-bit registers (TMR1H and TMR1L) which are readable and writable. The TMR1 register pair (TMR1H:TMR1L) increments from 0000h to FFFFh and rolls over to 0000h. The TMR1 interrupt, if enabled, is generated on overflow which is latched in interrupt flag bit, TMR1IF (PIR1<0>). This interrupt can be enabled/disabled by setting/clearing TMR1 interrupt enable bit, TMR1IE (PIE1<0>). Timer1 can operate in one of two modes: • As a Timer • As a Counter The operating mode is determined by the clock select bit, TMR1CS (T1CON<1>). 3. Draw the Timer2 module. Ans: U-0 — bit 7 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 R/W-0 T2CKPS0 bit 0 SECTION-C 1. Explain in detail about the Capture/compare/PWM Modules. Ans: Each Capture/Compare/PWM (CCP) module contains a 16-bit register which can operate as a: • 16-bit Capture register • 16-bit Compare register • PWM Master/Slave Duty Cycle register Both the CCP1 and CCP2 modules are identical in operation, with the exception being the operation of the special event trigger. Table 8-1 and Table 8-2 show the resources and interactions of the CCP module(s). In the following sections, the operation of a CCP module is described with respect to CCP1. CCP2 operates the same as CCP1 except where noted. CCP1 Module: Capture/Compare/PWM Register 1 (CCPR1) is comprised of two 8-bit registers: CCPR1L (low byte) and CCPR1H (high byte). The CCP1CON register controls the operation of CCP1. The special event trigger is generated by a compare match and will reset Timer1. Capture/Compare/PWM Register 2 (CCPR2) is comprised of two 8-bit registers: CCPR2L (low byte) and CCPR2H (high byte). The CCP2CON register controls the operation of CCP2. The special event trigger is generated by a compare match and will reset Timer1 and start an A/D conversion (if the A/D module is enable. CCP MODE – TIMER RESOURCES REQUIRED CCP Mode Timer Resource Capture Timer1 Compare PWM Timer1 Timer2 2. Describe about the pwm and I2C? Ans: An Inter-IC bus is often used to communicate across circuit-board distances. Here's a primer on the protocol. At the low end of the spectrum of communication options for "inside the box" communication is I2C ("eye-squared-see"). The name I2C is shorthand for a standard InterIC (integrated circuit) bus. I2C provides good support for communication with various slow, on-board peripheral devices that are accessed intermittently, while being extremely modest in its hardware resource needs. It is a simple, low-bandwidth, short-distance protocol. Most available I2C devices operate at speeds up to 400Kbps, with some venturing up into the low megahertz range. I2C is easy to use to link multiple devices together since it has a built-in addressing scheme. Philips originally developed I2C for communication between devices inside of a TV set. Examples of simple I2C-compatible devices found in embedded systems include EEPROMs, thermal sensors, and real-time clocks. I2C is also used as a control interface to signal processing devices that have separate, application-specific data interfaces. For instance, it's commonly used in multimedia applications, where typical devices include RF tuners, video decoders and encoders, and audio processors. In all, Philips, National Semiconductor, Xicor, Siemens, and other manufacturers offer hundreds of I2C-compatible devices. Inside the box I2C is appropriate for interfacing to devices on a single board, and can be stretched across multiple boards inside a closed system, but not much further. An example is a host CPU on a main embedded board using I2C to communicate with user interface devices located on a separate front panel board. A second example is SDRAM DIMMs, which can feature an I2C EEPROM containing parameters needed to correctly configure a memory controller for that module. I2C is a two-wire serial bus, as shown in Figure 1. There's no need for chip select or arbitration logic, making it cheap and simple to implement in hardware. The two I2C signals are serial data (SDA) and serial clock (SCL). Together, these signals make it possible to support serial transmission of 8-bit bytes of data-7-bit device addresses plus control bits-over the two-wire serial bus. The device that initiates a transaction on the I2C bus is termed the master. The master normally controls the clock signal. A device being addressed by the master is called a slave. In a bind, an I2C slave can hold off the master in the middle of a transaction using what's called clock stretching (the slave keeps SCL pulled low until it's ready to continue). Most I 2C slave devices don't use this feature, but every master should support it. The I2C protocol supports multiple masters, but most system designs include only one. There may be one or more slaves on the bus. Both masters and slaves can receive and transmit data bytes. Each I2C-compatible hardware slave device comes with a predefined device address, the lower bits of which may be configurable at the board level. The master transmits the device address of the intended slave at the beginning of every transaction. Each slave is responsible for monitoring the bus and responding only to its own address. This addressing scheme limits the number of identical slave devices that can exist on an I 2C bus without contention, with the limit set by the number of user-configurable address bits (typically two bits, allowing up to four identical devices). Communication As you can see in Figure 2, the master begins the communication by issuing the start condition (S). The master continues by sending a unique 7-bit slave device address, with the most significant bit (MSB) first. The eighth bit after the start, read/not-write (), specifies whether the slave is now to receive (0) or to transmit (1). This is followed by an ACK bit issued by the receiver, acknowledging receipt of the previous byte. Then the transmitter (slave or master, as indicated by the bit) transmits a byte of data starting with the MSB. At the end of the byte, the receiver (whether master or slave) issues a new ACK bit. This 9-bit pattern is repeated if more bytes need to be transmitted. In a write transaction (slave receiving), when the master is done transmitting all of the data bytes it wants to send, it monitors the last ACK and then issues the stop condition (P). In a read transaction (slave transmitting), the master does not acknowledge the final byte it receives. This tells the slave that its transmission is done. The master then issues the stop condition. 3. Describe the Watch dog timer? Ans: For those embedded systems that can't be constantly watched by a human, watchdog timers may be the solution. Most embedded systems need to be self-reliant. It's not usually possible to wait for someone to reboot them if the software hangs. Some embedded designs, such as space probes, are simply not accessible to human operators. If their software ever hangs, such systems are permanently disabled. In other cases, the speed with which a human operator might reset the system would be too slow to meet the uptime requirements of the product. A watchdog timer is a piece of hardware that can be used to automatically detect software anomalies and reset the processor if any occur. Generally speaking, a watchdog timer is based on a counter that counts down from some initial value to zero. The embedded software selects the counter's initial value and periodically restarts it. If the counter ever reaches zero before the software restarts it, the software is presumed to be malfunctioning and the processor's reset signal is asserted. The processor (and the embedded software it's running) will be restarted as if a human operator had cycled the power. Figure 1 shows a typical arrangement. As shown, the watchdog timer is a chip external to the processor. However, it could also be included within the same chip as the CPU. This is done in many microcontrollers. In either case, the output from the watchdog timer is tied directly to the processor's reset signal. Kicking the dog The process of restarting the watchdog timer's counter is sometimes called "kicking the dog." The appropriate visual metaphor is that of a man being attacked by a vicious dog. If he keeps kicking the dog, it can't ever bite him. But he must keep kicking the dog at regular intervals to avoid a bite. Similarly, the software must restart the watchdog timer at a regular rate, or risk being restarted. A simple example is shown in Listing 1. Here we have a single infinite loop that controls the entire behavior of the system. This software architecture is common in many embedded systems with low-end processors and behaviors based on a single operational frequency. The hardware implementation of this watchdog allows the counter value to be set via a memory-mapped register. Listing 1: Kicking the dog uint16 volatile * pWatchdog = (uint16 volatile *) 0xFF0000; main(void) { hwinit(); for (;;) { *pWatchdog = 10000; read_sensors(); control_motor(); display_status(); } } Suppose that the loop must execute at least once every five milliseconds. (Say the motor must be fed new control parameters at least that often.) If the watchdog timer's counter is initialized to a value that corresponds to five milliseconds of elapsed time, say 10,000, and the software has no bugs, the watchdog timer will never expire; the software will always restart the counter before it reaches zero. Software anomalies A watchdog timer can get a system out of a lot of dangerous situations. However, if it is to be effective, resetting the watchdog timer must be considered within the overall software design. Designers must know what kinds of things could go wrong with their software, and ensure that the watchdog timer will detect them, if any occur. Systems hang for any number of reasons. A logical fallacy resulting in the execution of an infinite loop is the simplest. Suppose such a condition occurred within the read_sensors() call in Listing 1. None of the other software (except ISRs, if interrupts are still enabled) would get a chance to run again. Another possibility is that an unusual number of interrupts arrives during one pass of the loop. Any extra time spent in ISRs is time not spent executing the main loop. A dangerous delay in feeding the motor new control instructions could result. When multitasking kernels are used, deadlocks can occur. For example, a group of tasks might get stuck waiting on each other and some external signal that one of them needs, leaving the whole set of tasks hung indefinitely. If such faults are transient, the system may function perfectly for some length of time after each watchdog-induced reset. However, failed hardware could lead to a system that constantly resets. For this reason it may be wise to count the number of watchdog-induced resets, and give up trying after some fixed number of failures. Karate lessons An actual watchdog implementation would usually have an interface to the software that is more complex than the one in Listing 1. When the set of instructions required to reset the watchdog is very simple, it's possible that buggy software could perform this action by accident. Consider a bug that causes the value 10,000 to be written to every location in memory, over and over again. This code would regularly restart the watchdog counter, and the watchdog might never bite. To prevent this, many watchdog implementations require that a complex sequence of two or more consecutive writes be used to restart the watchdog timer. If the watchdog is built into your microcontroller, it may not be enabled automatically when the device resets. You must be sure to enable it during hardware initialization. To provide protection against a bug accidentally disabling the watchdog, the hardware design usually makes it impossible to disable the watchdog timer once it has been enabled. If your software can do a complete loop faster than the watchdog period, the structure in Listing 1 may work fine for you. It gets more challenging if some part of your software takes a long time to complete. Say you have a loop that waits for an element to heat to a certain temperature before returning. Many watchdog timers have a maximum period of around two seconds. If you are going to delay for more than that length of time, you may have to kick the dog from within the waiting loop. If there are many such places in your software, control of the watchdog can become problematic. System initialization is a part of the code that often takes longer than the watchdog timer's maximum period. Perhaps a memory test or ROM to RAM data transfer slows this down. For this reason, some watchdogs can wait longer for their first kick than they do for subsequent kicks. As threads of control are added to software (in the form of ISRs and software tasks), it becomes ineffective to have just one place in the code where the watchdog is kicked. Choosing a proper kick interval is also an important issue, one that can only be addressed in a system-specific manner. These and other issue of greater complexity are discussed in the references listed at the end of this article. Dog days A watchdog timer is a useful tool in helping your system recover from transient failures. Since it is so common to find watchdogs built into modern microcontrollers, the technique is effectively free. If you are working on a mission-critical system, then either common sense or a regulatory body will insist that you use a watchdog. It's always a good idea to make your systems more self-reliant. UNIT-IV UNIT IV: REAL TIME OPERATING SYSTEMS Definitions of process, tasks, and threads – Operating system services – goals – structures- kernel – process management – memory management – device management – file system organization and implementation – I/O sub systems – interrupt routine handling in RTOS – RTOS task scheduling models – handling of task scheduling – latency – deadlines – round robin scheduling – cyclic scheduling – preemptive – critical session – static real time scheduling – IPC and synchronization – use of semaphore – priority inversion – deadlock – IPC using signals – mutex- flag- message queues – mailboxes – pipesvirtual sockets – remote procedure calls SECTION-A 1. Define RTOS? Ans: A real-time operating system (RTOS) is an operating system that guarantees a certain capability within a specified time constraint. For example, an operating system might be designed to ensure that a certain object was available for a robot on an assembly line. In what is usually called a "hard" real-time operating system, if the calculation could not be performed for making the object available at the designated time, the operating system would terminate with a failure. In a "soft" real-time operating system, the assembly line would continue to function but the production output might be lower as objects failed to appear at their designated time, causing the robot to be temporarily unproductive. 2. What is memory management? Ans: When preparing a server for production, you usually run the server through a series of processes and procedures that are designed to keep it secure. Section-B 1. Describe about the Real time kernel? The heart of a real-time OS (and the heart of every OS, for that matter) is the kernel. A kernel is the central core of an operating system, and it takes care of all the OS jobs: 1. Booting 2. Task Scheduling 3. Standard Function Libraries Now, we will talk about booting and bootloaders later, and we will also devote several chapters to task scheduling. So we should mention at least one thing about standard function libraries: In an embedded system, there is rarely enough memory (if any) to maintain a large function library. If functions are going to be included, they must be small, and important. In an embedded system, frequently the kernel will boot the system, initialize the ports and the global data items. Then, it will start the scheduler and instantiate any hardware timers that need to be started. After all that, the Kernel basically gets dumped out of memory (except for the library functions, if any), and the scheduler will start running the child tasks. 2. Describe the memory management in RTOS? Memory management An RTOS uses small memory size by including only the necessary functionality for an application while discarding the rest. Below we discuss static and dynamic memory management in RTOSs. Static memory management provides tasks with temporary data space. The system’s free memory is divided into a pool of fixed sized memory blocks, which can be requested by tasks. When a task finishes using a memory block it must return it to the pool. Another way to provide temporary space for tasks is via priorities. A pool of memory is dedicated to high priority tasks and another to low priority tasks. The high-priority pool is sized to have the worst-case memory demand of the system. The low priority pool is given the remaining free memory. If the low priority tasks exhaust the low priority memory pool, they must wait for memory to be returned to the pool before further execution. Dynamic memory management employs memory swapping, overlays, multiprogramming with a fixed number of tasks (MFT), multiprogramming with a variable number of tasks (MVT) and demand paging. Overlays allow programms larger than the available memory to be executed by partitioning the code and swapping them from disk to memory. In MFT, a fixed number of equalized code parts are in memory at the same time. As needed, the parts are overlaid from disk. MVT is similar to MFT except that the size of the partition depends on the needs of the program in MVT. Demand paging systems have fixed-size pages that reside in non-contiguous memory, unlike those in MFT and MVT [7]. In many embedded systems, the kernel and application programs execute in the same space i.e., there is no memory protection. 3. Explain the round robin scheduling? Ans: In the round robin scheduling, processes are dispatched in a FIFO manner but are given a limited amount of CPU time called a time-slice or a quantum. If a process does not complete before its CPU-time expires, the CPU is preempted and given to the next process waiting in a queue. The preempted process is then placed at the back of the ready list. Round Robin Scheduling is preemptive (at the end of time-slice) therefore it is effective in timesharing environments in which the system needs to guarantee reasonable response times for interactive users. The only interesting issue with round robin scheme is the length of the quantum. Setting the quantum too short causes too many context switches and lower the CPU efficiency. On the other hand, setting the quantum too long may cause poor response time and appoximates FCFS. In any event, the average waiting time under round robin scheduling is often quite long. SECTION - C 1. Write a simple program using the RTOS task? Example Real Time Execution Profile This section provides a simplistic example that demonstrates the principles of real time scheduling. A hypothetical embedded system incorporates a keypad and LCD. A user must receive the visual feedback of each key press within a reasonable period—if the user cannot see that the key press has been accepted within this period the product will at best be awkward to use. If the longest acceptable period is 100ms—any response between 0 and 100ms is acceptable. This functionality could be implemented as an autonomous task with the following structure: void vKeyHandlerTask( void *pvParameters ) { /* Key handling is a continuous process and as such the task is implemented using an infinite loop (as most tasks are). */ for( ;; ) { [Suspend waiting for a key press] [Process the key press] } } Listing 1: Task that records key strokes Now assume the software is also performing a control function that relies on a digitally filtered input. The input must be sampled, filtered, and the control cycle executed every 2ms. For correct operation of the filter the temporal regularity of the sample must be accurate to 0.5ms. This functionality could be implemented as an autonomous task with the following structure: void vControlTask( void *pvParameters ) { for( ;; ) { [Suspend waiting for 2ms since the start of the previous cycle] [Sample the input] [Filter the sampled input] [Perform control algorithm] [Output result] } } 2. Explain about the IPC and Synchronization? Use of Multiple Semaphores for Synchronizing the Tasks Use of two semaphores for synchronizing tasks I, J, K, L and M , respect 3. Describe about the file system management? Ans: File-System Structure (1) File system resides on secondary storage disks, diskette, CD-ROM, DVD flash memory – with or without disk interfaces virtual disk, or memory disk File system design problems to define how the file system should look to the use file and its attribute operation or command allowed on a file to design algorithm and data structure to map the logical file system to the physical storage devices File-System Structure (2) File system organized into layers. I/O Control layer – consisting of device drivers and interrupt handlers to transfer data b/w the main memory and the storage system. It translates high- level commands to low-level hardware-specific instructions basic file system – to issue generic command to the device driver file-organization module – to translate a logical address to a physical address, and free-space manager logical file system – to manage metadata information (file-system structure, but not the content), to manage the directory system and symbolic file name, to maintain file structure via file control block File-System Structure (3) control block – storage structure consisting of information about a file. File ownership, permissions, location of the file contents, … Existing file systems UFS – Unix file system ext, or ext2 – Linux file system FAT, FAT32 – DOS file system NTFS – Windows NT or its successors file Systems File-System Implementation (1) file system consists of on-disk structure and in-memory Structure on-disk structure boot control block – information needed by the system to boot an OS from that disk. Typically the first block of a partition. Called boot block in UFS; partition boot sector in NTFS partition control block – partition detail s.t. the # of blocks, the size of the blocks, free-block count, freeblock pointers, and so forth. superblock (in UFS) or master file table (in NTFS) directory structure file control block – file’s detail. file permission, ownership, size, location of the data block. File-System Implementation (2) in-memory structure used for file-system management and performance improvement via caching in- memory partition table – information about each mounted partition in- memory directory structure – holds the directory information of recently accessed directories system-wide open- file table – a copy of file control block of each open file per-process open- file table - has a pointer to the proper entry in system-wide open- file table, a pointer to the current location of the file for read/write operations File-System Implementation (3) to creat a file allocate a new FCB, read the proper directory into memory update it with the new file name and FCB write it back to the disk In Unix, a directory is treated exactly as a file, but in Windows, a directory is treated separate entities from files. In-Memory File System Structures UNIT –V UNIT V: RTOS Programming Tools: Micro C/OS-II and Vxworks Study of Micro C/OS-II – VxWorks – other popular RTOS – RTOS system level functions – task service functions – time delay functions – memory allocation related functions – semaphore related functions – mailbox related functions – queue related functions case studies of programming with RTOS – understanding case definition - multiple tasks and their functions – creating a list of tasks- functions and IPCs – exemplary coding steps Section-A 1. What is a Operating system? Ans: An Operating System is a computer program that manages the resources of a computer. It accepts keyboard or mouse inputs from users and displays the results of the actions and allows the user to run applications, or communicate with other computers via networked connections 2. Define Exemplary codings? Ans: Understanding case definition – Multiple tasks and their functions. Creating a List of Tasks, Functions and IPCs. 3. Give an applications of IPC’s. Ans: With the IPC software, embedded developers can efficiently and better control their multicore processor implementation and common real-time. Section-B 1. Explain about the time delay functions? Ans: Embed <- function(x, m, d = 1, as.embed = TRUE) { n <- length(x) - (m-1)*d if(n <= 0) stop("Insufficient observations for the requested embedding") out <- matrix(rep(x[seq_len(n)], m), ncol = m) out[,-1] <- out[,-1, drop = FALSE] + rep(seq_len(m - 1) * d, each = nrow(out)) if(as.embed) out <- out[, rev(seq_len(ncol(out)))] out } Time delay embedding allows for additional delay between the lagged versions of the original series. If d = 2, then each of the m - 1 new series is lagged by 2 time intervals. This is shown in the final example above, with Embed(1:10, m = 4, d = 2), where the entries within the rows are offset by 2. However, the embedded series now contain just four observations. 2. Name any two queue related functions for the inter task communications. Queue related functions includes .Creating a queue for an IPC, Waiting for an IPC messagea t a queue, Emptying the Queue and Eliminating All the Message pointers,. Sendinga message-pointetor the Queue,. Sending a message pointer and inserting at the Queue Front and Querying to Find the Message and Enor Information for the Queue ECB. To connect a message queue, or create it if it doesn\'t exist. The call to accomplish this is the msgget() system call: int msgget(key_t key, int msgflg); SECTION-C 1. Explain about the multiple tasks and their functions? Ans: Multitasking using an operating system (OS) and Real time operating system (RTOS), Concurrent Processes, tasks or threads A System is composed of twoor more concurrent processes that execute Operating System Multitasking (multiprocessing ormultithreaded) software Scheduling multiple tasks, Processes, memory, device, ports,network, file system, timers, eventfunctions, inter processorcommunication, shared memory,security, GUIs, ... management Real Time Operating System (RTOS) Embedded software is most often designedfor deterministic performance and task and ISR latencies in addition to the OSfunctions Performing multiple actions andcontrolling multiple devices and their ISRswith defined real time constraints and with deadlines for these Task and ISRs priority allocations, their processing and execution with hard(stringent) or soft timing requirements with priority allocation and preemption. RTOS is needed when the tasks for thesystem have real time constraints anddeadlines for finishing the tasks 2. Describe about the memory management functions or memory allocation functions? Ans: Memory Management Functions Memory allocation when a process is created, the memory manager allocates the memory addresses (blocks) to it by mapping the process address space. Threads of a process share the memory space of the process Memory manager of the OS─ secure, robust and well protected. No memory leaks and stack overflows Memory leaks means attempts to write in the memory block not allocated to a process or data structure. Stack overflow means that the stack exceeding the allocated memory block(s) Memory Management after Initial Allocation Memory Managing Strategy for a system Fixed-blocks allocation Dynamic -blocks Allocation Dynamic Page-Allocation Dynamic Data memory Allocation Dynamic address-relocation Multiprocessor Memory Allocation Memory Protection to OS functions Memory allocation in RTOSes RTOS may disable the support to the dynamic block allocation, MMU support to dynamic page allocation and dynamic binding as this increases the latency of servicing the tasks and ISRs. RTOS may not support to memory protection of the OS functions, as this increases the latency of servicing the tasks and ISRs. User functions are then can run in kernel space and run like kernel functions RTOS may provide for disabling of the support to memory protection among the tasks as this increases the memory requirement for each task Memory Manager functions (i) use of memory address space by a process, (ii) specific mechanisms to share the memory space and specific mechanisms to restrict sharing of a given memory space (iv) optimization of the access periods of a memory by using an hierarchy of memory (caches, primary and external secondary magnetic and optical memories). Remember that the access periods are in the following increasing order: caches, primary and external secondary magnetic and then or optical. Fragmentation Memory Allocation Problems Fragmented not continuous memory addresses in two blocks of a process Time is spent in first locating next free memory address before allocating that to the process. A standard memory allocation scheme is to scan a linked list of indeterminate length to find a suitable free memory block. When one allotted block of memory is deallocated, the time is spent in first locating next allocated memory block before deallocating that to the process. the time for allocation and de-allocation of the memory and blocks are variable (not deterministic) when the block sizes are variable and when the memory is fragmented. In RTOS, this leads to unpredicatble task performance Memory management Example RTOS COS-II Memory partitioning A task must create a memory partition or several memory partitions by using function OSMemCreate ( ) Then the task is permitted to use the partition or partitions. A partition has several memory blocks. Task consists of several fixed size memory blocks. The fixed size memory blocks allocation and de-allocation time takes fixed time (deterministic). OSMemGet ( ) ─ to provide a task a memory block or blocks from the partition OSMemPut ( ) ─ to release a memory block or blocks to the partition 3. Give a short note on semaphore related functions? Ans: Semaphore Functions Provides for using same semaphorefunctions as an event signaling flagor mutex or counting semaphore. OSSemCreate (semVal) OSSemPend (*eventPointer, timeOut,*SemErrPointer) OSSemAccept (*eventPointer) OSSemPost (*eventPointer) OSSemQuery (*eventPointer