1 |
Embedded Software Design for the Canadian Advanced Nanospace eXperiment Generic Nanosatellite BusDwyer, Mark 16 February 2010 (has links)
The Space Flight Lab (SFL) at the University of Toronto Institute for Aerospace Studies (UTIAS) has developed an ambitious satellite program called the Canadian Advanced Nanospace eXperiment (CanX). The newest generation of CanX missions are based on the Generic Nanosatellite Bus (GNB). This bus was designed to accommodate many missions using a single, common platform. Currently, there are three nanosatellite missions using the GNB design. These missions include AISSat-1, CanX-3 (BRITE) and CanX-4&5. This thesis describes the high level embedded software design for the on-board computer (OBC), as part of the generic nanosatellite bus. The software discussed includes the Universal Asynchronous Receiver/Transmitter (UART) Thread, Serial Communications Controller (SCC) Thread, Inter-Integrated Circuit (I2C) Thread, Serial Peripheral Interface (SPI) Thread, Communications Thread, Memory Management Thread, Power Thread, House Keeping Computer (HKC) Thread, AISSat-1 Payload Thread and the Time Tag Thread. In addition to the application threads mentioned above, the software design and validation of the On Board Computer (OBC) design for the AISSat-1 mission is also discussed.
|
2 |
Embedded Software Design for the Canadian Advanced Nanospace eXperiment Generic Nanosatellite BusDwyer, Mark 16 February 2010 (has links)
The Space Flight Lab (SFL) at the University of Toronto Institute for Aerospace Studies (UTIAS) has developed an ambitious satellite program called the Canadian Advanced Nanospace eXperiment (CanX). The newest generation of CanX missions are based on the Generic Nanosatellite Bus (GNB). This bus was designed to accommodate many missions using a single, common platform. Currently, there are three nanosatellite missions using the GNB design. These missions include AISSat-1, CanX-3 (BRITE) and CanX-4&5. This thesis describes the high level embedded software design for the on-board computer (OBC), as part of the generic nanosatellite bus. The software discussed includes the Universal Asynchronous Receiver/Transmitter (UART) Thread, Serial Communications Controller (SCC) Thread, Inter-Integrated Circuit (I2C) Thread, Serial Peripheral Interface (SPI) Thread, Communications Thread, Memory Management Thread, Power Thread, House Keeping Computer (HKC) Thread, AISSat-1 Payload Thread and the Time Tag Thread. In addition to the application threads mentioned above, the software design and validation of the On Board Computer (OBC) design for the AISSat-1 mission is also discussed.
|
3 |
Flexible and Migration Friendly Implementation of a Safety-Critical Automotive ApplicationSandahl, Anna January 2011 (has links)
This thesis presents a systematic and structured way to migrate embedded software running on a digital signal processor to a different hardware platform. The solution includes using design patterns, a layered architecture and clearly defined interfaces to perform hardware abstraction. The proposed solution is aimed for a particular embedded system used in a product at AI.
|
4 |
Testing and Security Related Considerations in Embedded SoftwarePierce, Luke 01 December 2016 (has links)
The continued increasing use of microprocessors in embedded systems has caused a proliferation of embedded software in small devices. In practice, many of these devices are difficult to update to fix security flaws and software errors. This brings an emphasis on ensuring the secure and reliable software prior to the release of the device to ensure the optimal user experience. With the growing need to enable test and diagnostic capabilities into embedded devices the use of the JTAG interface has grown. While the intentions of the interface was originally to give the ability to shift in data into and out of chip’s scan chains for test, the generic framework has allowed for its features to expand. For embedded microprocessor’s the interface allows for halting execution, insertion of instructions, reprogramming the software, and reading from memory. While it creates a powerful debugging system, it also allows unlimited access to a malicious users. In turn such a user has the ability to either copy the intellectual property on the device, disable digital rights management routines, or alter the devices behavior. A novel method to secure JTAG access through the use of a multi-tiered permission system is presented in this paper. The use of static code analysis can be used to verify the functionality of embedded software code. Ideally, a software code should be tested in a way that guarantees correct behavior across all possible execution paths. While in practices this is typically infeasible due to the innumerable number of paths in the system, the use of automated test systems can help maximize the amount of code covered. In addition, such methods can also identify non-executable software statements that can be an indication of software issues, or sections of software that should not be targeted for testing. New static code analysis methods are presented in this dissertation. One technique uses supersets of software solution spaces to correctly identify unreachable software code in complex systems. Another presented technique automatically generates a set of test vectors to quickly maximize the number of code blocks executed by the set of test vectors. It is shown that such a method can be significantly faster than traditional methods.
|
5 |
Software Synthesis of SystemC ModelsSirpatil, Brijesh 01 August 2002 (has links)
Technological advances are providing us with the capability to integrate more and more functionality into a single chip. This is leading to a new design paradigm, System On a Chip (SOC). In SOC designs all the functionality of a system is put inside a single chip, leading to increased performance, reduced power consumption, lower costs, and reduced size. SOC design brings with it new challenges and difficulties, however. The designs are now large, complicated and involve both software and hardware components. The designs have to be modeled at a high level of abstraction before partitioning into hardware and software components for final implementation.
SystemC is a system level modeling language useful for System On a Chip design. It provides various features to perform system level modeling and simulation, which are missing in the generic HDL's such as VHDL and Verilog. The hardware portion of the SystemC models can be synthesized into hardware using commercial tools . The software portion can be rewritten as embedded software for the target processor.
The aim of this thesis is to explore the SOC design process and to define methods for software synthesis of SystemC models. Software synthesis involves translation of SystemC models into code that is suitable for execution on an embedded processor. A simple scheduler that replaces the SystemC simulation kernel is proposed. This scheduler allows SystemC models to be executed directly as embedded software without the need for extensive modification or translation. Application of this process to the development of a GSM speech processing system, including the translation of part of the SystemC model into software that will execute on an embedded processor, is shown and the results are presented. / Master of Science
|
6 |
Translating Discrete Time SIMULINK to SIGNALMessaoud, Safa 02 July 2014 (has links)
As Cyber Physical Systems (CPS) are getting more complex and safety critical, Model Based Design (MBD), which consists of building formal models of a system in order to be used in verification and correct-by-construction code generation, is becoming a promising methodology for the development of the embedded software of such systems. This design paradigm significantly reduces the development cost and time while guaranteeing better robustness, capability and correctness with respect to the original specifications, when compared with the traditional ad-hoc design methods. SIMULINK has been the most popular tool for embedded control design in research as well as in industry, for the last decades. As SIMULINK does not have formal semantics, the application of the model based design methodology and tools to its models is very limited. In this thesis, we present a semantic translator that transform discrete time SIMULINK models into SIGNAL programs. The choice of SIGNAL is motivated by its polychronous formalism that enhances synchronous programming with asynchronous concurrency, as well as, by the ability of its compiler of generating deterministic multi thread code. Our translation involves three major steps: clock inference, type inference and hierarchical top-down translation. We validate the semantic preservation of our prototype tool by testing it on different SIMULINK models. / Master of Science
|
7 |
Metodologia de projeto de software embarcado voltada ao testeGomes, Humberto Vargas January 2010 (has links)
Devido ao crescente incremento de complexidade do software embarcado atual, dada a abundância de recursos disponíveis de hardware, está cada vez mais difícil manter a qualidade do software embarcado desenvolvido sem incorrer em aumentos de custo que inviabilizem o projeto. Com isto, o teste de software embarcado é atualmente uma importante área de pesquisa, onde são buscadas técnicas de teste que maximizem o número de falhas encontradas ainda em tempo de projeto e a um custo satisfatório. Muitas das soluções pesquisadas envolvem aspectos não apenas relativos ao teste propriamente dito, mas ao projeto do produto desde a sua concepção, daí a necessidade de metodologias conjuntas de desenvolvimento e teste. Neste trabalho, é apresentada uma metodologia de desenvolvimento e testes de software embarcado com o objetivo de permitir que grande parte da tarefa de desenvolvimento e teste seja executada em um ambiente de desenvolvimento de software de aplicação, sem a presença do hardware. Neste ambiente, o desenvolvimento é pensado desde o início do projeto visando à qualidade do teste, assim caracterizando esta metodologia como uma técnica DFT (do inglês design for testability). Na abordagem proposta, o hardware físico é substituído por modelos funcionais, construídos na mesma linguagem de programação do software em desenvolvimento. O uso destes modelos permite ao desenvolvedor a construção e aplicação de casos de teste capazes de exercitar o software embarcado tanto no ambiente de software de aplicação, quanto na plataforma alvo, sem alterações. Esta dissertação mostra a metodologia sendo aplicada ao software embarcado de um medidor eletrônico de energia, onde cinco modelos de dispositivos de hardware foram construídos, que permitiram a execução tanto de testes de unidade, quanto de testes de integração, em um ambiente de desenvolvimento de software de aplicação. Finalmente, uma análise de cobertura, realizada com o auxílio de uma ferramenta que, de outra forma, não seria compatível com o software da plataforma alvo, mostrou que a execução conjunta do software e dos modelos permite atingir a cobertura de quase a totalidade do software embarcado desenvolvido, onde os casos de teste foram capazes de verificar desde as camadas de software de aplicação até as camadas de software dependente do hardware. / Due to the growing increment of complexity of the current embedded software, given the abundance of hardware resources, it is becoming increasingly difficult to maintain the software quality without requiring high development and test costs that could make the project impracticable. In this context, embedded software testing is an important research area, where test techniques that maximize the number of errors detected during design time at a satisfactory cost have been investigated. Many of the proposed solutions involve aspects not related only to the testing itself, but to the product design since its conception, hence the need of methodologies for the development and test of software. In this work, we present a methodology of development and test of embedded software that allows the execution of most of the task of development and test in an application software development environment, without the physical hardware. In the application software environment, the development is thought, since the first stages, aiming the execution of the test, hence this methodology can be seen as a DFT (design for testability) technique. In the proposed approach, the physical hardware is replaced by functional models, constructed using the same programming language of the embedded software under development. The use of such models allows the developer to construct and apply test cases capable of exercising the embedded software both in the application software environment and in the target platform environment, without any change. In this work, the presented methodology is applied to the embedded software of an electronic energy meter, where five hardware device models were constructed, which enabled the execution of both unit and integration tests in the application software environment. Finally, the coverage analysis, performed with a software tool that otherwise would not be compatible with the target platform, showed that the simultaneous execution of the software and the models make it possible to achieve an almost complete coverage of the developed embedded software, where the test cases were able to verify the software from the application layers to the hardware dependent layers.
|
8 |
Metodologia de projeto de software embarcado voltada ao testeGomes, Humberto Vargas January 2010 (has links)
Devido ao crescente incremento de complexidade do software embarcado atual, dada a abundância de recursos disponíveis de hardware, está cada vez mais difícil manter a qualidade do software embarcado desenvolvido sem incorrer em aumentos de custo que inviabilizem o projeto. Com isto, o teste de software embarcado é atualmente uma importante área de pesquisa, onde são buscadas técnicas de teste que maximizem o número de falhas encontradas ainda em tempo de projeto e a um custo satisfatório. Muitas das soluções pesquisadas envolvem aspectos não apenas relativos ao teste propriamente dito, mas ao projeto do produto desde a sua concepção, daí a necessidade de metodologias conjuntas de desenvolvimento e teste. Neste trabalho, é apresentada uma metodologia de desenvolvimento e testes de software embarcado com o objetivo de permitir que grande parte da tarefa de desenvolvimento e teste seja executada em um ambiente de desenvolvimento de software de aplicação, sem a presença do hardware. Neste ambiente, o desenvolvimento é pensado desde o início do projeto visando à qualidade do teste, assim caracterizando esta metodologia como uma técnica DFT (do inglês design for testability). Na abordagem proposta, o hardware físico é substituído por modelos funcionais, construídos na mesma linguagem de programação do software em desenvolvimento. O uso destes modelos permite ao desenvolvedor a construção e aplicação de casos de teste capazes de exercitar o software embarcado tanto no ambiente de software de aplicação, quanto na plataforma alvo, sem alterações. Esta dissertação mostra a metodologia sendo aplicada ao software embarcado de um medidor eletrônico de energia, onde cinco modelos de dispositivos de hardware foram construídos, que permitiram a execução tanto de testes de unidade, quanto de testes de integração, em um ambiente de desenvolvimento de software de aplicação. Finalmente, uma análise de cobertura, realizada com o auxílio de uma ferramenta que, de outra forma, não seria compatível com o software da plataforma alvo, mostrou que a execução conjunta do software e dos modelos permite atingir a cobertura de quase a totalidade do software embarcado desenvolvido, onde os casos de teste foram capazes de verificar desde as camadas de software de aplicação até as camadas de software dependente do hardware. / Due to the growing increment of complexity of the current embedded software, given the abundance of hardware resources, it is becoming increasingly difficult to maintain the software quality without requiring high development and test costs that could make the project impracticable. In this context, embedded software testing is an important research area, where test techniques that maximize the number of errors detected during design time at a satisfactory cost have been investigated. Many of the proposed solutions involve aspects not related only to the testing itself, but to the product design since its conception, hence the need of methodologies for the development and test of software. In this work, we present a methodology of development and test of embedded software that allows the execution of most of the task of development and test in an application software development environment, without the physical hardware. In the application software environment, the development is thought, since the first stages, aiming the execution of the test, hence this methodology can be seen as a DFT (design for testability) technique. In the proposed approach, the physical hardware is replaced by functional models, constructed using the same programming language of the embedded software under development. The use of such models allows the developer to construct and apply test cases capable of exercising the embedded software both in the application software environment and in the target platform environment, without any change. In this work, the presented methodology is applied to the embedded software of an electronic energy meter, where five hardware device models were constructed, which enabled the execution of both unit and integration tests in the application software environment. Finally, the coverage analysis, performed with a software tool that otherwise would not be compatible with the target platform, showed that the simultaneous execution of the software and the models make it possible to achieve an almost complete coverage of the developed embedded software, where the test cases were able to verify the software from the application layers to the hardware dependent layers.
|
9 |
Metodologia de projeto de software embarcado voltada ao testeGomes, Humberto Vargas January 2010 (has links)
Devido ao crescente incremento de complexidade do software embarcado atual, dada a abundância de recursos disponíveis de hardware, está cada vez mais difícil manter a qualidade do software embarcado desenvolvido sem incorrer em aumentos de custo que inviabilizem o projeto. Com isto, o teste de software embarcado é atualmente uma importante área de pesquisa, onde são buscadas técnicas de teste que maximizem o número de falhas encontradas ainda em tempo de projeto e a um custo satisfatório. Muitas das soluções pesquisadas envolvem aspectos não apenas relativos ao teste propriamente dito, mas ao projeto do produto desde a sua concepção, daí a necessidade de metodologias conjuntas de desenvolvimento e teste. Neste trabalho, é apresentada uma metodologia de desenvolvimento e testes de software embarcado com o objetivo de permitir que grande parte da tarefa de desenvolvimento e teste seja executada em um ambiente de desenvolvimento de software de aplicação, sem a presença do hardware. Neste ambiente, o desenvolvimento é pensado desde o início do projeto visando à qualidade do teste, assim caracterizando esta metodologia como uma técnica DFT (do inglês design for testability). Na abordagem proposta, o hardware físico é substituído por modelos funcionais, construídos na mesma linguagem de programação do software em desenvolvimento. O uso destes modelos permite ao desenvolvedor a construção e aplicação de casos de teste capazes de exercitar o software embarcado tanto no ambiente de software de aplicação, quanto na plataforma alvo, sem alterações. Esta dissertação mostra a metodologia sendo aplicada ao software embarcado de um medidor eletrônico de energia, onde cinco modelos de dispositivos de hardware foram construídos, que permitiram a execução tanto de testes de unidade, quanto de testes de integração, em um ambiente de desenvolvimento de software de aplicação. Finalmente, uma análise de cobertura, realizada com o auxílio de uma ferramenta que, de outra forma, não seria compatível com o software da plataforma alvo, mostrou que a execução conjunta do software e dos modelos permite atingir a cobertura de quase a totalidade do software embarcado desenvolvido, onde os casos de teste foram capazes de verificar desde as camadas de software de aplicação até as camadas de software dependente do hardware. / Due to the growing increment of complexity of the current embedded software, given the abundance of hardware resources, it is becoming increasingly difficult to maintain the software quality without requiring high development and test costs that could make the project impracticable. In this context, embedded software testing is an important research area, where test techniques that maximize the number of errors detected during design time at a satisfactory cost have been investigated. Many of the proposed solutions involve aspects not related only to the testing itself, but to the product design since its conception, hence the need of methodologies for the development and test of software. In this work, we present a methodology of development and test of embedded software that allows the execution of most of the task of development and test in an application software development environment, without the physical hardware. In the application software environment, the development is thought, since the first stages, aiming the execution of the test, hence this methodology can be seen as a DFT (design for testability) technique. In the proposed approach, the physical hardware is replaced by functional models, constructed using the same programming language of the embedded software under development. The use of such models allows the developer to construct and apply test cases capable of exercising the embedded software both in the application software environment and in the target platform environment, without any change. In this work, the presented methodology is applied to the embedded software of an electronic energy meter, where five hardware device models were constructed, which enabled the execution of both unit and integration tests in the application software environment. Finally, the coverage analysis, performed with a software tool that otherwise would not be compatible with the target platform, showed that the simultaneous execution of the software and the models make it possible to achieve an almost complete coverage of the developed embedded software, where the test cases were able to verify the software from the application layers to the hardware dependent layers.
|
10 |
Strategies for embedded software development based on high-level models / Strategies for embedded software development based on high-level modelsBrisolara, Lisane Brisolara de January 2007 (has links)
Técnicas que partem de modelos de alto nível de abstração são requeridas para lidar com a complexidade encontrada nas novas gerações de sistemas embarcados, sendo cruciais para o sucesso do projeto. Uma grande redução do esforço pode ser obtida com o uso de modelos quando código em uma linguagem de programação pode ser gerado automaticamente a partir desses. Porém, ferramentas disponíveis para modelagem e geração de código normalmente são dependentes de domínio e o software embarcado normalmente possui comportamento heterogêneo, requerendo suporte a múltiplos modelos de computação. Nesta tese, estratégias para desenvolvimento de software embarcado baseado em modelos de alto nível usando UML e Simulink são analisadas. A partir desta análise, observaram-se as principais limitações das abordagens para geração de código baseadas em UML e Simulink. Esta tese, então, propõe estratégias para melhorar a automação provida por estas ferramentas, como por exemplo, propondo uma abordagem para geração de código multithread a partir de modelos Simulink. A comparação feita entre UML e Simulink mostra que, embora UML seja a linguagem mais usada no domínio de engenharia de software, UML é baseada em eventos e não é adequada para modelar sistemas dataflow. Por outro lado, Simulink é largamente usado por engenheiros de hardware e de controle, além de suportar dataflow e geração de código. Porém, Simulink provê abstrações de mais baixo nível, quando comparado a UML. Conclui-se que tanto UML como Simulink possuem prós e contras, o que motiva a integração de ambas linguagens em um único fluxo de projeto. Neste contexto, esta tese propõe também uma abordagem integradora para desenvolvimento de software embarcado que inicia com uma especificação de alto nível descrita usando diagramas UML, a partir da qual modelos dataflow e control-flow podem ser gerados. Desta maneira, o modelo UML pode ser usado como front-end para diferentes abordagens de geração de código, incluindo UML e a proposta geração de código multithread a partir de modelos Simulink. / The use of techniques starting from higher abstraction levels is required to cope with the complexity that is found in the new generations of embedded systems, being crucial to the design success. A large reduction of design effort when using models in the development can be achieved when there is a possibility to automatically generate code from them. Using these techniques, the designer specifies the system model using some abstraction and code in a programming language is generated from that. However, available tools for modeling and code generation are domain-specific and embedded software usually shows heterogeneous behavior, which pushes the need for supporting software automation under different models of computation. In this thesis, strategies for embedded software development based on high-level models using UML and Simulink were analyzed. We observed that the embedded software generation approaches based on UML and Simulink have limitations, and hence this thesis proposes strategies to improve the automation provided on those approaches, for example, proposing a Simulink-based multithread code generation. UML is a well used language in the software engineering domain, and we consider that it has several advantages. However, UML is event-based and not suitable to model dataflow systems. On the other side, Simulink is widely used by control and hardware engineers and supports dataflow, and time-continuous models. Moreover, tools are available to generate code from a Simulink model. However, Simulink models represent lower abstraction level compared to UML ones. This comparison shows that UML and Simulink have pros and cons, which motivates the integration of both languages in a single design process. As the main contribution, we propose in this thesis an integrated approach to embedded software design, which starts from a high-level specification using UML diagrams. Both dataflow and control-flow models can be generated from that. In this way, an UML model can be used as front-end for different code generation approaches, including UML-based one and the proposed Simulink-based multithread code generation.
|
Page generated in 0.0623 seconds