543 resultados para Linux embebido
Resumo:
This project is divided into two main parts: The first part shows the integration of an Embedded Linux operating system on a development hardware platform named Zedboard. This platform contains a Zynq-7000 System on Chip (Soc) which is composed by two dual core ARM Cortex-A9 processors and a FPGA Artix-7. The Embedded Linux is built with Linuxlink, a Timesys tool. Meanwhile, the platform hardware configuration is done with Xilinx Vivado. The system is loaded with an SD card which requires to have every files needed for the booting process and for the operation. Some of these files are generated with Xilinx SDK software. The second part starts up from the system already built to integrate a peripheral in the Zynq-7000 FPGA. Also the drivers for controlling the peripheral from the operating system are developed. Finally, a user space program is created to test both of them. RESUMEN. Este proyecto consta de dos partes: La primera muestra la integración de un sistema operativo Linux embebido en una plataforma de desarrollo hardware llamada Zedboard. Esta plataforma utiliza un System on Chip (SoC) Zynq-7000 que está formado por dos procesadores ARM Cortex-A9 de doble núcleo y una FPGA Artix-7. El Linux embebido se construye utilizando la herramienta Linuxlink de Timesys, mientras que el hardware de la plataforma de desarrollo se configura con Vivado de Xilinx. El sistema se carga en una tarjeta SD que debe tener todos los archivos necesarios para completar el arranque y hacer funcionar el sistema. Algunos de esos archivos se generan con la herramienta SDK de Xilinx. En la segunda parte se utiliza el sistema construido para integrar un periférico en la FPGA del Zynq-7000, haciendo uso de Vivado, y se desarrollan los drivers necesarios para utilizarlo mediante el sistema operativo. Para probar esta última parte se desarrolla un programa de espacio de usuario.
Resumo:
El projecte que es presenta permet analitzar els avantatges i inconvenients d’una programació orientada a hardware i d’una programació orientada a software a partir del desenvolupament de dos dissenys, un cronòmetre i un freqüencímetre en cadascun dels modes de programació. Donat que en les dues aplicacions es requereix alta precisió de temps (μs) i flexibilitat en el control, la solució final que es proposa és un disseny “mixt” amb dos mòduls hardware específics (cronòmetre i freqüencímetre) integrats en un NIOS/CPU sobre una FPGA. Els dos mòduls es controlen per software sobre un sistema Linux empotrat (μCLinux).
Resumo:
The project presented, iCognos, consists of a flexible platform to assist end-users in performing a series of mental tasks with a sensitized mobile telerobotic platform aimed at mitigating the problems associated to cognitive disorders with an ecological cognition approach.
Resumo:
Trabalho de Projeto para obtenção do grau de Mestre em Engenharia Informática e de Computadores
Resumo:
A presente dissertação visa retratar a exploração do suporte do protocolo Internet versão seis (IPv6) no kernel do Linux, conjuntamente com a análise detalhada do estado da implementação dos diferentes aspectos em que se baseia o protocolo. O estudo incide na experimentação do funcionamento em geral do stack, a identificação de inconsistências deste em relação aos RFC’s respectivos, bem como a simulação laboratorial de cenários que reproduzam casos de utilização de cada uma das facilidades analisadas. O objectivo desta dissertação não é explicar o funcionamento do novo protocolo IPv6, mas antes, centrar-se essencialmente na exploração do IPv6 no kernel do Linux. Não é um documento para leigos em IPv6, no entanto, optou-se por desenvolver uma parte inicial onde é abordado o essencial do protocolo: a sua evolução até à aprovação e a sua especificação. Com base no estudo realizado, explora-se o suporte do IPv6 no Kernel do Linux, fazendo uma análise detalhada do estado de implementação dos diferentes aspectos em que se baseia o protocolo. Bem como a realização de testes de conformidade IPv6 em relação aos RFC’s.
Resumo:
This paper proposes a global multiprocessor scheduling algorithm for the Linux kernel that combines the global EDF scheduler with a priority-aware work-stealing load balancing scheme, enabling parallel real-time tasks to be executed on more than one processor at a given time instant. We state that some priority inversion may actually be acceptable, provided it helps reduce contention, communication, synchronisation and coordination between parallel threads, while still guaranteeing the expected system’s predictability. Experimental results demonstrate the low scheduling overhead of the proposed approach comparatively to an existing real-time deadline-oriented scheduling class for the Linux kernel.
Resumo:
The mainline Linux Kernel is not designed forhard real-time systems; it only fits the requirements of soft realtimesystems. In recent years, a kernel developer communityhas been working on the PREEMPT-RT patch. This patch(that aims to get a fully preemptible kernel) adds some realtimecapabilities to the Linux kernel. However, in terms ofscheduling policies, the real-time scheduling class of Linux islimited to the First-In-First-Out (SCHED_FIFO) and Round-Robin (SCHED_RR) scheduling policies. These scheduling policiesare however quite limited in terms of realtime performance.Therefore, in this paper, we report one importantcontribution for adding more advanced real-time capabilitiesto the Linux Kernel. Specifically, we describe modificationsto the (PREEMPT-RT patched) Linux kernel to supportreal-time slot-based task-splitting scheduling algorithms. Ourpreliminary evaluation shows that our implementation exhibitsa real-time performance that is superior to the schedulingpolicies provided by the current version of PREMPT-RT. Thisis a significant add-on to a widely adopted operating system.
Resumo:
The advent of multicore systems has renewed the interest of research community on real-time scheduling on multiprocessor systems. Real-time scheduling theory for uniprocessors is considered a mature research field, but real-time scheduling theory for multiprocessors is an emerging research field. Being part of this research community I have decided to implement the Sporadic Multiprocessor Linux Scheduler that implements a new real-time scheduling algorithm, which was designed to schedule real-time sporadic tasks on multiprocessor systems. This technical reports describes the implementation of the SMLS.
Resumo:
With the current complexity of communication protocols, implementing its layers totally in the kernel of the operating system is too cumbersome, and it does not allow use of the capabilities only available in user space processes. However, building protocols as user space processes must not impair the responsiveness of the communication. Therefore, in this paper we present a layer of a communication protocol, which, due to its complexity, was implemented in a user space process. Lower layers of the protocol are, for responsiveness issues, implemented in the kernel. This protocol was developed to support large-scale power-line communication (PLC) with timing requirements.
Resumo:
A reparação de estruturas é um tema de primordial importância, por forma a evitar a sua substituição após a existência de dano, na medida em que permite uma redução substancial de custos associados. Entre os métodos mais comuns de reparação encontram-se a aplicação de remendos aparafusados ou as reparações adesivas. Estas últimas permitem uma diminuição das concentrações de tensões e uma aplicação mais simples, entre outras vantagens. O objetivo do tema de mestrado proposto é o estudo experimental e numérico de reparações adesivas para estruturas de alumínio pela técnica do remendo embebido. A parte experimental do trabalho consiste na fabricação e teste à tração de reparações em escala reduzida em função de alguns parâmetros pré-definidos como o ângulo das superfícies de contacto e o adesivo a utilizar, no sentido de otimização das respetivas reparações. O trabalho numérico consiste na simulação em software de Elementos Finitos ABAQUS® das várias soluções testadas, para avaliação da distribuição de campos de tensões e previsão da rotura das reparações por remendo embebido. No global, observou-se uma elevada correlação entre os resultados experimentais e as previsões numéricas, o que valida a ferramenta numérica utilizada para efeitos de previsão da rotura para reparações de remendo embebido e a utilização do mesmo para a escolha do melhor ângulo a utilizar em função da restituição de resistência pretendida.
Resumo:
As ligações adesivas têm sido utilizadas em áreas como a indústria aeroespacial, aeronáutica, de defesa, automóvel, da construção civil e das madeiras. As juntas adesivas têm vindo a substituir métodos como a soldadura, e ligações parafusadas e rebitadas, devido à facilidade de fabricação, maiores cadências de produção, menores custos, facilidade em unir materiais diferentes, melhor resistência à fadiga, entre outras razões. Como tal, também se utilizam reparações adesivas para restituição da resistência de estruturas danificadas, cujas técnicas mais comuns são a sobreposição simples, sobreposição dupla e remendo embebido. As reparações por remendo embebido, que são as mais eficientes, consistem na realização de um furo cónico na zona danificada e colagem de um remendo com a forma complementar do furo, de tal forma que não é alterada a forma inicial do componente. Neste trabalho pretende-se estudar experimental e numericamente reparações adesivas por remendo embebido, nomeadamente o efeito da utilização de reforços exteriores (em um ou nos dois lados da estrutura), para diferentes ângulos de inclinação. Foi considerado um adesivo dúctil (Araldite® 2015) e outro frágil (Araldite® AV138), o que permitiu abranger processos de rotura bastante distintos. O estudo experimental é acompanhado por outro numérico no software ABAQUS®, usando modelos coesivos para a previsão numérica da resistência das reparações. O trabalho numérico permitiu o estudo das distribuições de tensões, o que possibilitou a análise detalhada dos resultados obtidos. Foi também realizado um estudo numérico de otimização das reparações por alteração da espessura dos reforços e utilização de chanfro nas extremidades dos mesmos. Nos resultados obtidos, constatou-se a adequabilidade do método numérico na previsão fiável da resistência, e também que a utilização dos reforços aumenta consideravelmente o rendimento das reparações (até 530 % e 340 % para os adesivos Araldite® 2015 e AV138, respetivamente), o que poderá justificar a sua utilização em aplicações industriais em que a perturbação aerodinâmica causada por esta alteração não seja relevante.
Resumo:
A monitorização da qualidade da energia eléctrica tem revelado importância crescente na gestão e caracterização da rede eléctrica. Estudos revelam que os custos directos relacionados com perda de qualidade da energia eléctrica podem representar cerca de 1,5 % do PIB nacional. Para além destes, tem-se adicionalmente os custos indirectos o que se traduz num problema que necessita de minimização. No contexto da minimização dos danos causados pela degradação de energia, são utilizados equipamentos com capacidade de caracterizar a energia eléctrica através da sua monitorização. A utilização destes equipamentos têm subjacente normas de qualidade de energia, que impõem requisitos mínimos de modo a enquadrar e classificar eventos ocorridos na rede eléctrica. Deste modo obtêm-se dados coerentes provenientes de diferentes equipamentos. A monitorização dos parâmetros associados à energia eléctrica é frequentemente realizada através da instalação temporária dos esquipamentos na rede eléctrica, o que resulta numa observação de distúrbios a posteriori da sua ocasião. Esta metodologia não permite detectar o evento eléctrico original mas, quando muito, outros que se espera que sejam semelhantes ao ocorrido. Repare-se, no entanto, que existe um conjunto alargado de eventos que não são repetitivos, constituindo assim uma limitação aquela metodologia. Este trabalho descreve uma alternativa à metodologia de utilização tradicional dos equipamentos. A solução consiste em realizar um analisador de energia que faça parte integrante da instalação e permita a monitorização contínua da rede eléctrica. Este equipamento deve ter um custo suficientemente baixo para que seja justificável nesta utilização alternativa. O analisador de qualidade de energia a desenvolver tem por base o circuito integrado ADE7880, que permite obter um conjunto de parâmetros da qualidade de energia eléctrica de acordo com as normas de energia IEC 61000-4-30 e IEC 61000-4-7. Este analisador permite a recolha contínua de dados específicos da rede eléctrica, e que posteriormente serão armazenados e colocados à disposição do utilizador. Deste modo os dados recolhidos serão apresentados ao utilizador para consulta, de maneira a verificar, de modo continuo a eventual ocorrência das anomalias na rede. Os valores adquiridos podem ainda ser reutilizados vantajosamente para muitas outras finalidades tais como efectuar estudos sobre a optimização energética. O trabalho presentemente desenvolvido decorre de uma utilização alternativa do dispositivo WeSense Energy1 desenvolvido pela equipa da Evoleo Technologies. A presente vertente permite obter parâmetros determinados pelo ADE7880 tais como por exemplo harmónicos, eventos transitórios de tensão e corrente e o desfasamento entre fases, realizando assim uma nova versão do dispositivo, o WeSense Energy2. Adicionalmente este trabalho inclui a visualização remota dos através de uma página web.
Resumo:
Face à estagnação da tecnologia uniprocessador registada na passada década, aos principais fabricantes de microprocessadores encontraram na tecnologia multi-core a resposta `as crescentes necessidades de processamento do mercado. Durante anos, os desenvolvedores de software viram as suas aplicações acompanhar os ganhos de performance conferidos por cada nova geração de processadores sequenciais, mas `a medida que a capacidade de processamento escala em função do número de processadores, a computação sequencial tem de ser decomposta em várias partes concorrentes que possam executar em paralelo, para que possam utilizar as unidades de processamento adicionais e completar mais rapidamente. A programação paralela implica um paradigma completamente distinto da programação sequencial. Ao contrário dos computadores sequenciais tipificados no modelo de Von Neumann, a heterogeneidade de arquiteturas paralelas requer modelos de programação paralela que abstraiam os programadores dos detalhes da arquitectura e simplifiquem o desenvolvimento de aplicações concorrentes. Os modelos de programação paralela mais populares incitam os programadores a identificar instruções concorrentes na sua lógica de programação, e a especificá-las sob a forma de tarefas que possam ser atribuídas a processadores distintos para executarem em simultâneo. Estas tarefas são tipicamente lançadas durante a execução, e atribuídas aos processadores pelo motor de execução subjacente. Como os requisitos de processamento costumam ser variáveis, e não são conhecidos a priori, o mapeamento de tarefas para processadores tem de ser determinado dinamicamente, em resposta a alterações imprevisíveis dos requisitos de execução. `A medida que o volume da computação cresce, torna-se cada vez menos viável garantir as suas restrições temporais em plataformas uniprocessador. Enquanto os sistemas de tempo real se começam a adaptar ao paradigma de computação paralela, há uma crescente aposta em integrar execuções de tempo real com aplicações interativas no mesmo hardware, num mundo em que a tecnologia se torna cada vez mais pequena, leve, ubíqua, e portável. Esta integração requer soluções de escalonamento que simultaneamente garantam os requisitos temporais das tarefas de tempo real e mantenham um nível aceitável de QoS para as restantes execuções. Para tal, torna-se imperativo que as aplicações de tempo real paralelizem, de forma a minimizar os seus tempos de resposta e maximizar a utilização dos recursos de processamento. Isto introduz uma nova dimensão ao problema do escalonamento, que tem de responder de forma correcta a novos requisitos de execução imprevisíveis e rapidamente conjeturar o mapeamento de tarefas que melhor beneficie os critérios de performance do sistema. A técnica de escalonamento baseado em servidores permite reservar uma fração da capacidade de processamento para a execução de tarefas de tempo real, e assegurar que os efeitos de latência na sua execução não afectam as reservas estipuladas para outras execuções. No caso de tarefas escalonadas pelo tempo de execução máximo, ou tarefas com tempos de execução variáveis, torna-se provável que a largura de banda estipulada não seja consumida por completo. Para melhorar a utilização do sistema, os algoritmos de partilha de largura de banda (capacity-sharing) doam a capacidade não utilizada para a execução de outras tarefas, mantendo as garantias de isolamento entre servidores. Com eficiência comprovada em termos de espaço, tempo, e comunicação, o mecanismo de work-stealing tem vindo a ganhar popularidade como metodologia para o escalonamento de tarefas com paralelismo dinâmico e irregular. O algoritmo p-CSWS combina escalonamento baseado em servidores com capacity-sharing e work-stealing para cobrir as necessidades de escalonamento dos sistemas abertos de tempo real. Enquanto o escalonamento em servidores permite partilhar os recursos de processamento sem interferências a nível dos atrasos, uma nova política de work-stealing que opera sobre o mecanismo de capacity-sharing aplica uma exploração de paralelismo que melhora os tempos de resposta das aplicações e melhora a utilização do sistema. Esta tese propõe uma implementação do algoritmo p-CSWS para o Linux. Em concordância com a estrutura modular do escalonador do Linux, ´e definida uma nova classe de escalonamento que visa avaliar a aplicabilidade da heurística p-CSWS em circunstâncias reais. Ultrapassados os obstáculos intrínsecos `a programação da kernel do Linux, os extensos testes experimentais provam que o p-CSWS ´e mais do que um conceito teórico atrativo, e que a exploração heurística de paralelismo proposta pelo algoritmo beneficia os tempos de resposta das aplicações de tempo real, bem como a performance e eficiência da plataforma multiprocessador.
Resumo:
Tese de Doutoramento em Engenharia Eletrónica e Computadores.
Resumo:
An appropriate assessment of end-to-end network performance presumes highly efficient time tracking and measurement with precise time control of the stopping and resuming of program operation. In this paper, a novel approach to solving the problems of highly efficient and precise time measurements on PC-platforms and on ARM-architectures is proposed. A new unified High Performance Timer and a corresponding software library offer a unified interface to the known time counters and automatically identify the fastest and most reliable time source, available in the user space of a computing system. The research is focused on developing an approach of unified time acquisition from the PC hardware and accordingly substituting the common way of getting the time value through Linux system calls. The presented approach provides a much faster means of obtaining the time values with a nanosecond precision than by using conventional means. Moreover, it is capable of handling the sequential time value, precise sleep functions and process resuming. This ability means the reduction of wasting computer resources during the execution of a sleeping process from 100% (busy-wait) to 1-1.5%, whereas the benefits of very accurate process resuming times on long waits are maintained.