This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Porting linux compiled code into IDE

Hello

I just installed IDE and trying to port existing code compiled at Linux ARMCC into IDE environment.  I followed the guideline in the armds_user_guide 2.4 Create a new Makefile project with existing code, and the below is error I have seen now..

/*

12:39:09 **** Build of configuration Default for project Sort_App ****
make all
del *.o *.txt *.log *.img *.dis
Could Not Find C:\ARM\DSWorkSpace\sort_app\sort_v8_mpcore.1uart\*.o
del *.axf *.bin
Could Not Find C:\ARM\DSWorkSpace\sort_app\sort_v8_mpcore.1uart\*.axf
armclang -c -g -O0 sorts.c -o sorts.o -target aarch64-arm-none-eabi -DSTANDALONE --tool_variant=ult -std=c90
process_begin: CreateProcess(NULL, armclang -c -g -O0 sorts.c -o sorts.o -target aarch64-arm-none-eabi -DSTANDALONE --tool_variant=ult -std=c90, ...) failed.
make (e=2): The system cannot find the file specified.

make: *** [Makefile:80: sorts.o] Error 2
"make all" terminated with exit code 2. Build might be incomplete.

12:39:09 Build Failed. 1 errors, 0 warnings. (took 180ms)

*/

The Makefile script looks as below. It was compiled well in Linux environment, and sample code provided by ARM:

/*

#############################################################################
CC=armclang
AS=armasm
LD=armlink
#AS=/engr/dev/tools/arm/DS-5/sw/ARMCompiler6.01u1/bin/armasm
#LD=/engr/dev/tools/arm/DS-5/sw/ARMCompiler6.01u1/bin/armlink
AR=armar
FE=fromelf

ifeq ($(OSTYPE),linux)
DEL = rm -rf
else
DEL = del
endif

#############################################################################
##
## Targets
##

all: cleanall sorts_v8.axf sorts_v8.dis trim

#############################################################################
# Auxillary Maintainence Targets.

clean:
$(DEL) *.o *.txt *.log *.img *.dis

cleanall: clean
$(DEL) *.axf *.bin

trim:
$(DEL) *.o

#############################################################################
# Object files from C and ASM code

uart.o: uart.c
# Compile for best debug view (lowest optimization)
$(CC) $(CFLAGS) -c -g -O0 -Os $^ -o $@ -target aarch64-arm-none-eabi --tool_variant=ult

retarget.o: retarget.c
# Compile for best debug view (lowest optimization)
$(CC) $(CFLAGS) -c -g -O0 -Os $^ -o $@ -target aarch64-arm-none-eabi -DSTANDALONE --tool_variant=ult

serial.o: serial.c
# Compile for best debug view (lowest optimization)
$(CC) $(CFLAGS) -c -g -O0 -Os $^ -o $@ -target aarch64-arm-none-eabi --tool_variant=ult

sorts.o: sorts.c
# Compile for best debug view (lowest optimization)
$(CC) $(CFLAGS) -c -g -O0 $^ -o $@ -target aarch64-arm-none-eabi -DSTANDALONE --tool_variant=ult -std=c90

*/

Would you like to help me where can I get the guidance about this...?

Thank you so much!!

  • Hello. Let me upload the code and ask again in a more detail. I am a real beginner of IDE(using temporal license ) and struggling a lot..

    The below CODE2 is makefile which was used, and when I import existing C-code into IDE and compile it, I see the below error:

    ERROR:

    21:04:08 **** Build of configuration Default for project Sort ****
    make all 
    del *.o *.txt *.log *.img *.dis
    del *.axf *.bin
    armclang  -c -g -O0 sorts.c -o sorts.o -target aarch64-arm-none-eabi -DSTANDALONE --tool_variant=ult -std=c90
    process_begin: CreateProcess(NULL, armclang -c -g -O0 sorts.c -o sorts.o -target aarch64-arm-none-eabi -DSTANDALONE --tool_variant=ult -std=c90, ...) failed.
    make (e=2): The system cannot find the file specified.
    
    make: *** [Makefile:80: sorts.o] Error 2
    "make all" terminated with exit code 2. Build might be incomplete.
    
    21:04:08 Build Failed. 1 errors, 0 warnings. (took 188ms)

    And then I found out that the IDE is not even find the armclang command.. In this case, how can I import existing C-code and makefile into ARM Development Studio..?

    CODE2:

    #############################################################################
    CC=armclang
    AS=armasm
    LD=armlink
    #AS=/engr/dev/tools/arm/DS-5/sw/ARMCompiler6.01u1/bin/armasm
    #LD=/engr/dev/tools/arm/DS-5/sw/ARMCompiler6.01u1/bin/armlink
    AR=armar
    FE=fromelf
    
    ifeq ($(OSTYPE),linux)
    DEL = rm -rf
    else
    DEL = del
    endif
    
    #############################################################################
    ##
    ## Targets
    ##
    
    all: cleanall sorts_v8.axf sorts_v8.dis trim
    
    #############################################################################
    # Auxillary Maintainence Targets.
    
    clean:
    	$(DEL) *.o *.txt *.log *.img *.dis
    
    cleanall: clean
    	$(DEL) *.axf *.bin
    
    trim:
    	$(DEL) *.o
    
    #############################################################################
    # Object files from C and ASM code
    
    uart.o: uart.c
    # Compile for best debug view (lowest optimization)
    	$(CC) $(CFLAGS) -c -g -O0 -Os $^ -o $@ -target aarch64-arm-none-eabi --tool_variant=ult
    
    retarget.o: retarget.c
    # Compile for best debug view (lowest optimization)
    	$(CC) $(CFLAGS) -c -g -O0 -Os $^ -o $@ -target aarch64-arm-none-eabi -DSTANDALONE --tool_variant=ult
    
    serial.o: serial.c
    # Compile for best debug view (lowest optimization)
    	$(CC) $(CFLAGS) -c -g -O0 -Os $^ -o $@ -target aarch64-arm-none-eabi --tool_variant=ult
    
    sorts.o: sorts.c
    # Compile for best debug view (lowest optimization)
    	$(CC) $(CFLAGS) -c -g -O0 $^ -o $@ -target aarch64-arm-none-eabi -DSTANDALONE --tool_variant=ult -std=c90
    
    startup.o: startup.s
    	$(AS) -g --cpu=8-A.64.no_neon startup.s --dwarf3 --tool_variant=ult
    
    MP_Mutexes.o: MP_Mutexes.s
    	$(AS) -g --cpu=8-A.64.no_neon MP_Mutexes.s --dwarf3 --tool_variant=ult
    
    ttb.o: ttb.s
    	$(AS) -g --cpu=8-A.64.no_neon ttb.s --dwarf3 --tool_variant=ult
    
    stackheap.o: stackheap.s
    	$(AS) -g --cpu=8-A.64.no_neon stackheap.s --dwarf3 --tool_variant=ult
    
    cpuUtils.o: cpuUtils.s
    	$(AS) -g --cpu=8-A.64.no_neon cpuUtils.s --dwarf3 --tool_variant=ult
    
    #############################################################################
    # Targets
    sorts_v8.axf: sorts.o retarget.o uart.o serial.o startup.o scatter.scat stackheap.o cpuUtils.o ttb.o  MP_Mutexes.o
    	$(LD) --scatter=scatter.scat sorts.o retarget.o uart.o serial.o startup.o stackheap.o cpuUtils.o ttb.o  MP_Mutexes.o -o sorts_v8.axf --cpu=8-A.64.no_neon --entry=StartHere --force-scanlib --diag_suppress=6412,6329 --tool_variant=ult
    
    #############################################################################
    # Disassembly files
    
    sorts_v8.dis: sorts_v8.axf
    	fromelf -cads --interleave=source sorts_v8.axf > sorts_v8.dis
    
    #############################################################################
    
    

  • Hi mongolee,

    It looks like you are using a very old version of the “sorts” example (based on Arm Compiler 6.01!).  The latest is Arm Compiler 6.14.

    Arm Development Studio includes many examples for the latest Arm Compiler 6, including more recent versions of the “sorts” example, for a wide range of Arm processors.

    Many of the examples include scatter files, and there are also some GCC equivalent versions of AC6 projects, that show the use of linker scripts.

    If you don’t already have the latest version 2020.0 of Arm Development Studio, then please feel free to download a free Evaluation version from developer.arm.com/.../evaluate

    To access these and import them into your workspace, select File > Import > Arm Development Studio > Examples and Programming Libraries, then enter “startup” in the search filter.

    As a starting point, import the two ready-made, fully-working examples for Armv8-A: “startup_Armv8-A_AArch64_AC6” and its GCC version called “startup_Armv8-A_AArch64_AC6".

    You can then compare and contrast the these two examples.  These are both “makefile”-based examples, that run of Fixed Virtual Platform (FVP) models included in Arm DS.

    Hope this helps

    Stephen

  • Thank you so much. I would really appreciate your kind answer!!