I downloaded the DS-5 community to build my OS on ARM cpus but I don't have a free compiler for C so i downloaded the ARM c compiler 6 but can't work for no license . now what do i do ? i need help
Have you tried following the following tutorial?
https://developer.arm.com/products/software-development-tools/ds-5-development-studio/resources/tutorials/getting-started-with-ds-5-ce-and-armv8-foundation-platform
Linaro have open source compilers available for ARMv7 and ARMv8 based cores.
excuse me if i don't understand sir, is this compiler for linux or just for the ARM bare - metal cpus ? I dont want linux , i am creating my own OS project and i am developing on a windows environment with ds-5 .. thanks in advance
if you can tell me which compiler to download would be helpful !
i downloaded the compiler and linked it to project but when i build it say this ( aarch64-elf-gcc.exe: error: aem-ve.spec: No such file or directorymake: *** [makefile:32: OS.axf] Error 1)
Hi,
In addition to making the DS-5 Community Edition available, we work quite closely with Linaro to ensure that there are compilation tools available free of charge for developers such as yourself. You can download Linaro gcc compilers at https://www.linaro.org/.
Kind regards,
Elan
This looks like it's turning into a more detailed conversation than we have room for here! I've just sent you my e-mail address - drop me a note and we can discuss further.
Thanks,
Paul.
So since I posted a link to some instructions I thought I should check up and try to follow the instructions myself to make sure they are still valid. Well I found I got the same error that you did! Assuming you followed the instructions and added the tool chain to DS-5, the issue is most likely the fact that the file name in question is aem-ve.specs (note the 's' on the end!). It looks like we have a missing 's' on our website instructions.
Sorry for this error. But with this issue corrected I could then build correctly and an .axf file was generated.
Hope this fixes it for you - let me know.
Regards Tony
I have now also updated the website to correct this mistake.
You can supply GCC with a number of options to restrict it to a more "bare metal" environment.
the only thing that makes "arm-linux-gnueabihf" and "arm-none-eabi" different is the C library and default options.
if you're going extreme bare metal (and will implement C library stuff like printf and memcpy yourself) then you can do something like -nostdlib -nostdinc to prevent searching for the default (for Linux compilers this is usually glibc and you don't want that).
when a compiler is 'hf' by default you can override it with -mfloat-abi=soft or -mfloat-abi=softfp and -mfpu and -march/cpu.
so, you can use a Linux compiler just fine. Just recall that Linux itself - the kernel - doesn't want to use the userspace C libraries or headers and has specific requirements but you still build it with the userspace compiler.