Тип работы:
Предмет:
Язык работы:


Разработка системы программирования гетерогенных архитектур с использованием LLVM

Работа №131227

Тип работы

Бакалаврская работа

Предмет

программирование

Объем работы27
Год сдачи2017
Стоимость4250 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
31
Не подходит работа?

Узнай цену на написание


Введение 4
1. Постановка задачи 6
2. Обзор 7
3. Архитектура системы 10
3.1. Связующая прошивка . . . . . . . . . . . . . . . . . . . . . 12
3.2. Модуль соединения . . . . . . . . . . . . . . . . . . . . . . 13
3.3. Менеджер памяти . . . . . . . . . . . . . . . . . . . . . . . 13
3.4. Модуль генерации кода
3.5. Библиотека поддержки DSL
4. Реализация 16
5. Апробация и анализ решения 22
Заключение 25
Список литературы

Многие современные киберфизические системы (например, роботы, системы управления ”умным домом”, ”интернет вещей”) имеют гетерогенные архитектуры, то есть включают в себя процессоры и микроконтроллеры различных аппаратных архитектур. Такие системы обычно включают в себя более мощный процессор, осуществляющий общее управление, и дополнительные вспомогательные процессоры или микроконтроллеры, часто включающие в себя такие компоненты, как АЦП, ШИМ-контроллер и выполняющие специальные функции, например, такие, как работа с датчиками, моторами, манипуляторами.
Типичными примерами конфигураций таких систем являются: STM32 discovery (периферийный микроконтроллер) + Odroid XU4 (управляющий), Arduino с Atmel AVR (периферийный) + Raspberry Pi (управляющий), MSP430 (периферийный) + OMAP-L138 (управляющий).
Традиционно каждый из компонентов такой гетерогенной системы программируется отдельно с использованием специфичных для платформы инструментов, программное обеспечение для него компилируется статически. Необходимость использования для каждого аппаратного компонента системы своих средств разработки (IDE и другие инструменты) и вести разработку в отдельных проектах усложняет процессы разработки и поддержки программного обеспечения.
Разработка дополнительно осложняется тем, что необходимо учитывать особенности работы каждого компонента. Например, вспомогательный микроконтроллер зачастую обладает малым количеством памяти и низкой вычислительной мощностью, поэтому для него часто
создают базовую прошивку, способную выполнять лишь простейшие действия: чтение значений подключенных датчиков и отправка их на управляющий процессор; запись значений в регистры устройств, инициируемая со стороны управляющего процессора. Такая организация имеет недостаток в виде постоянной передачи данных между компонентами системы, поскольку в базовой прошивке вспомогательного контроллера нет даже части логики алгоритма, который полностью исполняется управляющим процессором.
Контроллер TRIK [9], предназначенный для разработки киберфизических систем, имеет гетерогенную архитектуру. Он включает в себя управляющий процессор OMAP-L138 (архитектура ARM) и периферийный микроконтроллер msp430f5510.
В данной работе предлагается решение для программирования различных киберфизических гетерогенных систем, а также описывается его апробация на платформе TRIK.

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В рамках данной выпускной квалификационной работы были достигнуты следующие результаты.
1. Проведен обзор решений в области программирования гетерогенных систем.
2. Разработана архитектура системы программирования киберфизических гетерогенных архитектур на основе динамической генерации машинного кода с использованием LLVM.
3. Реализован прототип системы.
4. Проведена апробация разработанного прототипа системы на кибернетической платформе TRIK, также проведен анализ разработанного решения и его потенциального развития.
Результаты данной работы также были представлены на конференции SEIM 2017.


[1] Bjornson Joel, Tayanovskyy Anton, Granicz Adam. Composing
reactive GUIs in F# using WebSharper // Symposium on
Implementation and Application of Functional Languages /
Springer. –– 2010. –– P. 203–216.
[2] Brahma.FSharp. –– 2017. URL: https://sites.google.com/
site/semathsrprojects/home/brahma-fsharp/.
[3] Chaganti Prabhakar. Google Web Toolkit: GWT Java AJAX
Programming: a Practical Guide to Google Web Toolkit for Creating
AJAX Applications with Java. –– Packt Publishing Ltd, 2007.
[4] DSL implementation in MetaOCaml, Template Haskell, and C++ /
K. Czarnecki, J. O’Donnell, J. Striegnitz, W. Taha // Domain-Specific
Program Generation. –– Springer, 2004. –– P. 51–72. –– URL: http:
//www.springerlink.com/index/NL620EL7N94M161H.pdf.
[5] Lattner Chris, Adve Vikram. LLVM: A compilation framework
for lifelong program analysis & transformation // Proceedings of
the international symposium on Code generation and optimization:
feedback-directed and runtime optimization / IEEE Computer
Society. –– 2004. –– P. 75.
[6] N2O. –– 2012. –– [Online; accessed 19-март-2017]. URL: http://
synrc.com/apps/n2o/.
[7] Nvidia CUDA. Compute unified device architecture programming
guide. –– 2007.
[8] R. Brooks. A robust layered control system for a mobile robot // IEEE
J. Robot. Automat. 1986. Т. 2, № 1. –– 2004. –– P. 14–23.
[9] TRIK: project site. –– URL: http://www.trikset.com/index_
en.html.
26[10] The Top Programming Languages 2016. –– [Online; accessed 19-
март-2017]

Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ