Communication Between ARM and DSP Vincent Han Mar, 2014 TI Information – Selective Disclosure 1 Agenda • ARM and DSP Communication Basics • Run ARM & DSP Communication Example TI Information – Selective Disclosure 2 Ways for ARM and DSP Communication • Use common flags for communication − Set some flags or signs as the public interface − Communicates depends on flags/signs’ value change • Use Navigator for communication − Descriptors carry messages/values to be passed − Use QMSS to pass descriptors between different queues − Cores push/pop related queues to send/receive message descriptors • Use IPC for communication − Initialize the interrupt sub-system − Set source and trigger the dedicated IPCGR register − Related core received interrupt and react TI Information – Selective Disclosure 3 Advantage and Disadvantage Analysis • Use common flags for communication − A: Easiest way to implement communication, no extra IP usage − D: Spin lock implement by SW, need maintain Cache if used − D: Core will be occupied when posting/pending flags • Use Navigator for communication − A: Message sending/receiving by HW − D: Need to initialize Navigator HW, need maintain Cache if used − D: Core will be occupied when posting/pending descriptors if no interrupt used • Use IPC for communication − A: Latency is short due to use interrupt directly − A: No Core occupation before trigger/response IPC − D: Need to initialize interrupt controller HW, need maintain Cache if used TI Information – Selective Disclosure 4 Agenda • ARM and DSP Communication Basics • Run ARM & DSP Communication Example TI Information – Selective Disclosure 5 ARM & DSP Communication Example Procedure DSP Core0 ARM Core0 Basic System Hardware Initialization Run Wait for ARM Core0 interrupt ARM Core0 trigger IPC to DSP Core0 Run IPC DSP Core0 received IPC from ARM Core0 ARM Core0 pending IPC response from DSP Core0 DSP Core0 reply IPC back to ARM Core0 IPC While (1); TI Information – Selective Disclosure ARM Core0 received IPC response from DSP Core0 While (1); 6 Run ARM & DSP Communication Example 1) Create TCI6638 EVM CCXML file with loading attached GEL file on DSP Core0 2) Launch the debug session with this CCXML configuration file 3) Connect and load the DSP executable on DSP Core0 4) Connect and Load the ARM executable on ARM Core0 5) Run the DSP executable first then run the ARM executable For more information, please refer operation guide on deyisupport: http://www.deyisupport.com/ TI Information – Selective Disclosure 7 Thank You! TI Information – Selective Disclosure