This document provides an overview of a workshop on embedded system design that covers topics ranging from electronics to microkernel development. The workshop schedule includes sessions on electronic building, board programming, and kernel development. Specific topics within the electronics building section include a review of electronics concepts, schematics, prototyping boards, system design procedures, microcontrollers, LCD displays, and potentiometers. The board programming section will cover programmers, integrated development environments, basic programming concepts, and examples. The final section on kernel development does not provide any details.
The document discusses developing an embedded system kernel project. It explains that a kernel manages processes, memory, and communication between hardware and processes. While developing one's own kernel allows for full control, it is also very time intensive. Alternatives like FreeRTOS are discussed. The document also covers the differences between monolithic and micro kernels. It states that this project will use a non-preemptive, cooperative microkernel that schedules processes and does not include memory management.
DEF CON 23 - Rodringo Almeida - embedded system design from electronics Felipe Prado
This document provides an overview of concepts related to developing an embedded system kernel. It discusses developing a custom kernel versus using alternatives like FreeRTOS. It covers key kernel design decisions like process and I/O management. The document outlines the approach taken in this course, which is to develop a microkernel that is non-preemptive, cooperative, and does not include memory management. It also discusses concepts important for kernel development like function pointers, structures, circular buffers, and temporal conditions.
Verilog code for design a specific processor to down sample a given image via a math-lab by using SPARTAN-6 FPGA. Math-lab code, results also included.
This document describes a project to design a single cycle MIPS microprocessor in Verilog and simulate it in ModelSim. The objectives are to gain hands-on experience with Verilog coding, processor design, and timing analysis. The design includes modules for the program counter, register file, ALU, instruction and data memory, control unit, and other datapath components. While simple, the single cycle design is inefficient because all instructions take the same number of cycles.
CodeWarrior, Linux; OrCad and Hyperlynx; QMS Toolsdjerrybellott
This document describes the configuration of a Freescale 8313RDB board with a PowerQuicII 8313 processor running Linux. It includes the configuration file contents which set memory window addresses and DDR controller registers to interface external memory. It also describes using U-Boot to load Linux and the Codewarrior IDE to compile and download programs to the board.
This document describes the design and implementation of a basic calculator using an LCD display module with an FPGA. It includes objectives to write Verilog code for the calculator logic and driving the LCD display. The design is a simple four-function calculator that takes two single-digit inputs and an operation and displays the result. The document outlines the state machine design and functions for converting values to ASCII format for the LCD. It provides details on interfacing with and controlling the LCD module through its control lines and registers. The implementation in Verilog is described including the top module ports and behavioral simulation steps to test the design functionality.
The document describes an embedded controller evaluation board that contains an AT89C51ED2 microcontroller, LEDs, switches, an LCD display, serial interface, ADC, DAC, RTC, and other peripherals. It provides instructions on applying power, serial communication, and examples of programs to blink LEDs, use timers to delay and toggle an LED, interface with the LCD display, and read a 4x4 keypad. The goal is to help users understand the capabilities of the microcontroller and experiment with its various features.
The document discusses developing an embedded system kernel project. It explains that a kernel manages processes, memory, and communication between hardware and processes. While developing one's own kernel allows for full control, it is also very time intensive. Alternatives like FreeRTOS are discussed. The document also covers the differences between monolithic and micro kernels. It states that this project will use a non-preemptive, cooperative microkernel that schedules processes and does not include memory management.
DEF CON 23 - Rodringo Almeida - embedded system design from electronics Felipe Prado
This document provides an overview of concepts related to developing an embedded system kernel. It discusses developing a custom kernel versus using alternatives like FreeRTOS. It covers key kernel design decisions like process and I/O management. The document outlines the approach taken in this course, which is to develop a microkernel that is non-preemptive, cooperative, and does not include memory management. It also discusses concepts important for kernel development like function pointers, structures, circular buffers, and temporal conditions.
Verilog code for design a specific processor to down sample a given image via a math-lab by using SPARTAN-6 FPGA. Math-lab code, results also included.
This document describes a project to design a single cycle MIPS microprocessor in Verilog and simulate it in ModelSim. The objectives are to gain hands-on experience with Verilog coding, processor design, and timing analysis. The design includes modules for the program counter, register file, ALU, instruction and data memory, control unit, and other datapath components. While simple, the single cycle design is inefficient because all instructions take the same number of cycles.
CodeWarrior, Linux; OrCad and Hyperlynx; QMS Toolsdjerrybellott
This document describes the configuration of a Freescale 8313RDB board with a PowerQuicII 8313 processor running Linux. It includes the configuration file contents which set memory window addresses and DDR controller registers to interface external memory. It also describes using U-Boot to load Linux and the Codewarrior IDE to compile and download programs to the board.
This document describes the design and implementation of a basic calculator using an LCD display module with an FPGA. It includes objectives to write Verilog code for the calculator logic and driving the LCD display. The design is a simple four-function calculator that takes two single-digit inputs and an operation and displays the result. The document outlines the state machine design and functions for converting values to ASCII format for the LCD. It provides details on interfacing with and controlling the LCD module through its control lines and registers. The implementation in Verilog is described including the top module ports and behavioral simulation steps to test the design functionality.
The document describes an embedded controller evaluation board that contains an AT89C51ED2 microcontroller, LEDs, switches, an LCD display, serial interface, ADC, DAC, RTC, and other peripherals. It provides instructions on applying power, serial communication, and examples of programs to blink LEDs, use timers to delay and toggle an LED, interface with the LCD display, and read a 4x4 keypad. The goal is to help users understand the capabilities of the microcontroller and experiment with its various features.
This document discusses analog to digital conversion using a microcontroller. It describes configuring the microcontroller's analog to digital converter to take readings from sensors connected to analog input pins. It explains concepts like reference voltages, conversion time, and reading the digital output. The document provides an example of reading an analog potentiometer input using Microchip's ADC functions in C. It also outlines some workshops involving reading sensors and controlling a robot using the analog to digital converter.
The document provides an overview of the STM32 MCU family from STMicroelectronics. It discusses the key features such as an ARM Cortex-M3 core, Flash memory up to 512KB, SRAM up to 64KB, low power modes, timers, and communication peripherals. It also outlines the applications for industrial equipment, appliances, low power devices, and consumer electronics. Finally, it gives a high-level description of the system architecture and various peripherals including DMA, ADC, DAC, communication interfaces, and watchdogs.
GSM 1308 MODEM CONTROL USING PIC-16F877A MICROCONTROLLERMd. Moktarul Islam
This document describes a project to control a GSM 1308 modem using a PIC16F877A microcontroller. The goals of the project were to improve an existing Flowcode program to allow the modem to function more like a general mobile phone. Key aspects included using the PIC16F877A and e-blocks components like an LCD board and keypad to send AT commands to the modem for calling, SMS sending and receiving. The programs were tested in Flowcode and shown to allow dialing, call answering, sending and receiving SMS via the modem and microcontroller interface.
This document provides information about a lab manual for a Microcontrollers course. It includes:
1) An index listing 12 experiments covering assembly programming of 8051 microcontrollers and interfacing programs, along with MSP430 programming.
2) Syllabus details for the course outlining topics like data transfer, arithmetic, logic instructions, counters and interfacing modules.
3) Instructions for students on lab protocols and expectations.
4) Table of contents organizing the experiments and programs by topic and page numbers.
5) An introduction section describing 8051 architecture features and Keil μVision tools for programming.
Introduction to i.MX27 Multimedia Applications ProcessorsPremier Farnell
The document provides an overview of the i.MX27 Multimedia Applications Processor from Freescale. It describes the processor's key features such as its ARM926EJ-S 400MHz core, multimedia capabilities including video encoding/decoding, and connectivity options. Application examples using the processor for video and voice over IP and IP cameras are also mentioned.
Synthesis & FPGA Implementation of UART IP Soft Coreijsrd.com
this paper presents synthesis and hardware implementation of fully functional Universal Asynchronous Receiver Transmitter Intellectual Property core using XILINX SPARTAN-3 XC3S400 series FPGA. The UART soft core module consists of a transmitter along with baud rate generator and a receiver module with false start bit detection features. This has been implemented using VERILOG hardware description language and synthesized using XILINX ISE development tools. All behavioral simulation of UART module performed using MODELSIM simulator. After successful FPGA implementation transmitter and receiver module was tested by connecting FPGA board with Hyper Terminal software via RS232 interface at a data speed of 9.6 kbps.
This document summarizes the features and specifications of an 8-bit Atmel microcontroller. It has advanced RISC architecture with powerful instructions that execute in single clock cycles. It features in-system self-programmable flash memory from 4-32KB, EEPROM from 256-1KB, and internal SRAM from 512-2KB. It has various peripheral features including timers, PWM, ADC, serial interfaces, and more. It is available in PDIP, TQFP, and other packages and operates from 1.8-5.5V over commercial and industrial temperature ranges.
Power-on reset (POR) restores devices to a predetermined state when power is applied. Low-voltage detection (LVD) monitors the supply voltage and generates a reset or interrupt if the voltage drops below a threshold. Watchdog timers (WDT) periodically reset a counter and generate a reset if the program fails to reset the counter, allowing recovery from program errors.
The document discusses Inter-Integrated Circuit (I2C) drivers in Linux. It provides an overview of I2C, describing its conditions, transactions and popular uses. It also describes the I2C subsystem in Linux, including I2C adapters, clients and drivers. It explains how to write an I2C client driver, covering initialization, cleanup and registration both with and without a device tree. The document aims to cover all aspects of developing I2C drivers and interfacing with I2C devices in Linux.
This project describes a DC motor speed control system using an STM32 microcontroller. The speed of the DC motor is measured by an optocoupler encoder and sent to the controller. The user can set the target speed using push buttons. The controller then adjusts the motor speed using PWM output to try and match the target speed. The current and target speeds are displayed on an LCD screen.
8-Bit CMOS Microcontrollers with nanoWatt TechnologyPremier Farnell
The document introduces the PIC12F635 8-bit CMOS microcontroller with nanowatt technology. It has a RISC CPU, low power consumption, various modules like timers and comparators, and new features like a KEELOQ encryption peripheral. It is suitable for applications like motor control, sensor interfaces, and power management. The document provides details on its architecture, peripherals, development tools, and ordering information.
The document describes the configuration and setup of an Siemens S7 PLC driver for EPICS. The driver allows PLCs running Siemens Step 7 software to exchange process data with EPICS IOCs over TCP/IP. Key points include:
1) Data is exchanged in blocks containing PVs with arbitrary layout and length.
2) The driver must be configured with the PLC IP address, port numbers, block sizes and send periods.
3) EPICS records must be configured with the PV offsets, types and other metadata provided by the PLC programmer.
4) Supported record types include analog input/output, binary, string and other common EPICS record types.
This document is an embedded system lab manual that provides experimental programs using a PIC16F877A microcontroller. It includes 10 experiments with topics like voltage measurement, water pump control, digital clock, temperature measurement, and more. The introduction section describes embedded systems and features of the PIC16F877A microcontroller used in the experiments. Each experiment section provides the aim, apparatus required, theory, program code, connection diagram, procedure and result.
This document provides an introduction to PIC microcontrollers. It discusses why PICs have become popular, including their low cost, wide availability, and support tools. It then describes the basic architecture of PIC microcontrollers, including their Harvard architecture, RISC design, and peripheral features like timers and serial communication. Finally, it discusses the architecture of the PIC16C6x line specifically, outlining its registers, addressing modes, and peripheral modules.
⭐⭐⭐⭐⭐ Monitoring of system memory usage embedded in #FPGAVictor Asanza
Introduction:
Field Programmable Gate Array #FPGA
System on Chip #SoC
#Nios_II_Processor
Hard Processor System #HPS
Advanced RISC Machine #ARM
Logical bridges
Share physical resources
Related Works:
Renovell et Al., testing #RAM modules in #FPGA
Focus on functional tests RAM of the FPGA
Wei et Al., RAM memory monitoring
Embedded System from the #HardProcessor
Wang et Al., Real-time applications
Use memory optimized way during the execution of tasks based on SoC architecture
real-time Electrocardiogram #ECG
FPGA with two 8GB Dual Data Rate Synchronous Dynamic Random Access Memories #DDR3 #SDRAM
Results:
As shown in Fig 12, the SRAM is working in the logical part executing several tasks and it is validated that as time passes the memory consumption increases. In addition, the writing times will depend on the amount of memory to be written and this varies according to the task that is being executed by the user or those that he has programmed in the Nios II.
As for the DD3, it is executing the Linux OS as a basis and additionally, a size proportional to the size of the SRAM is reserved for the respective comparisons, so it is observed that it has a higher consumption and longer response times. It should be considered in this comparison that the DD3 in addition to running the OS, also has the web server implemented which consumption varies according to the clients that are connecting to the webpage where it can be seen the memory monitoring of the embedded system. Also, thanks to the part of the HPS it is possible to monitor the memory of the embedded system without affecting its consumption.
As shown in Fig. 13, the SRAM is not under the same workload since it is only responsible for storing what Nios II needs for the execution of the tasks.
Finally, it was consider that the HPS portion to be very important for a clean monitoring not only of the SRAM but also of any core that is implemented in the FPGA portion, since if this application is implemented on a chip that only has FPGA the application would affect the consumption and performance of it, therefore you could not have completely reliable results.
AAME ARM Techcon2013 003v02 Software DevelopmentAnh Dung NGUYEN
This document provides an overview of the Keil MDK development tools and environment for software development on ARM Cortex-M microcontrollers. It describes the μVision IDE, ARM compiler, debugger and other tools. It discusses the embedded development process, including considerations when moving from a development environment to a standalone application such as memory maps, application startup, and C library usage. It also covers optimization levels, language support, variable types, and default memory maps and C libraries provided by the tools.
The document contains Verilog code for a single cycle processor including modules for a program counter, accumulator, ALU, adder, multiplexers, controller, data memory, instruction memory, and a test bench. It describes the design and implementation of the datapath and controller for a simple CPU using Verilog that performs arithmetic and logical operations on data stored in memory locations.
The document summarizes the Piccolo microcontroller series from Texas Instruments. The Piccolo series provides real-time control capabilities in a small, low-cost MCU package starting under $2. Key features include a 60 MHz C28x CPU, control law accelerator, 12-bit ADC, high resolution PWM outputs, and various serial interfaces. The document outlines the Piccolo architecture and peripheral blocks.
The document introduces the eCOG1X 16-bit microcontroller from Cyan Technology. It has a 70MHz 16-bit CPU, 512KB flash memory, 24KB SRAM, Ethernet MAC, USB 2.0 interface, dual serial ports, LCD controller, ADC, DAC, and additional peripherals. The document provides an overview of the device's block diagram and key features of its CPU, memory management unit, and peripherals including serial communication protocols, LCD control, smart card interfaces, and analog functions.
O documento discute as diferentes engenharias existentes, listando as principais engenharias de acordo com o INEP e o Crea. O INEP lista 218 engenharias, incluindo engenharia mecânica, elétrica, civil, produção e computação. O Crea lista 88 engenharias, incluindo engenheiro civil, elétrico, mecânico, de produção, químico e de minas. O documento também descreve as competências gerais de um engenheiro.
This document discusses analog to digital conversion using a microcontroller. It describes configuring the microcontroller's analog to digital converter to take readings from sensors connected to analog input pins. It explains concepts like reference voltages, conversion time, and reading the digital output. The document provides an example of reading an analog potentiometer input using Microchip's ADC functions in C. It also outlines some workshops involving reading sensors and controlling a robot using the analog to digital converter.
The document provides an overview of the STM32 MCU family from STMicroelectronics. It discusses the key features such as an ARM Cortex-M3 core, Flash memory up to 512KB, SRAM up to 64KB, low power modes, timers, and communication peripherals. It also outlines the applications for industrial equipment, appliances, low power devices, and consumer electronics. Finally, it gives a high-level description of the system architecture and various peripherals including DMA, ADC, DAC, communication interfaces, and watchdogs.
GSM 1308 MODEM CONTROL USING PIC-16F877A MICROCONTROLLERMd. Moktarul Islam
This document describes a project to control a GSM 1308 modem using a PIC16F877A microcontroller. The goals of the project were to improve an existing Flowcode program to allow the modem to function more like a general mobile phone. Key aspects included using the PIC16F877A and e-blocks components like an LCD board and keypad to send AT commands to the modem for calling, SMS sending and receiving. The programs were tested in Flowcode and shown to allow dialing, call answering, sending and receiving SMS via the modem and microcontroller interface.
This document provides information about a lab manual for a Microcontrollers course. It includes:
1) An index listing 12 experiments covering assembly programming of 8051 microcontrollers and interfacing programs, along with MSP430 programming.
2) Syllabus details for the course outlining topics like data transfer, arithmetic, logic instructions, counters and interfacing modules.
3) Instructions for students on lab protocols and expectations.
4) Table of contents organizing the experiments and programs by topic and page numbers.
5) An introduction section describing 8051 architecture features and Keil μVision tools for programming.
Introduction to i.MX27 Multimedia Applications ProcessorsPremier Farnell
The document provides an overview of the i.MX27 Multimedia Applications Processor from Freescale. It describes the processor's key features such as its ARM926EJ-S 400MHz core, multimedia capabilities including video encoding/decoding, and connectivity options. Application examples using the processor for video and voice over IP and IP cameras are also mentioned.
Synthesis & FPGA Implementation of UART IP Soft Coreijsrd.com
this paper presents synthesis and hardware implementation of fully functional Universal Asynchronous Receiver Transmitter Intellectual Property core using XILINX SPARTAN-3 XC3S400 series FPGA. The UART soft core module consists of a transmitter along with baud rate generator and a receiver module with false start bit detection features. This has been implemented using VERILOG hardware description language and synthesized using XILINX ISE development tools. All behavioral simulation of UART module performed using MODELSIM simulator. After successful FPGA implementation transmitter and receiver module was tested by connecting FPGA board with Hyper Terminal software via RS232 interface at a data speed of 9.6 kbps.
This document summarizes the features and specifications of an 8-bit Atmel microcontroller. It has advanced RISC architecture with powerful instructions that execute in single clock cycles. It features in-system self-programmable flash memory from 4-32KB, EEPROM from 256-1KB, and internal SRAM from 512-2KB. It has various peripheral features including timers, PWM, ADC, serial interfaces, and more. It is available in PDIP, TQFP, and other packages and operates from 1.8-5.5V over commercial and industrial temperature ranges.
Power-on reset (POR) restores devices to a predetermined state when power is applied. Low-voltage detection (LVD) monitors the supply voltage and generates a reset or interrupt if the voltage drops below a threshold. Watchdog timers (WDT) periodically reset a counter and generate a reset if the program fails to reset the counter, allowing recovery from program errors.
The document discusses Inter-Integrated Circuit (I2C) drivers in Linux. It provides an overview of I2C, describing its conditions, transactions and popular uses. It also describes the I2C subsystem in Linux, including I2C adapters, clients and drivers. It explains how to write an I2C client driver, covering initialization, cleanup and registration both with and without a device tree. The document aims to cover all aspects of developing I2C drivers and interfacing with I2C devices in Linux.
This project describes a DC motor speed control system using an STM32 microcontroller. The speed of the DC motor is measured by an optocoupler encoder and sent to the controller. The user can set the target speed using push buttons. The controller then adjusts the motor speed using PWM output to try and match the target speed. The current and target speeds are displayed on an LCD screen.
8-Bit CMOS Microcontrollers with nanoWatt TechnologyPremier Farnell
The document introduces the PIC12F635 8-bit CMOS microcontroller with nanowatt technology. It has a RISC CPU, low power consumption, various modules like timers and comparators, and new features like a KEELOQ encryption peripheral. It is suitable for applications like motor control, sensor interfaces, and power management. The document provides details on its architecture, peripherals, development tools, and ordering information.
The document describes the configuration and setup of an Siemens S7 PLC driver for EPICS. The driver allows PLCs running Siemens Step 7 software to exchange process data with EPICS IOCs over TCP/IP. Key points include:
1) Data is exchanged in blocks containing PVs with arbitrary layout and length.
2) The driver must be configured with the PLC IP address, port numbers, block sizes and send periods.
3) EPICS records must be configured with the PV offsets, types and other metadata provided by the PLC programmer.
4) Supported record types include analog input/output, binary, string and other common EPICS record types.
This document is an embedded system lab manual that provides experimental programs using a PIC16F877A microcontroller. It includes 10 experiments with topics like voltage measurement, water pump control, digital clock, temperature measurement, and more. The introduction section describes embedded systems and features of the PIC16F877A microcontroller used in the experiments. Each experiment section provides the aim, apparatus required, theory, program code, connection diagram, procedure and result.
This document provides an introduction to PIC microcontrollers. It discusses why PICs have become popular, including their low cost, wide availability, and support tools. It then describes the basic architecture of PIC microcontrollers, including their Harvard architecture, RISC design, and peripheral features like timers and serial communication. Finally, it discusses the architecture of the PIC16C6x line specifically, outlining its registers, addressing modes, and peripheral modules.
⭐⭐⭐⭐⭐ Monitoring of system memory usage embedded in #FPGAVictor Asanza
Introduction:
Field Programmable Gate Array #FPGA
System on Chip #SoC
#Nios_II_Processor
Hard Processor System #HPS
Advanced RISC Machine #ARM
Logical bridges
Share physical resources
Related Works:
Renovell et Al., testing #RAM modules in #FPGA
Focus on functional tests RAM of the FPGA
Wei et Al., RAM memory monitoring
Embedded System from the #HardProcessor
Wang et Al., Real-time applications
Use memory optimized way during the execution of tasks based on SoC architecture
real-time Electrocardiogram #ECG
FPGA with two 8GB Dual Data Rate Synchronous Dynamic Random Access Memories #DDR3 #SDRAM
Results:
As shown in Fig 12, the SRAM is working in the logical part executing several tasks and it is validated that as time passes the memory consumption increases. In addition, the writing times will depend on the amount of memory to be written and this varies according to the task that is being executed by the user or those that he has programmed in the Nios II.
As for the DD3, it is executing the Linux OS as a basis and additionally, a size proportional to the size of the SRAM is reserved for the respective comparisons, so it is observed that it has a higher consumption and longer response times. It should be considered in this comparison that the DD3 in addition to running the OS, also has the web server implemented which consumption varies according to the clients that are connecting to the webpage where it can be seen the memory monitoring of the embedded system. Also, thanks to the part of the HPS it is possible to monitor the memory of the embedded system without affecting its consumption.
As shown in Fig. 13, the SRAM is not under the same workload since it is only responsible for storing what Nios II needs for the execution of the tasks.
Finally, it was consider that the HPS portion to be very important for a clean monitoring not only of the SRAM but also of any core that is implemented in the FPGA portion, since if this application is implemented on a chip that only has FPGA the application would affect the consumption and performance of it, therefore you could not have completely reliable results.
AAME ARM Techcon2013 003v02 Software DevelopmentAnh Dung NGUYEN
This document provides an overview of the Keil MDK development tools and environment for software development on ARM Cortex-M microcontrollers. It describes the μVision IDE, ARM compiler, debugger and other tools. It discusses the embedded development process, including considerations when moving from a development environment to a standalone application such as memory maps, application startup, and C library usage. It also covers optimization levels, language support, variable types, and default memory maps and C libraries provided by the tools.
The document contains Verilog code for a single cycle processor including modules for a program counter, accumulator, ALU, adder, multiplexers, controller, data memory, instruction memory, and a test bench. It describes the design and implementation of the datapath and controller for a simple CPU using Verilog that performs arithmetic and logical operations on data stored in memory locations.
The document summarizes the Piccolo microcontroller series from Texas Instruments. The Piccolo series provides real-time control capabilities in a small, low-cost MCU package starting under $2. Key features include a 60 MHz C28x CPU, control law accelerator, 12-bit ADC, high resolution PWM outputs, and various serial interfaces. The document outlines the Piccolo architecture and peripheral blocks.
The document introduces the eCOG1X 16-bit microcontroller from Cyan Technology. It has a 70MHz 16-bit CPU, 512KB flash memory, 24KB SRAM, Ethernet MAC, USB 2.0 interface, dual serial ports, LCD controller, ADC, DAC, and additional peripherals. The document provides an overview of the device's block diagram and key features of its CPU, memory management unit, and peripherals including serial communication protocols, LCD control, smart card interfaces, and analog functions.
O documento discute as diferentes engenharias existentes, listando as principais engenharias de acordo com o INEP e o Crea. O INEP lista 218 engenharias, incluindo engenharia mecânica, elétrica, civil, produção e computação. O Crea lista 88 engenharias, incluindo engenheiro civil, elétrico, mecânico, de produção, químico e de minas. O documento também descreve as competências gerais de um engenheiro.
Este documento proporciona instrucciones para instalar Windows en una estación de trabajo. Incluye pasos como asegurarse de cumplir con los requisitos previos, iniciar el BIOS, seleccionar el dispositivo de inicio, cargar los controladores de almacenamiento, crear una partición y completar la instalación de Windows.
This document discusses various methods for programmatically managing files and folders using the FileSystemObject in VBScript. It covers topics such as returning a collection of disk drives, binding to specific drives and folders, verifying and creating folders, copying, moving, renaming, and deleting files and folders, reading and writing text files, and enumerating folder properties. The FileSystemObject provides methods and properties to retrieve information about and programmatically manipulate drives, folders, and files on the filesystem.
1. The document provides key tax numbers and rates for 2009 and 2010 including exemptions, credits, deductions, income thresholds, and tax rates.
2. It summarizes changes to the alternative minimum tax exemption amounts, earned income tax credit amounts, personal exemption phaseouts, itemized deduction thresholds, and marginal tax rates between 2009 and 2010.
3. The document is intended to help individuals and families with tax planning for 2009 and 2010 by outlining important thresholds and rates for common deductions, credits, and tax calculations.
Modelo de farmacia en el Área de Gestión Sanitaria de Antequera. Ponencia de ...UGC Farmacia Granada
Este documento describe el modelo de farmacia en el Área de Gestión Sanitaria Sur de Granada. La farmacia del área ofrece servicios de gestión clínica, económica y dispensación de medicamentos a través de una unidad de gestión clínica provincial. El documento destaca las fortalezas como la experiencia como farmacia de área y la coordinación entre atención primaria y hospitalaria, así como las debilidades como las plantillas reducidas. El modelo ha logrado objetivos comunes y continuidad asistencial entre niveles a través de bu
The document is an expository essay analyzing Bernice Reagon's work "Black Music in Our Hands". It summarizes Reagon's realization that her music was meant to support activism during the Civil Rights Movement. As she participated in protests, her singing naturally changed to fit the moment. Her experiences in jail helped her connect with others and shape her role as a young leader. The essay outlines how Reagon came to understand the relationship between black music genres, the struggle for freedom, and her cultural heritage and community. It emphasizes that black music as a whole conveys the emotions and stories of the black experience.
Présentation en introduction de la journée d'étude "Qu'est-ce qui fait la valeur des bibliothèques? Une nouvelle norme pour mesurer leur impact": l'activité de l'AFNOR
I. Mempertahankan prinsip-prinsip Perlembagaan termasuk kedudukan Islam, agama-agama lain, bahasa Melayu, dan hak-hak istimewa kaum tertentu.
II. Memulihkan kewibawaan sistem kehakiman dan memastikan pilihanraya yang bersih dan adil.
III. Memacu ekonomi berprestasi tinggi dengan memberikan peluang pendidikan dan latihan berteraskan kemahiran.
On October 6, 2010, Oppenheimer initiated coverage of Fifth Third Bancorp with an Outperform rating and $16 price target. The analyst believes momentum is building at Fifth Third as evidenced by improving pre-provision profitability and credit trends. Reserve and capital levels are among the highest in the industry. The $16 price target assumes an 11x multiple on 2012 EPS estimates and implies further improvement in Fifth Third's fundamentals and market share growth.
Kozma Szilárd: Nagy Attila Puli, avagy az árnyék én a sorsképlet tükrébenVioletta Joó
Attila Nagy Puli – Prófétával való találkozásom következményei és következtetései. 2. A próféta sorsának kereszteződése az én sorsommal a sorsképleteink tükrében.
The document summarizes the election of Shri. Jacob Mathew as the President of WAN-IFRA, a global organization of newspaper editors and publishers. Some key details:
- Shri. Jacob Mathew, Executive Editor of Malayala Manorama Group of Publications and Member of Board of Governors of IIMK, has been elected President of WAN-IFRA for a 2-year term beginning July 1, 2011.
- He is the first Indian and second Asian to be elected to this position.
- WAN-IFRA represents over 18,000 publications, 15,000 online sites, and 3,000 companies in over 120 countries.
- The election is
LCU14-101: Coresight Overview
---------------------------------------------------
Speaker: Mathieu Poirier
Date: September 15, 2014
---------------------------------------------------
Coresight is the name given to a set of IP blocks providing hardware assisted tracing for ARM based SoCs. This presentation will give an introduction to the technology, how it works and offer a glimpse of the capabilities it offers. More specifically we will go over the components that are part of the architecture and how they are used. Next will be presented the framework Linaro is working on in an effort to provide consolidation and standardization of interfaces to the coresight subsystem. We will conclude with a status of our current upstreaming efforts and how we see the coming months unfolding.
---------------------------------------------------
★ Resources ★
Zerista: http://lcu14.zerista.com/event/member/137703
Google Event: https://plus.google.com/u/0/events/cvb85kqv10dsc4k3e0hcvbr6i58
Presentation: http://www.slideshare.net/linaroorg/lcu14-101-coresight-overview
Video: https://www.youtube.com/watch?v=NzKPd3FByxI&list=UUIVqQKxCyQLJS6xvSmfndLA
Etherpad: http://pad.linaro.org/p/lcu14-101
---------------------------------------------------
★ Event Details ★
Linaro Connect USA - #LCU14
September 15-19th, 2014
Hyatt Regency San Francisco Airport
---------------------------------------------------
http://www.linaro.org
http://connect.linaro.org
Microcontroller from basic_to_advancedImran Sheikh
The document discusses various topics related to embedded systems and microcontrollers including:
- Architectures like Von Neumann, Harvard and modified Harvard
- Types of microcontrollers like 8-bit, 16-bit and 32-bit
- Programming languages and IDEs used for embedded programming
- Common development boards and microcontrollers
- Memory types, buses, I/O and basic operation of microcontrollers
- Interfacing sensors and actuators to microcontrollers
1) The patches add support for managing CPU idle states using the generic PM domain framework and runtime PM. This provides a unified approach for idle management across all devices.
2) Key aspects include extending PM domains to support multiple idle levels, initializing CPU PM domains from device tree, and adding a governor to determine idle states based on wakeup times and QoS.
3) The changes allow the Linux kernel to directly control CPU and cluster idle states when firmware supports the OS-initiated suspend mode in the PSCI standard.
The TMS320C5x DSP architecture is based on the C25 with some enhancements. It uses a Harvard architecture with separate program and data memory buses. The CPU contains a CALU for arithmetic, PLU for logic, and ARAU for address calculations. On-chip memory includes ROM, DARAM, and SARAM. Peripherals include serial ports, timers, interrupts, and I/O. The architecture provides high performance with low power consumption and compatibility with prior C series DSPs.
Low-cost microcontrollers are being used more and more often in embedded applications that previously may have used a microprocessor. Microcontrollers often run a real-time operating system (RTOS) rather than a full operating system like Linux. In this webinar we introduce FreeRTOS, a popular RTOS for microcontrollers that has been ported to 35 microcontroller platforms.
Microprocessors are used extensively in the design of any computing facility. It contains units to carry out arithmetic and logic calculations, fast storage in terms of registers and associated control logic to get instructions from memory and execute them. A number of devices can be interfaced with them to develop a complete system application. On the other hand, microcontrollers are single chip computers, integrating processor, memory and other peripheral modules into a single System-on-Chip (SoC). Apart from input-output ports, the peripherals often include timers, data converters, communication modules, and so on. The single chip solution makes the footprint of the computational element small in the overall system package, eliminating the necessity of additional chips on board. However, there exists a large range of such products. While the simpler microcontrollers are cheap, their capabilities (in terms of program size and analog and digital peripherals) are also limited. Such processors may be suitable for small applications. Microcontrollers like 8051, PIC belong to this category. On the other hand, advanced microcontrollers are often much more powerful, comparable to the very advanced microprocessors. The AVR and ARM processors are of this category.
UWE Linux Boot Camp 2007: Hacking embedded Linux on the cheapedlangley
The document discusses hacking an embedded Linux system called the Mattel Juicebox, a children's video and MP3 player, by taking advantage of unused debugging interfaces. It covers setting up a toolchain and memory management for systems without an MMU, programming the target system over JTAG, and challenges faced getting uCLinux running on the Juicebox such as modifying its boot process.
Raspberry Pi - HW/SW Application DevelopmentCorley S.r.l.
This document discusses using the Raspberry Pi's GPIO pins and interfaces like I2C and UART to build custom shields and expand the functionality of the Raspberry Pi. It provides an overview of the GPIO pins and interfaces available on the RPi and libraries for accessing them from code. It also describes using the KiCad electronic design software to design custom shields and discusses building prototypes of shields with components, PCB fabrication services, and assembly. Examples of navigation and smart I/O shields are presented to demonstrate expanding the RPi's capabilities through custom hardware.
This document provides an overview of microcontroller programming using C language for ATMEL and PIC microcontrollers. It discusses microcontroller architecture, including the central processing unit, memory, timers/counters, and interrupts. It then introduces the ATMEL 89C2051 microcontroller, describing its pin configuration, special purpose I/O, memory, and other features. The document outlines the structure of microcontroller C programming and provides sample programs to blink an LED. It also discusses configuring the hardware and software environment, compiling and burning programs to the microcontroller, and writing interrupt subroutines.
Hunting and Exploiting Bugs in Kernel Drivers - DefCamp 2012DefCamp
This document provides an introduction to exploiting vulnerabilities in Windows kernel drivers for privilege escalation. It discusses the differences between user mode and kernel mode, how drivers communicate with user programs through I/O requests, techniques for analyzing and fuzzing drivers, potential privilege escalation methods like overwriting function pointers and token stealing, and how to set up a kernel debugging environment. The overall goal is to find bugs in kernel drivers that could allow gaining kernel-level code execution and full system access.
The document discusses microcontrollers and the PIC16F877 microcontroller in particular. It provides the following key points:
- A microcontroller is a single-chip computer containing a processor, memory, and input/output peripherals. Microcontrollers can store and run user-written programs.
- The main parts of a microcontroller include a CPU, RAM, ROM, I/O lines, timers, and analog-to-digital and digital-to-analog converters.
- The PIC16F877 is chosen for its low cost, reliability, ease of use, and ability to perform a wide range of tasks using C language software.
Rodrigo Almeida - Microkernel development from project to implementationFelipe Prado
This document discusses developing a microkernel from project to implementation. It covers topics like kernel components, designing a kernel project, concepts for developing a microkernel like function pointers and structs, building a device driver controller, and using callbacks. Code examples are provided for initializing hardware and communicating with an LCD. The goal is for participants to have a better understanding of kernels, their advantages, and restrictions.
This document provides an overview of the PIC18 microcontroller architecture. It discusses the PIC18 family, which uses an 8-bit architecture with up to 16 MIPS of processing power. It describes the PIC18 architecture, which is based on Harvard architecture with separate memory spaces for instructions and data. The document outlines the PIC18 features such as the CPU core, program ROM, data memory, I/O ports, and internal devices. It also discusses the registers in PIC18 microcontrollers including the WREG, general purpose registers, special function registers, status register, and provides an example of setting flags in the status register.
The document provides an overview of the Analog Devices Blackfin processor BF532. Some key points:
- The BF532 is a high-performance embedded processor designed for audio, video, automotive and other applications. It combines a 32-bit RISC instruction set with dual 16-bit MAC units and 8-bit video processing.
- It features a maximum clock speed of 600MHz, two 16-bit MACs, two 40-bit ALUs, four 8-bit video ALUs, and 148KB of on-chip memory. It supports interfaces like SPI, parallel ports, UART and has peripherals like timers and DMA.
- The document discusses the Blackfin architecture
The document discusses transaction-based hardware-software co-verification using emulation. It describes how traditional cycle-based co-verification is slow due to communication overhead between the testbench and emulator. Transaction-based co-verification improves speed by only synchronizing when required and allowing parallel execution. Transactors are used to convert high-level commands from the testbench to a bit-level protocol for the emulator. This allows emulation speeds of tens of MHz, orders of magnitude faster than cycle-based. An example transactor for a virtual memory is presented.
The document discusses the design of control units in computers. It describes two main types of control unit implementations: hardwired control units and microprogrammed control units. Hardwired control units use combinational logic circuits to generate control signals, while microprogrammed control units store sequences of control instructions called microprograms in a read-only control memory. The document provides details on the components and functioning of microprogrammed control units, and compares the advantages and disadvantages of the two approaches.
1.Gives basic idea about what is arduino? and their funtionalites.
2. Applications of arduino
3. Adruino programming
4. what is Nodemcu ?
5. pindiagram of Nodemcu
1) The document provides an introduction to GPGPU programming with CUDA, outlining goals of providing an overview and vision for using GPUs to improve applications.
2) Key aspects of GPU programming are discussed, including the large number of cores devoted to data processing, example applications that are well-suited to parallelization, and the CUDA tooling in Visual Studio.
3) A hands-on example of matrix multiplication is presented to demonstrate basic CUDA programming concepts like memory management between host and device, kernel invocation across a grid of blocks, and using thread IDs to parallelize work.
The document discusses challenges in GPU compilers. It begins with introductions and abbreviations. It then outlines the topics to be covered: a brief history of GPUs, what makes GPUs special, how to program GPUs, writing a GPU compiler including front-end, middle-end, and back-end aspects, and a few words about graphics. Key points are that GPUs are massively data-parallel, execute instructions in lockstep, and require supporting new language features like OpenCL as well as optimizing for and mapping to the GPU hardware architecture.
Similar to Embedded systems development Defcon 19 (20)
Troca de contexto segura em sistemas operacionais embarcados utilizando de té...Rodrigo Almeida
A segurança e a confiabilidade em sistemas embarcados são áreas críticas e de recente desenvolvimento. Além das complicações inerentes à área de segurança, existem restrições quanto a capacidade de processamento e de armazenamento destes sistemas. Isto é agravado em sistemas de baixo custo. Neste trabalho, é apresentada uma técnica que, aplicada à troca de contexto em sistemas operacionais, aumentando a segurança destes. A técnica é baseada na detecção e correção de erros em sequência de valores binários. Para realização dos testes, foi desenvolvido um sistema operacional de tempo real e implementado numa placa de desenvolvimento. Observou-se que o consumo de processamento das técnicas de detecção de erro são inferiores às de correção, cerca de 2% para CRC e 8% para Hamming. Objetivando-se minimizar o tempo de processamento optou-se por uma abordagem mista entre correção e detecção. Esta abordagem reduz o consumo de processamento medida que os processos que exigem tempo real apresentem uma baixa taxa de execução, quando comparados com o período de troca de contexto. Por fim, fica comprovada a possibilidade de implementação desta técnica em qualquer sistema embarcado, inclusive em processadores de baixo custo.
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...Rodrigo Almeida
A segurança e a confiabilidade em sistemas embarcados são áreas críticas e de recente desenvolvimento. Além das complicações inerentes à área de segurança, existem restrições quanto a capacidade de processamento e de armazenamento destes sistemas. Isto é agravado em sistemas de baixo custo. Neste trabalho, é apresentada uma técnica que, aplicada à troca de contexto em sistemas operacionais, aumentando a segurança destes. A técnica é baseada na detecção e correção de erros em sequência de valores binários. Para realização dos testes, foi desenvolvido um sistema operacional de tempo real e implementado numa placa de desenvolvimento. Observou-se que o consumo de processamento das técnicas de detecção de erro são inferiores às de correção, cerca de 2% para CRC e 8% para Hamming. Objetivando-se minimizar o tempo de processamento optou-se por uma abordagem mista entre correção e detecção. Esta abordagem reduz o consumo de processamento medida que os processos que exigem tempo real apresentem uma baixa taxa de execução, quando comparados com o período de troca de contexto. Por fim, fica comprovada a possibilidade de implementação desta técnica em qualquer sistema embarcado, inclusive em processadores de baixo custo.
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...Rodrigo Almeida
A segurança e a confiabilidade em sistemas embarcados são áreas criticas e de recente desenvolvimento. Além das complicações inerentes a área de segurança, existem restrições quanto a capacidade de processamento e de armazenamento destes sistemas. Isto é agravado em sistemas de baixo custo. Neste trabalho é apresentada uma técnica que, aplicada à troca de contexto em sistemas operacionais, aumenta a segurança destes. A técnica é baseada na detecção e correção de erros em sequência de valores binários. Para realização dos testes foi desenvolvido um sistema operacional de tempo real e implementado numa placa de desenvolvimento. Observou-se que o consumo de processamento das técnicas de detecção de erro são inferiores às de correção, cerca de 2\% para CRC e 8\% para Hamming. Objetivando-se minimizar o tempo de processamento optou-se por uma abordagem mista entre correção e detecção. Esta abordagem se mostrou mais interessante a medida que os processos que exijam tempo real apresentem uma baixa taxa de execução, quando comparados com o período de troca de contexto. Por fim, fica comprovada a possibilidade de implementação desta técnica em qualquer sistema embarcado, inclusive em processadores de baixo custo.
O documento descreve uma controladora de drivers para gerenciar drivers de dispositivos de forma padronizada. A controladora inicializa e mantém os drivers carregados, armazenando informações sobre eles. Ela funciona como uma camada de segurança entre o kernel e os drivers, evitando comandos incorretos. A controladora também suporta callbacks para que drivers possam registrar funções a serem chamadas assincronamente, como em interrupções.
Desenvolvimento de drivers para sistemas embarcadosRodrigo Almeida
Este documento discute:
1. Sistemas em tempo real e seus requisitos temporais, como garantir a periodicidade de tarefas e determinismo.
2. Como implementar um sistema que trabalhe com requisitos temporais, necessitando de um relógio preciso, informar a frequência de cada processo e garantir que os tempos de execução cabem no tempo disponível.
3. A criação de drivers para dispositivos, como o driver para LCD utilizando funções de inicialização, escrita e acesso.
O documento descreve um exemplo de kernel cooperativo para gerenciar processos em um sistema embarcado. O kernel implementa um buffer circular para armazenar os processos, funções para adicionar e remover processos, e um loop infinito que executa os processos de forma cooperativa, reagendando aqueles que precisam ser executados repetidamente. O exercício propõe adaptar o código para a placa e testar o reagendamento e execução de processos que acionam saídas digitais.
O documento descreve um sistema de processos cooperativos implementado através de um buffer circular. O buffer armazena estruturas de processo contendo um ponteiro de função a ser executada. Há funções para adicionar, remover e executar processos no buffer mantendo a ordem de inserção.
O documento descreve um exercício para implementar um buffer circular para armazenar estruturas contendo ponteiros de função. O objetivo é permitir que funções sejam adicionadas ao buffer e executadas via chamada à função apontada pelo ponteiro de função armazenado.
O documento descreve conceitos sobre ponteiros, structs e buffers circulares em C. Especificamente, apresenta: 1) como ponteiros armazenam endereços de memória e apontam para variáveis; 2) como structs agrupam variáveis de diferentes tipos; e 3) como buffers circulares implementam filas FIFO usando um vetor com ponteiros de início e fim.
Introdução aos sistemas operacionais embarcadosRodrigo Almeida
O documento discute sistemas operacionais embarcados, apresentando o cronograma do curso e considerações sobre projeto de kernels, incluindo vantagens e desvantagens de desenvolver seu próprio kernel versus utilizar alternativas existentes. É apresentado o microcontrolador KL02 da Freescale e discutidas alternativas como Windows Embedded Compact, VxWorks, FreeRTOS e decisões importantes no projeto de kernels.
Segurança de sistemas: invasões, engenharia reversa e análise de virusRodrigo Almeida
Este documento resume conceitos sobre invasão de sistemas computacionais, incluindo exemplos de ataques como Stuxnet e SQL injection. Ele discute vulnerabilidades, métodos de ataque ativos e passivos, e técnicas de engenharia reversa para acessar portas seriais. O documento também fornece fontes de informação sobre segurança cibernética.
Este documento descreve protocolos de comunicação serial, incluindo I2C, RS232 e LCD. Ele fornece detalhes sobre como implementar comunicação I2C, como criar uma biblioteca I2C e rotinas para escrita e leitura de bytes. Além disso, explica como enviar dados e comandos para um display LCD.
O documento discute três tópicos principais: 1) leitura de teclas e problemas de bouncing, resolvidos por hardware ou software; 2) leitura matricial de teclado; 3) exibição em display LCD, incluindo conexões, comandos e biblioteca de controle.
O documento discute técnicas de leitura de teclas e teclados matriciais, incluindo displays de 7 segmentos multiplexados, debounce de teclas e leitura matricial.
1) O documento discute displays de 7 segmentos, incluindo como representar números e letras usando os 7 segmentos e a multiplexação de vários displays.
2) É apresentado o mapeamento hexadecimal para cada algarismo e como ligar/desligar os segmentos correspondentes.
3) É explicado como multiplexar temporalmente 4 displays usando linhas de controle individuais para cada display e alternando rapidamente entre eles.
Acessando os periféricos de um microcontroladorRodrigo Almeida
1) O documento discute programação de periféricos de microcontroladores, incluindo acesso às portas, barramentos de LEDs, conversores AD e outros periféricos.
2) É explicado como configurar as portas do PIC18F4550 como entrada ou saída e como acessá-las para controlar dispositivos como LEDs.
3) São apresentados vários registradores de configuração importantes para programação de periféricos como conversor AD, UART, PWM e interrupções.
1) O documento discute pontos sobre arquitetura de microcontroladores e operações com bits na linguagem C. 2) Inclui explicações sobre ponteiros, operadores & e *, acesso à memória, clock e tempo de instrução, esquema elétrico e circuitos importantes. 3) Também apresenta detalhes sobre registros de configuração para definir o funcionamento básico e periféricos do microcontrolador.
O documento discute operações com bits na linguagem C, incluindo:
1) Tipos de dados em C e suas propriedades de armazenamento de bits;
2) Conversões entre sistemas binário, decimal e hexadecimal;
3) Operações lógicas bit a bit como NOT, AND, OR e XOR;
4) Deslocamentos de bits à esquerda e à direita.
How information systems are built or acquired puts information, which is what they should be about, in a secondary place. Our language adapted accordingly, and we no longer talk about information systems but applications. Applications evolved in a way to break data into diverse fragments, tightly coupled with applications and expensive to integrate. The result is technical debt, which is re-paid by taking even bigger "loans", resulting in an ever-increasing technical debt. Software engineering and procurement practices work in sync with market forces to maintain this trend. This talk demonstrates how natural this situation is. The question is: can something be done to reverse the trend?
In the realm of cybersecurity, offensive security practices act as a critical shield. By simulating real-world attacks in a controlled environment, these techniques expose vulnerabilities before malicious actors can exploit them. This proactive approach allows manufacturers to identify and fix weaknesses, significantly enhancing system security.
This presentation delves into the development of a system designed to mimic Galileo's Open Service signal using software-defined radio (SDR) technology. We'll begin with a foundational overview of both Global Navigation Satellite Systems (GNSS) and the intricacies of digital signal processing.
The presentation culminates in a live demonstration. We'll showcase the manipulation of Galileo's Open Service pilot signal, simulating an attack on various software and hardware systems. This practical demonstration serves to highlight the potential consequences of unaddressed vulnerabilities, emphasizing the importance of offensive security practices in safeguarding critical infrastructure.
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/temporal-event-neural-networks-a-more-efficient-alternative-to-the-transformer-a-presentation-from-brainchip/
Chris Jones, Director of Product Management at BrainChip , presents the “Temporal Event Neural Networks: A More Efficient Alternative to the Transformer” tutorial at the May 2024 Embedded Vision Summit.
The expansion of AI services necessitates enhanced computational capabilities on edge devices. Temporal Event Neural Networks (TENNs), developed by BrainChip, represent a novel and highly efficient state-space network. TENNs demonstrate exceptional proficiency in handling multi-dimensional streaming data, facilitating advancements in object detection, action recognition, speech enhancement and language model/sequence generation. Through the utilization of polynomial-based continuous convolutions, TENNs streamline models, expedite training processes and significantly diminish memory requirements, achieving notable reductions of up to 50x in parameters and 5,000x in energy consumption compared to prevailing methodologies like transformers.
Integration with BrainChip’s Akida neuromorphic hardware IP further enhances TENNs’ capabilities, enabling the realization of highly capable, portable and passively cooled edge devices. This presentation delves into the technical innovations underlying TENNs, presents real-world benchmarks, and elucidates how this cutting-edge approach is positioned to revolutionize edge AI across diverse applications.
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving
Manufacturing custom quality metal nameplates and badges involves several standard operations. Processes include sheet prep, lithography, screening, coating, punch press and inspection. All decoration is completed in the flat sheet with adhesive and tooling operations following. The possibilities for creating unique durable nameplates are endless. How will you create your brand identity? We can help!
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving
What began over 115 years ago as a supplier of precision gauges to the automotive industry has evolved into being an industry leader in the manufacture of product branding, automotive cockpit trim and decorative appliance trim. Value-added services include in-house Design, Engineering, Program Management, Test Lab and Tool Shops.
Must Know Postgres Extension for DBA and Developer during MigrationMydbops
Mydbops Opensource Database Meetup 16
Topic: Must-Know PostgreSQL Extensions for Developers and DBAs During Migration
Speaker: Deepak Mahto, Founder of DataCloudGaze Consulting
Date & Time: 8th June | 10 AM - 1 PM IST
Venue: Bangalore International Centre, Bangalore
Abstract: Discover how PostgreSQL extensions can be your secret weapon! This talk explores how key extensions enhance database capabilities and streamline the migration process for users moving from other relational databases like Oracle.
Key Takeaways:
* Learn about crucial extensions like oracle_fdw, pgtt, and pg_audit that ease migration complexities.
* Gain valuable strategies for implementing these extensions in PostgreSQL to achieve license freedom.
* Discover how these key extensions can empower both developers and DBAs during the migration process.
* Don't miss this chance to gain practical knowledge from an industry expert and stay updated on the latest open-source database trends.
Mydbops Managed Services specializes in taking the pain out of database management while optimizing performance. Since 2015, we have been providing top-notch support and assistance for the top three open-source databases: MySQL, MongoDB, and PostgreSQL.
Our team offers a wide range of services, including assistance, support, consulting, 24/7 operations, and expertise in all relevant technologies. We help organizations improve their database's performance, scalability, efficiency, and availability.
Contact us: info@mydbops.com
Visit: https://www.mydbops.com/
Follow us on LinkedIn: https://in.linkedin.com/company/mydbops
For more details and updates, please follow up the below links.
Meetup Page : https://www.meetup.com/mydbops-databa...
Twitter: https://twitter.com/mydbopsofficial
Blogs: https://www.mydbops.com/blog/
Facebook(Meta): https://www.facebook.com/mydbops/
Discover top-tier mobile app development services, offering innovative solutions for iOS and Android. Enhance your business with custom, user-friendly mobile applications.
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsDianaGray10
Join us to learn how UiPath Apps can directly and easily interact with prebuilt connectors via Integration Service--including Salesforce, ServiceNow, Open GenAI, and more.
The best part is you can achieve this without building a custom workflow! Say goodbye to the hassle of using separate automations to call APIs. By seamlessly integrating within App Studio, you can now easily streamline your workflow, while gaining direct access to our Connector Catalog of popular applications.
We’ll discuss and demo the benefits of UiPath Apps and connectors including:
Creating a compelling user experience for any software, without the limitations of APIs.
Accelerating the app creation process, saving time and effort
Enjoying high-performance CRUD (create, read, update, delete) operations, for
seamless data management.
Speakers:
Russell Alfeche, Technology Leader, RPA at qBotic and UiPath MVP
Charlie Greenberg, host
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...Fwdays
Direct losses from downtime in 1 minute = $5-$10 thousand dollars. Reputation is priceless.
As part of the talk, we will consider the architectural strategies necessary for the development of highly loaded fintech solutions. We will focus on using queues and streaming to efficiently work and manage large amounts of data in real-time and to minimize latency.
We will focus special attention on the architectural patterns used in the design of the fintech system, microservices and event-driven architecture, which ensure scalability, fault tolerance, and consistency of the entire system.
Introduction of Cybersecurity with OSS at Code Europe 2024Hiroshi SHIBATA
I develop the Ruby programming language, RubyGems, and Bundler, which are package managers for Ruby. Today, I will introduce how to enhance the security of your application using open-source software (OSS) examples from Ruby and RubyGems.
The first topic is CVE (Common Vulnerabilities and Exposures). I have published CVEs many times. But what exactly is a CVE? I'll provide a basic understanding of CVEs and explain how to detect and handle vulnerabilities in OSS.
Next, let's discuss package managers. Package managers play a critical role in the OSS ecosystem. I'll explain how to manage library dependencies in your application.
I'll share insights into how the Ruby and RubyGems core team works to keep our ecosystem safe. By the end of this talk, you'll have a better understanding of how to safeguard your code.
Skybuffer SAM4U tool for SAP license adoptionTatiana Kojar
Manage and optimize your license adoption and consumption with SAM4U, an SAP free customer software asset management tool.
SAM4U, an SAP complimentary software asset management tool for customers, delivers a detailed and well-structured overview of license inventory and usage with a user-friendly interface. We offer a hosted, cost-effective, and performance-optimized SAM4U setup in the Skybuffer Cloud environment. You retain ownership of the system and data, while we manage the ABAP 7.58 infrastructure, ensuring fixed Total Cost of Ownership (TCO) and exceptional services through the SAP Fiori interface.
What is an RPA CoE? Session 1 – CoE VisionDianaGray10
In the first session, we will review the organization's vision and how this has an impact on the COE Structure.
Topics covered:
• The role of a steering committee
• How do the organization’s priorities determine CoE Structure?
Speaker:
Chris Bolin, Senior Intelligent Automation Architect Anika Systems
Monitoring and Managing Anomaly Detection on OpenShift.pdfTosin Akinosho
Monitoring and Managing Anomaly Detection on OpenShift
Overview
Dive into the world of anomaly detection on edge devices with our comprehensive hands-on tutorial. This SlideShare presentation will guide you through the entire process, from data collection and model training to edge deployment and real-time monitoring. Perfect for those looking to implement robust anomaly detection systems on resource-constrained IoT/edge devices.
Key Topics Covered
1. Introduction to Anomaly Detection
- Understand the fundamentals of anomaly detection and its importance in identifying unusual behavior or failures in systems.
2. Understanding Edge (IoT)
- Learn about edge computing and IoT, and how they enable real-time data processing and decision-making at the source.
3. What is ArgoCD?
- Discover ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes, and its role in deploying applications on edge devices.
4. Deployment Using ArgoCD for Edge Devices
- Step-by-step guide on deploying anomaly detection models on edge devices using ArgoCD.
5. Introduction to Apache Kafka and S3
- Explore Apache Kafka for real-time data streaming and Amazon S3 for scalable storage solutions.
6. Viewing Kafka Messages in the Data Lake
- Learn how to view and analyze Kafka messages stored in a data lake for better insights.
7. What is Prometheus?
- Get to know Prometheus, an open-source monitoring and alerting toolkit, and its application in monitoring edge devices.
8. Monitoring Application Metrics with Prometheus
- Detailed instructions on setting up Prometheus to monitor the performance and health of your anomaly detection system.
9. What is Camel K?
- Introduction to Camel K, a lightweight integration framework built on Apache Camel, designed for Kubernetes.
10. Configuring Camel K Integrations for Data Pipelines
- Learn how to configure Camel K for seamless data pipeline integrations in your anomaly detection workflow.
11. What is a Jupyter Notebook?
- Overview of Jupyter Notebooks, an open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
12. Jupyter Notebooks with Code Examples
- Hands-on examples and code snippets in Jupyter Notebooks to help you implement and test anomaly detection models.
"Scaling RAG Applications to serve millions of users", Kevin GoedeckeFwdays
How we managed to grow and scale a RAG application from zero to thousands of users in 7 months. Lessons from technical challenges around managing high load for LLMs, RAGs and Vector databases.
The Microsoft 365 Migration Tutorial For Beginner.pptxoperationspcvita
This presentation will help you understand the power of Microsoft 365. However, we have mentioned every productivity app included in Office 365. Additionally, we have suggested the migration situation related to Office 365 and how we can help you.
You can also read: https://www.systoolsgroup.com/updates/office-365-tenant-to-tenant-migration-step-by-step-complete-guide/
The Microsoft 365 Migration Tutorial For Beginner.pptx
Embedded systems development Defcon 19
1. Embedded System Design:
From Electronics
to Microkernel Development
Rodrigo Maximiano Antunes de Almeida
E-mail: rmaalmeida@gmail.com
Twitter: @rmaalmeida
Universidade Federal de Itajubá
2. Creative Commons License
The work ”Embedded System Design: From Electronics to Microkernel
Development” of Rodrigo Maximiano Antunes de Almeida was licensed
with Creative Commons 3.0 – Attribution – Non Commercial – Share Alike
license.
Additional permission can be given by the author through direct contact
using the e-mail: rmaalmeida@gmail.com
6. Schematics
● Way to represent
the components
and its connections
● Each component
has its own symbol
● Crossing wires only
are connected if
joined with a dot
8. System design
● Steps on a generic electronic system design
● Define the objective(s)
● Choose the main components needed to
achieve the objective
● Get the use example and recommendations
from component datasheet
● Build the schematics
● Simulation of HW elements
● Board layout
9. Datasheets
● The main source of information concerning
electronics
● Presents
● Electrical characteristics
● Simplified schematics
● Use example
● Opcodes/API
10. System design
● Objective
● Build digital voltage reader
● Main components
● Microcontroller
● LCD text display
● Potentiometer
23. Basic concepts
● HW configuration
● Some options must be set before the program
start
● This can only be accomplished by special
instructions
● Compiler datasheet
27. Basic concepts
● Build a pointer to a specific memory
address:
void main (void){
char *ptr;
//pointing to the port D
ptr = 0xF83;
//changing all outputs to high
*ptr = 0xFF;
}
28. //this is not an infinite loop!
while(PORTD==PORTD);
Basic concepts
● Building a header with all definitions
● __near = sfr region
● Volatile = can change without program
acknowledge
//BASIC.H
#define PORTD (*(volatile __near unsigned char*)0xF83)
#define TRISC (*(volatile __near unsigned char*)0xF94)
30. First program
● Open MPLABX IDE
● configure SDCC and PICkit
● Create a project to:
● Initialize LCD
● Print "He110 DEFC0N"
31. LCD communication
● The data is always an 8 bit information
● It may be split in two 4 bit "passes"
● The data may represent a character or a
command
● They are distinguished by RS pin
● The data must be stable for "some time"
● In this period the EN pin must be set
48. kernel_project(1);
● Kernel tasks:
1)Manage and coordinate the processes
execution using “some criteria”
2)Manage the free memory and coordinate the
processes access to it
3)Intermediate the communication between the
hardware drivers and the processes
50. kernel_project(1);
● Improve home design
● Reuse code more efficiently
● Full control over the source
● Specific tweeks to the kernel
● Faster context switch routine
● More control over driver issues (interrupts)
57. kernel_project(1);
● Our decisions:
● Microkernel
● Non-preemptive
● Cooperative
● No memory management
● Process scheduled based on timer
● Isolate drivers using a controller
60. concepts(2);
● Necessity:
● Make an image
editor that can
choose the right
function to call
●
1st
Implementation
● Use a option
parameter as a
switch operator
62. concepts(2);
● Function pointers
● Work almost as a normal pointer
● Hold the address of a function start point
instead the address of a variable
● The compiler need no known the function
signature to pass the correct parameters and
the return value.
● Awkard declaration (it is best to use a typedef)
63. concepts(2);
//defining the type pointerTest
//it is a pointer to function that:
// receives no parameter
// returns no parameter
typedef void (*pointerTest)(void);
//Function to be called
void nop (void){ __asm NOP __endasm }
//creating an pointerTest variable;
pointerTest foo;
foo = nop;
(*foo)(); //calling the function via pointer
66. concepts(2);
● Good
● New function
additions do not
alter the engine
● The engine only
needs to be tested
once
● Can change the
function
implementations
dynamically
● Bad
● More complex code
(function pointers
are not so easy to
work with)
● Not all compilers
support function
pointers
68. concepts(2);
// struct declaration
typedef struct{
unsigned short int age;
char name[51];
float weight;
}people;
● Structs are composed variables.
● Group lots of information as if they were one
single variable.
● A vector that each position stores a different
type
69. void main(void){
struct people myself = {26, "Rodrigo", 70.5};
myself.age = 27;
//using each variable from the struct
printf("Age: %dn", myself.age);
printf("Name: %sn", myself.name);
printf("Weight: %fn", myself.weight);
return 0;
}
concepts(2);
70. // struct declaration
typedef struct{
unsigned short int *age;
char *name[51];
float *weight;
}people;
void main(void){
struct people myself = {26, "Rodrigo", 70.5};
//using each variable from the struct
printf("Age: %dn", myself->age);
printf("Name: %sn", myself->name);
printf("Weight: %fn", myself->weight);
return 0;
}
concepts(2);
72. concepts(2);
● Circular Buffers
● “Endless” memory spaces
● Use FIFO aproach
● Store temporary data
● Can implemented using vectors or linked-lists
74. #define CB_SIZE 10
int circular_buffer[CB_SIZE];
int index=0;
for(;;){
//do anything with the buffer
circular_buffer[index] = index;
//increment the index
index = (index+1)%CB_SIZE;
}
concepts(2);
75. concepts(2);
#define CB_SIZE 10
int circular_buffer[CB_SIZE];
int start=0, end=0;
char AddBuff(int newData)
{
//check if there is space to add a number
if ( ((end+1)%CB_SIZE) != start)
{
circular_buffer[end] = newData;
end = (end+1)%CB_SIZE;
return SUCCESS;
}
return FAIL;
}
77. concepts(2);
In the majority part of embedded systems, we
need to guarantee that a function will be
executed in a certain frequency. Some
systems may even fail if these deadlines are
not met.
78. concepts(2);
● To implement temporal conditions:
1)There must be a tick event that occurs with a
precise frequency
2)The kernel must be informed of the execution
frequency needed for each process.
3)The sum of process duration must “fit” within
the processor available time.
79. concepts(2);
●
1st
condition:
● Needs an internal timer that can generate an
interrupt.
●
2nd
condition:
● Add the information for each process when
creating it
●
3rd
condition:
● Test, test and test.
● If fail, change chip first, optimize only on last
case
80. concepts(2);
● Scheduling processes:
● Using a finite timer to schedule will result in
overflow
● Example: scheduling 2 processes for 10 and 50
seconds ahead.
82. concepts(2);
● Question:
● From the timeline above (only the timeline) is
P2 late or it was scheduled to happen 55(s)
from now?
83. concepts(2);
● Solution:
● Use a downtime counter for each process
instead of setting a trigger time.
● Problem:
● Each counter must be decremented in the
interrupt subroutine.
● Is it a problem for your system?
85. concepts(2);
● Void pointers
● Abstraction that permits to the programmer to
pass parameters with different types to the
same function.
● The function which is receiving the parameter
must know how to deal with it
● It can not be used without proper casting!
86. concepts(2);
char *name = "Paulo";
double weight = 87.5;
unsigned int children = 3;
void main (void){
//its not printf, yet.
print(0, &name);
print(1, &weight);
print(2, &children);
}
87. concepts(2);
void print(int option; void *parameter){
switch(option){
case 0:
printf("%s",(char*)parameter);
break;
case 1:
printf("%f",*((double*)parameter));
break;
case 2:
printf("%d",*((unsigned int*)parameter));
break;
}
}
90. microkernel(3);
● The examples will use a minimum of
hardware or platform specific commands.
● Some actions (specifically the timer) needs
hardware access.
92. microkernel(3);
● In this first example we will build the main
part of our kernel.
● It should have a way to store which
functions are needed to be executed and in
which order.
● This will be done by a static vector of
pointers to function
//pointer function declaration
typedef void(*ptrFunc)(void);
//process pool
static ptrFunc pool[4];
93. microkernel(3);
● Each process is a function with the same
signature of ptrFunc
void tst1(void){
printf("Process 1n");
}
void tst2(void){
printf("Process 2n");
}
void tst3(void){
printf("Process 3n");
}
94. microkernel(3);
● The kernel itself consists of three functions:
● One to initialize all the internal variables
● One to add a new process
● One to execute the main kernel loop
//kernel internal variables
ptrFunc pool[4];
int end;
//kernel function's prototypes
void kernelInit(void);
void kernelAddProc(ptrFunc newFunc);
void kernelLoop(void);
100. microkernel(3);
● The only struct field is the function pointer.
Other fields will be added latter.
● The circular buffer open a new possibility:
● A process now can state if it wants to be
rescheduled or if it is a one-time run process
● In order to implement this every process must
return a code.
● This code also says if there was any error in the
process execution
102. microkernel(3);
char kernelInit(void){
start = 0;
end = 0;
return SUCCESS;
}
char kernelAddProc(process newProc){
//checking for free space
if ( ((end+1)%POOL_SIZE) != start){
pool[end] = newProc;
end = (end+1)%POOL_SIZE;
return SUCCESS;
}
return FAIL;
}
103. microkernel(3);
void kernelLoop(void){
int i=0;
for(;;){
//Do we have any process to execute?
if (start != end){
printf("Ite. %d, Slot. %d: ", i, start);
//check if there is need to reschedule
if ((*(pool[start].Func))() == REPEAT){
kernelAddProc(pool[start]);
}
//prepare to get the next process;
start = (start+1)%POOL_SIZE;
i++; // only for debug;
}
}
}
104. microkernel(3);
//vetor de struct
process pool[POOL_SIZE];
// pool[i]
// pool[i].func
// *(pool[i].func)
// (*(pool[i].func))()
//vetor de ponteiro de struct
process* pool[POOL_SIZE];
// pool[i]
// pool[i].func
// pool[i]->func
// pool[i]->func()
105. microkernel(3);
void kernelLoop(void){
int i=0;
for(;;){
//Do we have any process to execute?
if (start != end){
printf("Ite. %d, Slot. %d: ", i, start);
//check if there is need to reschedule
if (pool[start]->Func() == REPEAT){
kernelAddProc(pool[start]);
}
//prepare to get the next process;
start = (start+1)%POOL_SIZE;
i++; // only for debug;
}
}
}
107. microkernel(3);
void main(void){
//declaring the processes
process p1 = {tst1};
process p2 = {tst2};
process p3 = {tst3};
kernelInit();
//Test if the process was added successfully
if (kernelAddProc(p1) == SUCCESS){
printf("1st process addedn");}
if (kernelAddProc(p2) == SUCCESS){
printf("2nd process addedn");}
if (kernelAddProc(p3) == SUCCESS){
printf("3rd process addedn");}
kernelLoop();
}
108. microkernel(3);
Console Output:
---------------------------
1st process added
2nd process added
3rd process added
Ite. 0, Slot. 0: Process 1
Ite. 1, Slot. 1: Process 2
Ite. 2, Slot. 2: Process 3
Ite. 3, Slot. 3: Process 1
Ite. 4, Slot. 0: Process 3
Ite. 5, Slot. 1: Process 1
Ite. 6, Slot. 2: Process 3
Ite. 7, Slot. 3: Process 1
Ite. 8, Slot. 0: Process 3
...
---------------------------
● Notes:
● Only process 1
and 3 are
repeating
● The user don't
notice that the
pool is finite*
110. microkernel(3);
● The first modification is to add one counter
to each process
//process struct
typedef struct {
ptrFunc function;
int period;
int start;
} process;
111. microkernel(3);
● We must create an function that will run on
each timer interrupt updating the counters
void isr(void) interrupt 1{
unsigned char i;
i = ini;
while(i!=fim){
if((pool[i].start)>(MIN_INT)){
pool[i].start--;
}
i = (i+1)%SLOT_SIZE;
}
}
112. microkernel(3);
● The add process function will be the
responsible to initialize correctly the fields
char AddProc(process newProc){
//checking for free space
if ( ((end+1)%SLOT_SIZE) != start){
pool[end] = newProc;
//increment start timer with period
pool[end].start += newProc.period;
end = (end+1)%SLOT_SIZE;
return SUCCESS;
}
return FAIL;
}
113. microkernel(3);
if (start != end){
//Finding the process with the smallest start
j = (start+1)%SLOT_SIZE;
next = start;
while(j!=end){
if (pool[j].start < pool[next].start){
next = j;
}
j = (j+1)%SLOT_SIZE;
}
//exchanging positions in the pool
tempProc = pool[next];
pool[next] = pool[start];
pool[start] = tempProc;
while(pool[start].start>0){
}//great place to use low power mode
if ( (*(pool[ini].function))() == REPEAT ){
AddProc(&(vetProc[ini]));
}
ini = (ini+1)%SLOT_SIZE;
}
118. device_driver_controller(4);
● What is a driver?
● An interface layer that translate hardware to
software
● Device driver standardization
● Fundamental for dynamic drivers load
119. device_driver_controller(4);
● Parameters problem
● The kernel must be able to communicate in the
same way with all drivers
● Each function in each driver have different
types and quantities of parameters
● Solution
● Pointer to void
122. device_driver_controller(4);
● Device Driver Controller
● Used as an interface layer between the kernel
and the drivers
● Can “discover” all available drivers (statically or
dynamically)
● Store information about all loaded drivers
● Responsible to interpret the messages received
from the kernel
127. device_driver_controller(4);
● In order to simplify the design, each driver
build its function define enum.
● The controller builds a driver define enum
enum {
LCD_COMMAND, LCD_CHAR, LCD_INTEGER, LCD_END
};
enum {
DRV_INTERRUPT, DRV_TIMER, DRV_LCD, DRV_END
};
129. device_driver_controller(4);
● Interrupts are closely related to hardware
● Each architecture AND compiler pose a
different programming approach
● How to hide this from programmer?
//SDCC compiler way
void isr(void) interrupt 1{
thisInterrupt();
}
//C18 compiler way
void isr (void){
thisInterrupt();
}
#pragma code highvector=0x08
void highvector(void){
_asm goto isr _endasm
}
#pragma code
130. device_driver_controller(4);
//Inside drvInterrupt.c
//defining the pointer to use in ISR callback
typedef void (*intFunc)(void);
//store the pointer to ISR here
static intFunc thisInterrupt;
//Set interrupt function to be called
char setInterruptFunc(void *parameters) {
thisInterrupt = (intFunc) parameters;
return SUCESS;
}
131. device_driver_controller(4);
//Interrupt function set without knowing hard/compiler issues
void timerISR(void) {
callDriver(DRV_TIMER, TMR_RESET, 1000);
kernelClock();
}
void main (void){
kernelInit();
initDriver(DRV_TIMER);
initDriver(DRV_INTERRUPT);
callDriver(DRV_TIMER, TMR_START, 0);
callDriver(DRV_TIMER, TMR_INT_EN, 0);
callDriver(DRV_INTERRUPT, INT_TIMER_SET, (void*)timerISR);
callDriver(DRV_INTERRUPT, INT_ENABLE, 0);
kernelLoop();
}
135. device_driver_controller(4);
● Callback functions resemble events in high
level programming
● e.g.: When the mouse clicks in the button X,
please call function Y.
● The desired hardware must be able to rise
an interrupt
● Part of the work is done under interrupt
context, preferable the faster part
136. Generic Driver
Interrupt Driver
Setup ISR
callback
Interrupt Driver
Generic Driver
Call ISR
callback
Kernel
Add callback
Process
Kernel
Main Process
Execute process
Generic Driver
Request data
(callback passed)
Kernel
Callback
Process
Execute process
Main
Programflow
Interrupt
context
device_driver_controller(4);
137. device_driver_controller(4);
//********** Excerpt from drvAdc.c **********
// called from setup time to enable ADC interrupt
// and setup ADC ISR callback
char enableAdcInterrup(void* parameters){
callDriver(DRV_INTERRUPT,INT_ADC_SET,(void*)adcISR);
BitClr(PIR1,6);
return FIM_OK;
}
//********** Excerpt from drvInterrupt.c **********
// store the pointer to the interrupt function
typedef void (*intFunc)(void);
static intFunc adcInterrupt;
// function to set ADC ISR callback for latter use
char setAdcInt(void *parameters) {
adcInterrupt = (intFunc)parameters;
return FIM_OK;
}
138. device_driver_controller(4);
//********** Excerpt from main.c **********
// Process called by the kernel
char adc_func(void) {
//creating callback process
static process proc_adc_callback = {adc_callback, 0, 0};
callDriver(DRV_ADC,ADC_START,&proc_adc_callback);
return REPEAT;
}
//********** Excerpt from drvAdc.c **********
//function called by the process adc_func (via drv controller)
char startConversion(void* parameters){
callBack = parameters;
ADCON0 |= 0b00000010; //start conversion
return SUCCESS;
}
139. device_driver_controller(4);
//********** Excerpt from drvInterrupt.c **********
//interrupt function
void isr(void) interrupt 1 {
if (BitTst(INTCON, 2)) { //Timer overflow
}
if (BitTst(PIR1, 6)) { //ADC conversion finished
//calling ISR callback stored
adcInterrupt();
}
}
//********** Excerpt from drvAdc.c **********
//ADC ISR callback function
void adcISR(void){
value = ADRESH;
value <<= 8;
value += ADRESL;
BitClr(PIR1,6);
kernelAddProc(callBack);
}
140. device_driver_controller(4);
//********** Excerpt from main.c **********
//callback function started from the kernel
char adc_callback(void) {
unsigned int resp;
//getting the converted value
callDriver(DRV_ADC,ADC_LAST_VALUE,&resp);
//changing line and printing on LCD
callDriver(DRV_LCD,LCD_LINE,1);
callDriver(DRV_LCD,LCD_INTEGER,resp);
return SUCCESS;
}