工具/软件:Linux
我在确定如何从运行 Linux 的 ARM 内核启动自定义 DSP 应用方面遇到了一些困难。 我已经构建并能够运行所有 Syslink 示例、但没有成功运行我自己的应用程序。
当前的目标是将 Slaveloader 功能与 MCASP Loopthrough 示例集成。 如果 ARM 上未加载 Linux、我可以通过 CCSv7加载 DSP 程序。
当我尝试从 Linux 启动 DSP 时、Syslink 会报告从设备成功启动、但 DSP 似乎没有执行任何操作。
据我所知、CCS 正在生成 ELF 可执行文件。
我正在使用以下命令通过 Linux 加载程序:
insmod /lib/modules/3.3.0/kernel/drivers/dsp/syslink.ko trace=1 TRACEFAILURE =1 TRACECLASS = 3
/slaveloader 启动 DSP MCASP_AudioExampleProject.out MCASP_AudioExampleProject.map
之后、似乎 DSP 程序计数器自动递增而不会停止、就好像没有加载任何代码一样。 这至少是我单步执行反汇编时的样子。
从 CCS 启动 DSP 时、如果我在 ARM 上运行 Linux、我会通过控制台获取以下消息:
ARM9_0:输出:目标已连接。
ARM9_0:输出:-------------------------------------------------------
ARM9_0:输出:存储器映射被清除。
ARM9_0:输出:-------------------------------------------------------
ARM9_0:输出:存储器映射设置完成。
ARM9_0:输出:-------------------------------------------------------
ARM9_0:GEL:执行 OnTargetConnect ()时出错:读取0x01C10800时发生页错误
AT (*(unsigned int *)((0x01C10000+0x800)+(4*LPSC num)))和0x1F)[OMAP-L138_LCDK.gel:868]
在 PSC0_LPSC 使能(0、0)[OMAP-L138_LCDK.gel:509]
在 PSC_ALL_ON ()[OMAP-L138_LCDK.gel:244]
在 OnTargetConnect()
处于此状态的 DSP 的行为是处于空闲循环中、而不会看到 MCASP 中断。 我假设页面故障是由于 Linux 内核已加载。
当我不加载 Linux (中断 U-boot、然后通过 JTAG 加载程序)时、我会在控制台上看到以下输出:
ARM9_0:输出:目标已连接。
ARM9_0:输出:-------------------------------------------------------
ARM9_0:输出:存储器映射被清除。
ARM9_0:输出:-------------------------------------------------------
ARM9_0:输出:存储器映射设置完成。
ARM9_0:输出:-------------------------------------------------------
ARM9_0:输出:PSC 启用完成。
ARM9_0:输出:-------------------------------------------------------
ARM9_0:输出:针对内核:300MHz、EMIFA:25MHz 完成 PLL0初始化
ARM9_0:输出:DDR 初始化正在进行中....
ARM9_0:输出:针对 DDR:150MHz 完成 PLL1初始化
ARM9_0:输出:使用 DDR2设置
ARM9_0:输出:完成150MHz 的 DDR2初始化
ARM9_0:输出:-------------------------------------------------------
ARM9_0:输出:DSP 唤醒完成。
ARM9_0:输出:-------------------------------------------------------
此时、程序按预期启动。
无论是哪种方式、对于 DSP 控制台、消息都是相同的:
[C674x_0]
EDMA 驱动程序初始化通过。
以下是目标和平台:
程序目标:TI.targets.elf.c674
计划平台:平台:ti.platforms.evmOMAPL138:dsp
这似乎是内存映射问题、或者我无法跟踪的一些模糊配置设置。 我在 Linux 内核中禁用了 I2C 和 MCASP 外设、但没有看到任何改进。
如果我可以提供任何其他信息来帮助、请告诉我。
Jeff