Spaces:
Runtime error
Runtime error
Ticket Name: Linux/TDA2HA-17: Problems producing code for DSP outside TI-SDK | |
Query Text: | |
Part Number: TDA2HA-17 Tool/software: Linux Team, Could you please answer the question from my customer. Please find below his questions. I’m not able to boot the DSPs of the TDA2+ outside SDK without using proprietary stuff. The only two questions I have to ask: What do I need to do so and where do I find the necessary code, like start-up snipped? Are you able to give me a simple example? The requirements I have to deal with: 1. Using cl6x toolchain is absolutely OK. 2. Build have to be embedded in a linux “Makefile” build environment, WITHOUT usage of XDC. 3. The Test-Chains of QM do not allow IDEs, such as CCS, so: 4. … Code must be compiled (assembled) ONLY in a Makefile environment 5. To handle Boot and Update processes: Linux runs on A15 core and will provide ALL SUBCORE STUFF using REMOTEPROC. Goals: Using only code which is REALLY necessary, so: Every line of code is desired and can be handled easy, managed in a simple boot-process. SHORT: So absolutely bare-metal code have to meet linux remoteproc I need: Startup-code Custom-Resource-table With a proper Linker-cmd file And of course: cl6x call -> How do I tell the compiler to create the “dra7-dsp1-fw.xe66” out of the just compiled obj linked together. Thank you. -Needhu | |
Responses: | |
Hi Needhu, I have forwarded your question to an expert for comment. Regards, Yordan | |
Hi Yordan, Thank you very much. Best, Needhu | |
Hi Needhu, You should be able to start off with this by looking at the examples in ti_components\drivers\pdk_XX_XX_XX_XX\packages\ti\csl. These are pure makefile based examples including examples for C66x DSP. For instance, you can have a look at the csl\example\uart\uart_test. This will have the code after main. For the initialization code before main, you can have a look at csl\arch\c66x\src interrupt.c file. You can download the latest processor SDK Vision from http://www.ti.com/tool/processor-sdk-vision Thanks and Regards, Piyali | |
Hi Piyali, Thank you very much for the info. As a reference for other customers, please find below further information that I received offline. Please have a look at SYS/BIOS code for the AMMU and BIOS startup code. The main code is in C files, so it should be possible to convert that to a bare-metal C code just as well. https://github.com/n-aizu/freertos-multicore/tree/master/FreeRTOS-Plus/BSP/OMAP4_CM3_GCC Following is another project that is using Makefiles and baremetal code, but it is associated with a different kind of remote processor: a PRU. http://git.ti.com/gitweb/?p=pru-software-support-package/pru-software-support-package.git;a=shortlog;h=refs/heads/master The folders to look at (lib/src/rpmsg_lib for the Virtio rpmsg transport code (need to replace pru_virtqueue_kick) (equivalent of http://git.ti.com/gitweb/?p=ipc/ipcdev.git;a=tree;f=packages/ti/ipc/rpmsg;h=4c40631361d0d0f697ab525f9e0a3288df19c118;hb=refs/heads/3.47) and examples/am572x/PRU_RPMsg_Echo_Interrupt1_0 Regarding your questions, 1 . Makefile usage is fairly standard, the only difference is that you are using the C66x compiler and different ISAs, but if one knows how to write standard Makefiles for a project, then there is nothing different required for DSPs. Example from the M3 project: https://github.com/n-aizu/freertos-multicore/blob/master/FreeRTOS/Demo/CORTEX_M3_PANDA/rpmsg-client-sample/Makefile 2. Linker file: Again this is standard. I would say to look at the regions defined in evmDRA7XX_ExtMemMapDsp in the following file http://git.ti.com/gitweb/?p=ipc/ipcdev.git;a=blob;f=packages/ti/ipc/tests/package.bld;h=6b2a9decc53465685cb57ce45a305d2df5d8c3d6;hb=refs/heads/3.47 and convert it to a standard linker .ld file. Example from the M3 project: https://github.com/n-aizu/freertos-multicore/blob/master/FreeRTOS-Plus/BSP/OMAP4_CM3_GCC/base/omap4_cm3.ld 3. Resource Table There is nothing fancy about this, it is just a structure and a properly filled structure and is simply a header file at the end of the day. You can look up the references in either the above IPC packages/ti/ipc/tests folder or the PRU examples project3. dra7-dsp1-fw.xe66 is just the name of the executable in your file system. Only requirement for it is that it should be an ELF file a “.resource_table” section. So, as long as the Makefile generates an ELF file with the appropriate .resource_table section, you can just rename whatever is the generated output image file (*.out or *.elf etc). Xe66 is just the extension created with SYS/BIOS and XDC and DSP CGT, but it is still an ELF file. Thank you. Best, Needhu | |
Team, Where can I find the EVE simulator tools for TDA2+? Could you also provide me a few examples or application notes on this. I would also appreciate simple bare metal codes examples for EVE - subsystem. Thanks, Needhu | |
Hi Needhu, you can find Vayu Subsystem Simulator here: cdds.ext.ti.com/.../emxNavigator.jsp (you can check the "vayu_simulator_user_guide.pdf" for supported features) Unfortunately simulators are not supported for CCS past v5: e2e.ti.com/.../2179980 Hope this helps. Regards, Yordan | |