Hello,
would it be possible to use GCC instead of Tiarmclang toolchain? what would be the necessary considerations when migrating to GCC? I believe the linker script is one of these. Any other considerations?
Thank you.
Best regards,
Belal
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hello,
would it be possible to use GCC instead of Tiarmclang toolchain? what would be the necessary considerations when migrating to GCC? I believe the linker script is one of these. Any other considerations?
Thank you.
Best regards,
Belal
Hi Ming
Could you please explain why it would not be possible to use GCC? are there any specific features or dependencies on TI CLANG which are not supported by GCC? The project I am currently working on is using GCC and it would not be so easy to migrate to TI CLANG. at the moment.
Best
Belal
H Belal,
It is possible to use GCC as the toolchain. However, the MCU+ SDK is not tested with the GCC as the toolchain.
I will discuss with the software development team for this issue and get back to you early next week.
Best regards,
Ming
Hi Ming,
any new updates on this?
I was able to build the hello_world example (including all dependencies such as the kernel and and the drivers) with GCC and flash it with the available flashing tool. I adapted the linker script according to the available command line script and set the entry point. I also used the provided tools to convert the object file to the .appimage format that is readable by the bootloader. I used the provided pre-built bootloader. But the bootloader does not jump to the main application after the initialization process. I even tried to build the bootloader instead of using the pre-built binaries but the same issue occurs, the bootloader app itself does not boot. I was thinking about debugging using the on-chip debugger and OpenOCD but it seems like there is no OpenOCD support for the board yet.
Best
Belal
Hi Betal,
I discussed this with the software development team, but nobody did this before. The current MCU+ SDK was developed and tested only with the TI CLANG toolchain.
I have a question for you. When you built the hello_world example with GCC, can you load and run it with JTAG in CCS? If yes, then the GCC build should be OK, if no, then the GCC build is different than the TI CLANG build.
Best regards,
Ming
Hi Ming,
so I was able to load and run the example with JTAG. The problem happens during the API call Sciclient_service() to get the module current state (Sciclient_pmGetModuleState) during system initialization. The request response has an invalid flag, i.e., it has the value zero which is not TISCI_MSG_FLAG_ACK. After spending some time debugging, I found out that the problem is caused by the payload element in the sciclient_header. I am still not sure how is that related but removing this placeholder element from the struct resolves the issue. I am still investigating on this so any help would be appreciated :)
Best
Belal
Hi Belal,
Can you help me with some questions ?
- Which example are you trying ? SBL_OSPI or Hello World ?
- Which GCC version are you using ?
- How are you loading the software - UART or OSPI boot or directly via JTAG and CCS ?
Thanks and Regards,
Aakash
Hi Aakash,
1. I'm running the hello world example
2. GCC 11.2
3. OSPI boot but I also use JTAG and CCS for debugging
Best
Belal
Hi Belal,
We have not tried on GCC 11.2 and as Ming mentioned that GCC is not supported OOB but support can be added for the same. It requires substantial effort to do so.
We have done this exercise for AM263X where driver libraries are build with this format. Similarly you can port other required drivers - /cfs-file/__key/communityserver-discussions-components-files/908/makefile.am263x.r5f.gcc_2D00_armv7
Linker file example attached here -
/cfs-file/__key/communityserver-discussions-components-files/908/linker_5F00_gcc.cmd
Hope it helps.
Thanks and Regards,
Aakash