www.ceva-dsp.com
Visual Linker
Finalpresentation
Visual Linker
slide 2
Background and Vision
Problem Domain
System Design
Challenges, Problems and Conclusions
So What Next?
Outline
slide 3
What is DSP?
Who is Ceva?
What is a Linker anyway?
Background
Source code• *.c, *.h
Compiler• *.asm
Assembler• *.o , *.lib
Linker• *.a - executable
slide 4
What is SmartNcode?
Why linking in DSP environment is difficult?
What is linker script file?
Background Background (cont.)
SmartNcode™Software Development Tools
slide 5
Background Background (cont.) ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; CEVA' s SmartNcode IDE generated Li nker scri pt fi l e. ; ; V9. 2, CEVA- XC. ; ; Copyri ght (C) CEVA Inc. Al l ri ghts reserved. ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
obj ects: Obj ect_fi l e1. o Obj ect_fi l e2. o l i brari es: l i brary1. l i b
l i brary2. l i b cl asses: myCodeInt [C: 1000 , 0x200 ] i nternal ; defi nes a cl ass i n i nternal code memory myDataExt [D: 20000, 0x1000] external ; defi nes a cl ass i n external data memory myUni fi ed [U: 50000, 0x5000] external ; defi nes a cl ass i n external uni fi ed memory code: segment 0 i nttbl cal l _saved_store_restore_sect l o . text l o ctor_sect data: segment 0 dummy_sect l o si ze 0x8 . data l o al i gn 0x8 const_data l o al i gn 0x8 ARG_SECT_END at next nol oad __MALLOC_SECT l o al i gn 0x8 nol oad si ze 0x4000 __STACK_SECT l o al i gn 0x8 si ze 0x4000 data_cl one l o al i gn 0x4 cl one . data const_data_cl one l o al i gn 0x4 cl one const_data
User Define Classes
Compiled Libraries Compiled user source files
Default Code class
Default Data class
Sections
Sections
Directives
Our Solution : Visual Linker
Our solution will give the user the tools to write her linking script visually. The user will be able to:
Create memory classes on a visualized memory layout drawing canvas.
Locate Code and Data section in the memory classes by simple drag and drop operations.
Configure the linker directives by editing sections and class properties.
load and generate linking script files
slide 7
Our Solution : Visual Linker (cont.)
slide 8
Problem Domain
slide 9
The Visual Linker will provide an easy, user friendly visual linking configuration tool.
The Visual Linker will ease the linker usage and reduce scripting mistakes.
The Visual Linker will minimize the time and effort one need to invest in the linking script writing.
Vision
slide 10
System Design
slide 11
Visual Linker, what?Lets have a look!
slide 12
Challenges, Problems and Conclusions
Challenges:
Re-implementing GUI views and models in Qt C++.|
Developing and implementing linker algorithms with multiple constrains.
Interfacing with Ceva-DSP IDE platform.
slide 13
Challenges, Problems and Conclusions
Problems:
Parsing post-complied files wasn’t enough – required additional processing.
Zoom-In and Zoom-Out support was complicated both algorithmically and visually.
The linker complexity was hard to grasp when implementing the linker script parser
slide 14
Challenges, Problems and Conclusions
Conclusions:
The project was much bigger than a standard project for two team members.
As a result, implementation for some features were suspended.
The core components of the initial design were successfully implemented.
slide 15
So What Next? Full integration with the (CEVA) Linker
Full directives and core types support
Delivering the visual linker to CEVA
Distributing the Visual linker to CEVA’s clients along side with the rest of the binary tools
slide 16
Questions?
slide 17
THANK YOU!