请问怎样在dsplink的例子dsp端添加多个c文件?需要修改哪些文件来包含c文件?谢谢
bruce lee3:
回复 wei lee1:
wei lee1,你好
非常感谢你详细的回答,我想在loop中跑OMAPL138的led,在添加了相关的c文件和h文件后,在tskLoop.c中加入了GPIO方向和电平设置,编译没有出错,但运行时卡住了,请问是什么原因?evmomapl138_bsl.lib需要添加吗?在哪添加?
bruce lee3:
回复 wei lee1:
wei lee1,你好
非常感谢你详细的回答,我想在loop中跑OMAPL138的led,在添加了相关的c文件和h文件后,在tskLoop.c中加入了GPIO方向和电平设置,编译没有出错,但运行时卡住了,请问是什么原因?evmomapl138_bsl.lib需要添加吗?在哪添加?
wei lee1:
回复 bruce lee3:
#1:你的意思是不是需要将evmomapl38_bsl.lib是不是要和DSP端的.out文件一同放到ARM端的文件系统中?
这个应该不用,这个库是静态的,只会在链接的时候使用,编译成功之后,只使用.out文件应该就可以了。
#2:或者你的意思是不想用源文件+头文件的方式,想DSP端直接链接evmomapl138_bsl.lib?
在Linux中DSPLINK环境下 DSP端怎么使用库,这个我也没研究,非常抱歉。
bruce lee3:
回复 wei lee1:
你好,wei lee1
非常感谢你的回复。
我的做法步骤是1.在dsp端SOURCES文件中添加源文件 2.在dsp端tskLoop.c文件中包含头文件,并添加代码
EVMOMAPL138_init();
EVMOMAPL138_initRAM();
EVMOMAPL138_pinmuxConfig(3, 0x00ff0000, 0x00880000);
GPIO_setDir(GPIO_BANK8, 3, GPIO_OUTPUT);
GPIO_setDir(GPIO_BANK8, 4, GPIO_OUTPUT);
GPIO_setOutput(GPIO_BANK8, 3, 1);
GPIO_setOutput(GPIO_BANK8, 4, 1);
这段代码在CCS端可以跑通,实现输出高电平,但在dsplink的loop例程下,当运行时,卡在PROC_load,请问loop.out文件为何无法下载进去呢?我的做法欠缺在什么地方?
wei lee1:
回复 bruce lee3:
EVMOMAPL138_init();EVMOMAPL138_initRAM(); 是不是重复做了一些初始化操作,比如时钟配置,EMIFA,DDR2配置等,ARM端已经做过初始化了,DSP端再进行初始化,可能会破坏ARM的运行环境,比如ARM正在运行,在DSP端你去初始化了DDR2。有些初始化ARM做了,DSP就没必要再做了。
Bruce lee31:
回复 wei lee1:
我用的是SEED-DEC138板子,这块板子上有cpld,其中地址0x64000040是led灯控制读写信号,第0位和第1位各控制一个led灯,在dsplink例程中dsp端添加如下代码:
#define LED *(uint16_t *)0x64000040
while(1)
{ LED = LED + 1;}
led灯并没有亮,在ccs下是可以亮的,请问原因在哪?我该如何修改呢?谢谢
wei lee1:
回复 Bruce lee31:
请贴出来代码实际添加的位置,是添加到了主函数中还是某个任务中?
bruce lee3:
回复 wei lee1:
代码是添加在tskLoop.c中的,在开头添加头文件及宏定义如下:
#include "types.h" #include "evmomapl138.h"
#define LED *(uint16_t *)0x64000040
在tskLoop.c中的TSKLOOP_execute()函数下添加如下代码:
/*Do processing on this buffer*/
if (status == SYS_OK) {
LED = LED + 1;
}
在arm端作了延时处理,执行./loopgpp loop.out 1024 100,程序可以执行,但led灯并没有反应,led灯一端接3.3v电压,一端接cpld接口I/O7_5,请问是什么原因呢?