Hi,
I am planning to execute few neon add instructions using startup_Cortex-R52 example project. I have created assembly file with neon instructions and added it to project. I have modified the target settings to use -march "armv8-r", mfpu to "neon" and float-abi to "Hardware(Software FPO Linkage)".
Is there any startup code that I need to add for enabling neon extension. Let me know how can I proceed regarding this.
Thanks,
Praveen.
Hi PraveenTo fix the assembler errors, add "-x assembler-with-cpp" into the Miscellaneous settings for Arm Assembler 6.Depending on how much code and RW data you've added, you may see data aborts occurring inside __scatterload_copy (and main() not being reached) due to the MPU CODE region exceeding its upper limit. You can fix that by increasing the size of the MPU region in startup.s, or moving the enabling of the MPU to after scatterloading has completed, e.g. inside main().Hope this helpsStephen
Hi Stephen,
After adding the "-x assembler-with-cpp" I am seeing below link error.
armlink.exe --info=sizes -o "startup_Cortex-R52.axf" ./doubleelements.o ./main.o ./sorts.o ./startup.o Error: L6218E: Undefined symbol Image$$ARM_LIB_HEAP$$Base (referred from startup.o).Error: L6218E: Undefined symbol Image$$ARM_LIB_STACK$$ZI$$Limit (referred from startup.o).Error: L6218E: Undefined symbol Image$$CODE$$Base (referred from startup.o).Error: L6218E: Undefined symbol Image$$CODE$$Limit (referred from startup.o).Error: L6218E: Undefined symbol Image$$DATA$$Base (referred from startup.o).Error: L6218E: Undefined symbol Image$$DATA$$ZI$$Limit (referred from startup.o).
ARM_LIB_HEAP is already defined in scatter.scat. Is there any other project that I could use for cortex-r52 + neon. Let me know if you have any working project available
Hi PraveenYour Arm DS project build appears to have lost some essential tool options, in particular, the name of the scatter file and the image entry point in the Arm Linker 6 > Image Layout settings.For the link-step, change your current:armlink.exe --info=totals -o "startup_Cortex-R52.axf" ./doubleelements.o ./main.o ./sorts.o ./startup.o so that it becomes:armlink.exe --entry=Start --scatter="../scatter.scat" --info=totals -o "../startup_Cortex-R52.axf" ./doubleelements.o ./main.o ./sorts.o ./startup.o
Hope this helps
Stephen
Thanks Stephen . This really helped alot.
Also I am trying to compile .cpp extensiopn files(main.c --> main.cpp ..). But .cpp files are not picked up for compilation and I am seeing error main not found.
My usecase is, I have .cpp based source code which I need to include in this project and create .axf. Is this workflow possible?
(To be more specific about my usecase, I am trying to include to include arm compute library to this startup project and create an app.)
Hi PraveenThat's strange - renaming main.c to main.cpp works for me with the startup_Cortex-R52 example supplied, after fixing up any call-outs (name mangling, etc) from the C++ file to extern C or assembler files.However, if the bulk of your application will be C++, then you must create a new C++ project. The startup_Cortex-R52 example supplied is only based on a C project template, not C++.
To create a new C++ project, use File > New > Project, then expand C/C++ and select "C++ Project". Then copy across all the project settings (processor, fpu, "-x assembler-with-cpp", --entry=Start --scatter, etc) from your existing project to the new project.If you need more help with this interesting project, I suggest you open an official Support case with Arm, using the "Support > Open a Support Case" option at the top of this page.Hope this helpsStephen
Thanks for suggestion I have raised a support case .
I want to know if there is a quick fix for below problem.
I have created C++ project and created .axf , however I am seeing issues while trying to run. It is not coming to main from "Start". Debug configurations are similar to the startup_cortex-r52.Attached project for your referenceACLPrototype.zip