Intel® SoC FPGA Embedded Development Suite
Support for SoC FPGA Software Development, SoC FPGA HPS Architecture, HPS SoC Boot and Configuration, Operating Systems

Error using arm-eabi to make

CAlex
New Contributor II
862 Views

Hi

I'm using CycloneVsoc Dev Kit with QSPI boot.

I've made a spl and the application image to boot.

 

I found that the SPL can't find my application.

So I tried another HelloWorld image.

It works well.

 

When I checked the objdump I found the format of the axf files are different.

Here is the HelloWorld objdump:

 

CAlex_0-1732788742172.png

using arm-none-eabi tool chain

 

And here is my project:

CAlex_1-1732788819596.png

using arm-eabi tool chain <downloaded with the SOC EDS>

I also made a Timer Example, the format is the same as the HelloWorld one.

 

I use the same linker file and the same flags, I don't know why it is different.

Could you help me for that?

I attached the Makefile I made and the source code.You may need to delete the gpio led part of the code.

 

Best Wish

Alex

 

 

 

Labels (1)
0 Kudos
4 Replies
khtan
Employee
705 Views

Hi Alex,

Sorry for the late reply as I'm currently out for training for almost the entire week and thanks for using Altera forum.

 

Could you upload the attachment again? I could only see the screenshots on the objdump though.

Just a question, if you tried rebuilding the Hello World example using  arm-eabi tool chain , does it work? When you mentioned "So I tried another HelloWorld image." is it a pre-build one that you just use to boot?

 

Thanks

Regards

Kian

0 Kudos
CAlex
New Contributor II
697 Views

Hi @khtan

It seems the last upload was failed due to the connection. I found it would be not easy to upload again.

About the question:

The other HelloWorld.img is a prebuild image using arm-none-eabi toolchain. The difference of section names was made by this.

Also, I've tried build HWlib example timer with arm-eabi toolchain. The format is normal as well. The vector table was at 0x00100040.

So, I suspect that my Makefile was made incorrectly.

By solving this, I just point to the different entry by mkimage -e <vector address in the objdump, in this case 0x00100068> -a 0x00100040.

After that I changed my Makefile for my project.

Could you give me a quick assumption of why it would happen? My linaro toolchain was downloaded with SOC EDS std 20.1

If you couldn't, please do whatever you need to this thread.

 

Thank you for your help

Regards

Alex

0 Kudos
khtan
Employee
638 Views

Hi Alex,

On the differences arm-none-eabi toolchain and arm-eabi toolchain, probably can find the explanation here(arm-eabi toolchain), one have c library , one is without depending on usage but it should not impact the memory address.

Was discussing this with my colleague and he mentioned that there should be a linker file in your project that contains the memory address for your app, by default it should be already 0x00100040

 

In the makefile there is this linker script that point to the linker file which contains the memory address

example:

khtan_0-1733901985066.png

 

https://github.com/altera-opensource/intel-socfpga-hwlib/blob/master/armv7a/hwlib/src/linkerscripts/cvav-ddr.ld#L10C7-L10C17

khtan_1-1733902088867.png

 

Probably can check the makefile to see what is the address it is using.

 

By the way, glad that you manage to found a workaround to the issue on the address.

Thanks

Regards

Kian

 

0 Kudos
khtan
Employee
597 Views

Hi Alex,

 

As we do not receive any response from you on the previous reply that we have provided and you already have a working workaround solution, I will transition this thread to community support. Please login to ‘https://supporttickets.intel.com/s/?language=en_US’, view details of the desire request, and post a feed/response within the next 15 days to allow me to continue to support you. After 15 days, this thread will be transitioned to community support. The community users will be able to help you on your follow-up questions.

 

Thanks

Kian

0 Kudos
Reply