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.

[FAQ] [参考译文] [常见问题解答] OMAP-L13x/C674x 资源和常见问题解答

Guru**** 1587215 points
Other Parts Discussed in Thread: OMAP-L138, OMAP-L132, OMAP-L137
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/975156/faq-omap-l13x-c674x-resources-and-faq

主题中讨论的其他器件:OMAP-L138OMAP-L132OMAP-L137OMAPL138

OMAP-L13x/C674x 资源和常见问题解答

如何开始?

软件

适用于 OMAPL138处理器且支持 Linux 和 TI-RTOS 的处理器 SDK - 支持的器件:OMAP-L138、OMAP-L132、C6748、C6746、C6742

适用于 OMAPL137处理器且支持 Linux 和 TI-RTOS 的处理器 SDK - 支持的器件:OMAP-L137、C6747、C6745、C6743

Processor SDK 培训和指南

Processor SDK 培训系列

Processor SDK RTOS 软件开发人员指南

《Processor SDK Linux 软件开发人员指南》

EVM 资源

《OMAP-L138/C6748 LCDK 硬件设置指南》

OMAP-L138/C6748低成本开发套件用户指南

TMDSOSKL137用户指南和原理图

《OMAP-L137/C6747 EVM 硬件设置指南》

注: 有关相关文档的完整列表,请参阅每个设备产品页面的“技术文档”部分。 例如:

https://www.ti.com/product/OMAP-L138#tech-docs

原理图指导

OMAP-L13x/C674x/AM1x 原理图审阅指南


每个器件都有哪些驱动程序?

OMAP-L138/C6748:EMAC、GPIO、I2C、McASP、McBSP、 MMCSD、SPI、UART、USB

OMAP-L137/C6747:EMAC、GPIO、I2C、McASP、MMCSD、 SPI、UART、USB

PDK 示例工程在哪里?

PDK 包含用于为所有 PDK 子组件创建示例和测试 CCS 工程的 Windows 和 Linux 脚本。 以下指南详细介绍了如何使用脚本创建 CCS 工程。

PDK 示例和测试工程创建

对于 OMAP-L138和 C6748、下面的 zip 文件中还提供了 ProjectSpecs (CCS 项目)。  

e2e.ti.com/.../omapl138_5F00_c6748_5F00_ccs_5F00_projectspecs.zip

提取上述 zip 文件并将 ccs_examples 文件夹放置在~\pdk_omapl138_1_0_11\中。 然后可以直接从 CCS 导入它们。  

有关 ProjectSpecs 的更多信息、请访问: CCS 中的 ProjectSpecs


pdkProjectCreate.bat 脚本显示无法找到指定的路径

  1. 确保先运行 pdksetupenv 脚本。
  2. 如果使用的 CCS 版本与 Processor SDK 发行说明中指定的版本不同、则需要更新 pdkProjectCreate 脚本中的 CCS 路径以指向您的 CCS 目录。

 

如何将库与 Processor SDK PDK 链接?

E2E - CCS/TMS320C6748:如何将处理器 SDK 库添加到项目中?


如何使用 ROM 引导加载程序引导应用程序?

《使用 OMAP-L132/L138引导加载程序应用报告》

OMAPL138/C6748 ROM 引导加载程序资源和常见问题解答

使用 OMAP-L1x7引导加载程序

使用 TMS320C6748/C6746/C6742引导加载程序

使用 TMS320C6747/45/43引导加载程序

使用串行闪存实用程序

 
LCDK 开箱即用演示无法正常工作

E2E 论坛上有报告说 LCDK 闪存内容损坏。 因此、我们提供了电路板制造商用于闪存和运行演示的二进制文件。 如果您遇到相同的问题、则可以使用出厂映像恢复闪存、或者如果您只想确认电路板功能、则运行诊断程序。 以下应用手册的“闪存和引导 LCDK 的过程”一节对该过程进行了说明。

OMAP-L138/C6748低成本开发套件用户指南


是否有 eMMC 驱动程序和示例?

按照以下指南中的步骤、可以修改 Processor SDK 中的 MMCSD 驱动程序和示例以与 eMMC 配合使用。

e2e.ti.com/.../Enabling-eMMC-on-OMAPL138-and-C6748.pdf


IPC:如何在 ARM 运行 Linux 时在 DSP 上配置缓存和存储器映射?

Linux IPC:如何在 OMAPL138上的 ARM 上运行 Linux 时为缓存配置 DSP 存储器映射


如何调试 IPC 问题?

使用 IPC3.x 调试工具和技术


如何修改 SPI 环回示例和 LCDK 以在主/从模式下工作?

TMS320C6748:构建 SPI 环回示例并进行修改以在主/从模式下工作


如何在 ARM 上运行 Linux 的情况下在 DSP 上配置 GPIO 示例?

OMAPL138B-EP:C6748上的 GPIO LED 闪烁示例、Linux 在 ARM 上运行


使用 TI-RTOS 时如何在 C674x 上配置缓存?

在 C674x 上、通过设置相应的 MAR 位来配置 L2缓存。 有关缓存和 MAR 位的更多信息、请参阅 《TMS320C674x DSP 超级模块参考指南》

CCS 提供用于配置缓存的 GUI。 要访问 GUI,请右键单击项目的 cfg 文件>使用> XGCONF 打开>在“大纲”窗口中选择“高速缓存”>单击“特定于设备的高速缓存支持”以打开高速缓存配置窗口。 配置后、可使用文本编辑器查看 cfg 文件以查看代码变化。

McASP 资源和培训

McASP 入门培训系列

McASP 设计指南:提示、技巧和实际示例


McASP 驱动程序是如何工作的?

McASP 驱动程序展示了一组 API、应用程序层将使用这些 API 通过 McASP 外设发送和接收数据。 该驱动程序还公开了一组操作系统抽象 API、以使驱动程序与操作系统保持独立。 McASP 驱动程序使用 CSL McASP 寄存器层来访问所有 McASP MMR。

McASP 驱动程序还使用 EDMA 将存储器中的数据移动到 MCASP 接口(TX 路径)、并在 MCAASP 的每次传输事件中将在 MCAASP 接口上接收到的数据移动到存储器(RX 路径)。

EDMA 通道控制器在后台为 MCASP 提供服务、而无需任何 DSP 干预。 EDMA 通道可被配置为在整个器件运行期间持续为 McASP 提供服务。 EDMA 可用的每个事件都有其自己的专用通道、所有通道同时运行。 唯一的要求是为特定的传输使用正确的通道、并在事件使能寄存器中启用通道事件。

当编辑 EDMA 通道来为 MCASP 提供服务时、有必要知道数据是如何呈现给 DSP 的。 数据始终随某种同步事件提供、即每个事件一个元件(非突发)或每个事件多个元件(突发)。

以下部分提供了 McASP LLD 的高级概述。 有关这方面的更多详细信息、请参阅 PDK 中的 McASP SDS、但下面提供了这些信息、以便更好地确定性和更易消化的格式。

      1. McASP 驱动程序初始化

 McASP 驱动程序初始化每个应用程序只需要进行一次。

mcaspInit 

 此函数初始化内部驱动程序数据结构、例如器件对象。 应用开发人员需要确保在初始化 McASP 外设之前调用此函片。

 McASP       外设配置

McaspDevice_init 

此函数使用示例实现序列初始化 McASP。 它还初始化所有特定于实例的信息、例如实例 CFG 寄存器的基址、实例的 FIFO 地址、TX 和 RX CPU 事件编号、TX 和 RX EDMA 事件编号等 该函数还将 McASP 实例模块对象的“不使用”字段设置为“假”,以便应用程序可以创建该实例。 静音缓冲器也会被初始化。

注意:此初始化序列仅为示例、并保留在应用程序级别、因此开发人员可以针对其应用程序对其进行修改和自定义。

3.      驱动程序实例绑定

 初始化 McASP 后、应用程序需要将驱动程序实例绑定到硬件实例。

mcaspBindDev 

此函数应在 MCASP 器件初始化后调用。 它获取指定 McASP 实例的设备句柄、并使用指定的参数(如果没有外部配置、则为默认参数)配置实例。 每个驱动程序实例对应于 McASP 的一个硬件实例。 此函数执行以下操作:  

  • 通过选中“不使用”来检查正在创建的实例是否已在使用中。
  • 使用用户提供的参数更新实例对象。
  • 使用默认参数初始化所有通道对象(TX 和 RX)。
  • 初始化队列以保存暂挂的帧和当前正在执行的帧(浮动队列)。
  • 根据用户提供的参数、将 MCASP 配置为从外部或内部接收帧同步和位时钟、以接收接收接收器和发送器。
  • 返回设备句柄。

       4.通道创建

应用程序创建设备实例后、需要创建与底层硬件进行事务的通信通道。 该驱动程序允许在每个 MCASP 实例中创建最多两个通道–一个传输通道(例如音频回放)和一个接收通道(例如麦克风输入)。 创建通道时、应用程序需要指定适当的模式(输出或输入)。

mcaspCreateChan 

应用程序需要为该函数提供 chanParams 的参数、这些参数将描述通道的特性、例如插槽数、插槽宽度等 此函数执行以下操作:  

  • 验证应用给出的输入参数。
  • 检查请求的通道是否已打开。 如果已打开、驱动程序将向应用程序标记错误、否则将分配请求的通道。
  • 使用用户提供的参数更新相应的通道对象。
  • McASP 配置了适当的字宽。
  • 已设置请求通道的 EDMA 参数。
  • 如果启用了全局错误回调函数注册、则会注册相应的用户提供的函数、以便在发生错误时调用。
  • 如果通道创建失败、它将执行清理并释放它分配的所有资源、直到现在为止。
  • 如果通道创建的完整过程成功、则会向应用程序返回唯一的通道句柄。 应用程序应使用此句柄与通道进行进一步的事务处理。 驱动程序将使用此句柄来标识请求事务的通道。

 5.       I/O 帧处理

 创建必要的通道后、应用程序可以提交要加载的 I/O 数据包/buf (帧)以进行数据传输。

mcaspSubmitChan 

应用需要为该功能提供适当的通道句柄和 IOBuf (FRAME)、其中包含要执行的操作以及对 EDMA 通道进行编程以对底层硬件进行数据传输所需的参数。 此函数执行以下操作:  

  • 输入 McASP_IOBuf 帧被验证。
  • 如果驱动程序有足够的帧、则当前帧将加载到暂挂队列中。
  • 否则、该帧会编程到 EDMA 的链路参数中。
  • 在非循环作业模式中、第一个帧始终加载到主传输通道中。 随后的两个帧被加载到 EDMA 的备用参数集中。 此外、如果这是驱动器的第一个帧、则根据通道配置启动时钟。 之后的任何其他帧都被加载到挂起队列中。 这些帧将由 EDMA 回调加载到 EDMA 的相应参数集。

 异步 I/O 机制

 MCASP 驱动程序允许应用程序提交多个 I/O 请求、而不会导致它在等待之前的 I/O 请求完成时被阻止。 应用程序可以使用 mcaspSubmitChan()提交多个 I/O 请求。 在传输请求提交期间注册的应用程序回调函数将在驱动程序完成传输时调用。 驱动程序将在内部对提交的 I/O 帧进行排队以支持异步 I/O 功能。

6.      控制命令

 McASP 驱动程序支持可被应用程序使用的针对器件特定功能的控制命令。 控制命令以“McASP_IOCTL_”作为前缀,完整列表可在 McASP_drv.h 中找到 典型命令包括暂停、恢复、停止、启动、静音、 等等

 7.      频道删除  

一旦一个通道完成了所有的事务、就可以关闭它来释放所有分配的通道资源。

McaspDeleteChan 

应用程序可以调用此函数来删除实例的指定 McASP 通道。 此函数执行以下操作:

  • 要删除的信道将被重置。
  • 复位操作将中止挂起队列中的所有数据包以及当前活动队列中的数据包。
  • 禁用该通道的 EDMA 传输。
  • MCASP 状态机停止。
  • 中断处理程序未注册。

8.      驱动程序实例取消绑定/删除

 关闭/删除实例通道后,应用程序可以解除绑定/删除驱动程序实例,以释放所有已分配的实例资源。  

mcaspUnBindDev 

此函数执行以下操作:

  • 检查 TX 和 RX 通道是否都已关闭。
  • 更新实例对象。
  • 将驱动程序实例的状态设置为“已删除”。
  • 将实例“不使用”的状态设置为 false (以便可以再次使用实例)。

 McASP 驱动程序示例

McASP 驱动程序示例是一个音频回送示例,它对 AIC31编解码器和 McASP 进行编程,以接收来自“音频输入”端口的输入,并将其从“音频输出”端口回路。

有关 McASP 驱动程序和示例的更多信息,请参见以下链接的《Processor SDK RTOS 软件开发人员指南》。

处理器 SDK RTOS 器件驱动程序- McASP