Dynamic Code Loading to a Bare-metal Embedded Target

Andrew Sadek, M. Elmahdy, Tarek ElDeeb
{"title":"Dynamic Code Loading to a Bare-metal Embedded Target","authors":"Andrew Sadek, M. Elmahdy, Tarek ElDeeb","doi":"10.1145/3220267.3220568","DOIUrl":null,"url":null,"abstract":"Dynamic Code loading at run-time is a challenging task in embedded systems. While dynamic linker feature is provided by many operating systems for ELF files such as Linux, bare metal embedded systems shall not depend on any OS support. Indeed, various researches have deployed Position Independent Code (PIC) approach instead of dynamic linking allowing the code to run regardless its memory location. The work presented here aims at providing an efficient methodology for run-time code loading of multiple applications to a bare metal embedded target. In the first place, the code is compiled in position-independent form then linked with base image at compile time. Correspondingly, the resulting program is considered as an add-on to the base image and sent to a specified section in the target memory. Furthermore, 'GCC' and 'Binutils' were customized to enhance the current implemented methodology of (PIC). This allows referencing data by offset from the start of text section instead of using Global Offset Table (GOT) hence making position independent code smaller and more efficient. After all, work-ow was implemented on an FPGA Board using Microblaze processor and tested with Dhrystone benchmark. Markedly, the results and performance analysis have proven better efficiency for the proposed work-ow.","PeriodicalId":177522,"journal":{"name":"International Conference on Software and Information Engineering","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2018-05-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"International Conference on Software and Information Engineering","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3220267.3220568","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

Dynamic Code loading at run-time is a challenging task in embedded systems. While dynamic linker feature is provided by many operating systems for ELF files such as Linux, bare metal embedded systems shall not depend on any OS support. Indeed, various researches have deployed Position Independent Code (PIC) approach instead of dynamic linking allowing the code to run regardless its memory location. The work presented here aims at providing an efficient methodology for run-time code loading of multiple applications to a bare metal embedded target. In the first place, the code is compiled in position-independent form then linked with base image at compile time. Correspondingly, the resulting program is considered as an add-on to the base image and sent to a specified section in the target memory. Furthermore, 'GCC' and 'Binutils' were customized to enhance the current implemented methodology of (PIC). This allows referencing data by offset from the start of text section instead of using Global Offset Table (GOT) hence making position independent code smaller and more efficient. After all, work-ow was implemented on an FPGA Board using Microblaze processor and tested with Dhrystone benchmark. Markedly, the results and performance analysis have proven better efficiency for the proposed work-ow.
动态代码加载到裸机嵌入目标
在嵌入式系统中,在运行时动态加载代码是一项具有挑战性的任务。虽然许多操作系统(如Linux)为ELF文件提供了动态链接器特性,但裸机嵌入式系统不应依赖于任何操作系统的支持。事实上,各种研究已经部署了位置无关代码(PIC)方法,而不是动态链接,允许代码运行,而不管其内存位置。这里介绍的工作旨在为将多个应用程序的运行时代码加载到裸机嵌入式目标提供一种有效的方法。首先,代码以位置无关的形式编译,然后在编译时与基本映像链接。相应地,生成的程序被视为基本映像的附加程序,并发送到目标内存中的指定部分。此外,对'GCC'和'Binutils'进行了定制,以增强当前实现的(PIC)方法。这允许通过从文本部分开始的偏移量来引用数据,而不是使用全局偏移表(GOT),从而使位置无关的代码更小,更高效。毕竟,工作流程是在使用Microblaze处理器的FPGA板上实现的,并使用Dhrystone基准测试。结果和性能分析表明,所提出的工作流程具有更好的效率。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信