Spaces:

arjun.a
range data
5aefcf4
raw
history blame
5.14 kB
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