Difference between revisions of "Compiler"

From NaplesPU Documentation
Jump to: navigation, search
(Replaced content with "not more needed")
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<strong>This is the main nu+ compiler documentation page</strong>
+
not more needed
 
 
== How to compile a kernel for the NuPlus architecture ==
 
Some kernels are provided with the standard release of the NuPlus toolchain. We provide makefile to compile these kernels for NuPlus. In case you want to add a new kernel, it is suggested to copy a kernel folder and replace C/CPP files with your own source code. Then, remember to modify the makefile updating the SRCS variable with the current main C/CPP filename. When using these makefiles, different tools are called:
 
* Clang to emit the LLVM IR and the object files
 
* LLD/MCLINKER to handle the job of linking
 
* elf2hex to generate the HEX file from the ELF file
 
* llvm-objdump to generate the dump from the elf file
 
In order to change the optimization level of the compiler or any other flag, it is possible to modify the /misc/NuPlus.mk file.
 
 
 
== Backend for a custom target architecture ==
 
Adding a new target architecture, i.e. nu+, to llvm requires four steps:
 
* [[Backend|write all backend files and place them into the lib/Target/NuPlus folder]]
 
* [[Frontend|modify the Clang frontend]]
 
* [[How to add a new backend to llvm|register and add the new backend to llvm]]
 
* [[Tools|modify and/or add all the external tools that are used by llvm, i.e. linker, disassembler, etc..]]
 

Latest revision as of 19:26, 25 May 2018

not more needed