TI中文支持网
TI专业的中文技术问题搜集分享网站

怎样在dsplink的dsp端添加多个c文件

请问怎样在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,请问是什么原因呢?

赞(0)
未经允许不得转载:TI中文支持网 » 怎样在dsplink的dsp端添加多个c文件
分享到: 更多 (0)