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.

SK-TDA4VM: MCU的调试问题

Part Number: SK-TDA4VM
Other Parts Discussed in Thread: TDA4VM,

关于TDA4VM上MCU的调试有几个问题麻烦咨询以下,目前前提是我计划只用到TDA4VM的MCU和C66X,MCU作为数据采集,给到DSP做运算,然后数据通过MCU存储到EMMC里,其他部分内核包括A72不会用到:

1.SK-TDA4VM上的的MCU_UART0是配置给MCU1_0来做LOG输出的吧,如果我用在MCU2_0来做log输出的UART口,如何来配置?

2.MCU2/MCU3的SPI通讯是否支持DMA,有没有案例代码?

3.SDK里有没有直接可以导入到CCS里的MCU2/MCU3的案例工程代码,经过CCS编译后可以直接加载进去后跑起来的?

4.如果没有直接导入CCS的工程代案例代码,我如何开始独立开发MCU2/MCU3的软件,比如创建一个工程代码需要引入那些库,头文件,怎么来配置等等?

5.SDK里好像都是基于freeRTOS或者safeRTOS,我想了解这两个和TI-RTOS的区别

6.MCU2/MCU3是否支持EMMC和网口,如果支持,有没有案例代码如何配置和使用的?

  • 您好,

    1. 在SK-TDA4VM开发板上,MCU_UART0默认是配置给MCU1_0来做LOG输出的。如果您想将MCU2_0用作LOG输出的UART口,您可以通过修改设备树(device tree)文件来配置。

    2. MCU2和MCU3的SPI通讯是支持DMA的。您可以使用DMA引擎来实现SPI的数据传输。

    3. SDK中提供了一些针对MCU2和MCU3的案例工程代码,您可以在CCS中导入这些工程代码,并进行编译和调试。

    4. 如果没有直接导入CCS的工程案例代码,您可以从头开始独立开发MCU2和MCU3的软件。首先,您需要了解MCU2和MCU3的架构和编程模型,以及相关的开发工具和环境。然后,您可以创建一个新的工程,编写MCU2和MCU3的代码,并使用CCS进行编译和调试。

    5. SDK中通常基于FreeRTOS或SafeRTOS来提供MCU的软件开发支持。这两个操作系统都是实时操作系统(RTOS),用于管理MCU的任务和资源。TI-RTOS是德州仪器提供的一种RTOS,也可以用于MCU的开发。TI-RTOS相对于FreeRTOS和SafeRTOS来说,提供了更多的功能和组件,可以帮助您更好地开发和管理MCU的软件。

    6. MCU2和MCU3都支持EMMC和网口。

  • 感谢您的回复!

    第1个问题,我不用A72的linux,只用MCU和DSP,所以不能在设备树上修改,还有没有其他方案?

    第3个问题,PDK哪个目录下是可以直接导入CCS做工程代码直接编译的?

    第5个问题,freeRTOS的内核代码和驱动层是不是都是在PSDK/packeges/ti/drv下?

    第6个问题,单独的EMMC和网口驱动和操作的配置和驱动代码案例有没有?在哪里可以找到

    谢谢

  • 您好,

    对于您的第一个问题,如果您只使用MCU和DSP,而不使用A72的Linux,无法在设备树上进行修改。在这种情况下,您可以考虑以下替代方案:

    1. 在DSP上实现引导加载程序:您可以编写一个引导加载程序,直接在DSP上执行,以从NAND Flash启动。这样可以绕过设备树的修改,但需要在DSP上实现完整的引导加载和启动流程。

    2. 使用外部启动设备:您可以考虑使用外部启动设备(如SPI Flash),并将引导加载程序和其他必要的启动代码存储在该设备上。DSP可以从外部启动设备加载和执行代码,以实现从NAND Flash启动。

    对于您的第三个问题,PDK提供了一些预编译的库和驱动程序,可以直接在CCS中导入并进行编译。在PDK的安装目录下,您可以找到"ti"文件夹,其中包含了各种库和驱动的源代码和示例。您可以选择适合您的应用的库和驱动,并将其导入到CCS中进行编译。

    对于您的第五个问题,FreeRTOS的内核代码和驱动层并不在PSDK的"packages/ti/drv"目录下。FreeRTOS是一个独立的实时操作系统,您可以从FreeRTOS的官方网站上下载最新版本的内核代码和驱动程序。然后,您可以将这些代码集成到您的项目中,并根据需要进行配置和修改。

    对于您的第六个问题,单独的eMMC和网口驱动和操作的配置和驱动代码案例可以在PDK的"packages/ti/drv"目录下找到。该目录包含了德州仪器提供的各种驱动程序和示例代码,您可以在这些示例代码中查找和参考eMMC和网口驱动的配置和驱动代码。

  • 1/2我有点看不明白了,怎么是在DSP上做引导,不是从MCU1_0上做引导的么。然后SBL可以加载DSP的程序?或者通过CCS加载DSP应用程序?

    关于freeRTOS,我看SDK编译出来的镜像是有FREERTOS和SAFERTOS的后缀的,意思应该就是基于freeRTOS或者safeRTOS编译/的吧,如果PSDK下没有freeRTOS或者safeRTOS,那这些镜像是基于什么编译出来的,比如:UART_DMA_TestApp_freertos/UART_TestApp_freertos/udma_adc_testapp_freertos等等这些

  • 您好,

    在TDA4VM中,MCU1_0是主控处理器,负责系统的引导和初始化。MCU2_0和DSP是辅助处理器,可以通过MCU1_0进行引导和加载应用程序。

    在TDA4VM中,可以使用SBL来引导MCU2_0和DSP。SBL是一个引导程序,负责加载应用程序到MCU2_0和DSP。您可以通过CCS或者其他方式将应用程序编译为可执行文件,然后使用SBL将其加载到MCU2_0和DSP中运行。

    关于FreeRTOS和SafeRTOS,它们是两种不同的实时操作系统(RTOS),用于在TDA4VM的MCU2_0和DSP上进行任务调度和管理。在SDK中,编译出来的镜像文件会根据使用的RTOS进行命名。例如,如果使用FreeRTOS,则会在镜像文件名中包含"freertos"后缀。如果PSDK下没有FreeRTOS或SafeRTOS的源代码,那么这些镜像文件是基于SDK中提供的FreeRTOS或SafeRTOS库进行编译的。

    UART_DMA_TestApp_freertos、UART_TestApp_freertos、udma_adc_testapp_freertos等都是基于FreeRTOS的应用程序示例。您可以在SDK中找到这些示例代码,并根据需要进行修改和配置。这些示例代码将演示如何使用FreeRTOS进行任务调度和管理,并与相关外设(如UART、DMA、ADC等)进行交互。