Visual Linker ARD presentation
slide 2 Background and Vision Problem Domain Stakeholders Functional Requirements Non Functional Requirements Use Cases Outline
slide 3 What is DSP? Who is Ceva? What is a Linker anyway? Background
slide 4 Background (cont.)
slide 5 What is SmartNcode? Why linking in DSP environment is difficult? What is linker script file? BackgroundBackground (cont.) SmartNcode™ Software Development Tools
slide 6 BackgroundBackground (cont.)
slide 7 The Visual Linker will be a plugin to the SmartNCode Integrated Development Environment (IDE). It will provide an easy, user friendly visual linking configuration tool. Visual Linker will ease the linker usage and reduce scripting mistakes thus minimize the time and effort one need to invest in the linking operation. Vision
slide 8 Problem Domain Source files (*.c) Assembly files (*.asm) Default Linker script file (*.lnk) Generated file (*.lnk) Object files and Libraries (*.o, *.lib) Executable file (*.a)
slide 9 Costumers Experts Users Stakeholders
slide 10 1) GUI engine for configuring linking script. 2) Real time mistakes checking and error detection Functional Requirements
slide 11 3) Real time script code generation 4) LNK files parsing mechanism which allow to load Manually created *.lnk files to visual linker. Functional Requirements
slide 12 5) Coff file parsing – sections and functions parsing 6) Undo and Redo operations Functional Requirements
slide 13 7) Support in CEVA-XC core linking scripts 8) Optionally – two way parsing (RT Script GUI support ) Functional Requirements
slide 14 Functional Requirements
slide 15 So, What is Visual Linker?
FileToolsViews Code DataUnified … … DesignScript Layouts Properties objects: libraries: classes: code: data: Code’ Properties: SectionsSize Sec1 Sec2 Sec3 Sec4 Sec5 Sec6 Sec7 Sec8 Sec9 Sec10 Sec11 Sec12 Sec13
FileToolsViews Code DataUnified … Class 1 Class 5 Class … Class 3 Class SectionsSize Sec1 Sec2 Sec3 Sec4 Sec5 Sec6 Sec7 Sec8 Sec9 Sec10 Sec11 Sec12 Sec13 DesignScript Layouts Properties objects: file1.o classes: class1 [c:0000,c:03ff] internal class5 [c:0400,c:06ff] internal class2 [c:2800,c:3fff] internal class3 [c:0000,c:03ff] external class4 [c:0400,c:06ff] external. Code’ Properties:
FileToolsViews Code DataUnified 0 3fff Class 1: Sec1 Sec2 Sec … Class 3 Class DesignScript Layouts Properties objects: file1.o classes: class1 [c:0000,c:03ff] internal class5 [c:0400,c:06ff] internal class2 [c:2800,c:3fff] internal class3 [c:0000,c:03ff] external class4 [c:0400,c:06ff] external. Class1: Start Address: 0x0000 End Address: 0x03ff Type: External Seg 0Seg 1 ….. Seg n SectionsSize Sec1 Sec2 Sec3 Sec4 Sec5 Sec6 Sec7 Sec8 Sec9 Sec10 Sec11 Sec12 Sec13
FileToolsViews Code DataUnified 0 3fff Sec1: function1 function2 function … Class 3 Class DesignScript Layouts Properties objects: file1.o classes: class1 [c:0000,c:03ff] internal class5 [c:0400,c:06ff] internal class2 [c:2800,c:3fff] internal class3 [c:0000,c:03ff] external class4 [c:0400,c:06ff] external. Sec 1’ Properties SectionsSize Sec1 Sec2 Sec3 Sec4 Sec5 Sec6 Sec7 Sec8 Sec9 Sec10 Sec11 Sec12 Sec13
slide 20 Performance constraints Speed Capacity Reliability Safety and security Portability Usability Non Functional requirements
slide 21 Design constraints Extensibility Maintainability Platform constraints Implementation Constraints C++ / Qt Non Functional requirements
slide 22 Use Cases
slide 23 Use Cases (cont.)
slide 24 Questions?
slide 25 THANK YOU!