TA的每日心情 | 开心 2015-8-12 17:02 |
---|
签到天数: 173 天 连续签到: 1 天 [LV.7]常住居民III
|
板子是TI官方的omap-L138的LCDK板子,双核ARM9+C674X,芯片不了解的可以去查下,这里就不多介绍了。
之前接触过TI的28335芯片,也是跑了几个例程,多DSP开发的理解还不是很清楚,CCS的强大功能也都没有探索过。这次拿到了omap-L138的板子,决心好好深入学学了,不然太对不住双核处理器的强大了。
、 废话不多说了,进入正题。
首先上官网下载了omap-L138的startware软件包,这个和LCDK软件包的区别就在于:LCDK是针对linux下进行开发的,软件包内容很强大,从编译环境,到boot,到烧写工具,到上层高级软件API层,双核直接通讯的syslink等等。需要较强的linux基础才能容易上手。 而startware在我的理解来看,是主要面向window下开发的,可以使用window下的GCC编译工具,也可以使用强大的CCS集成开发环境。我觉得CCS还是容易上手的,但是太智能化了,容易让人忽视开发或编译的原理。比如,有些人用了好久的2812,照着例程编译一遍,改改代码,几个月了还不清楚gel和CMD文件的用处。。。
今天也是跑一个GPIO的例程,然后学习下omap-L138的gel文件。
导入CCS工程文件后,进行目标配置,CCS会根据你选择的器件型号自动插入gel文件(幸运的是配置选项里面居然有omap-L138 LCDK这个板子,正好是我用的这块)
GPIO例程的主程序很简单:
int main(void){
/* The Local PSC number for GPIO is 3. GPIO belongs to PSC1 module.*/
PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON,
PSC_MDCTL_NEXT_ENABLE);
/* Pin Multiplexing of pin 12 of GPIO Bank 6.*/
GPIOBank6Pin12PinMuxSetup();
/* Sets the pin 109 (GP6[12]) as input.*/
GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT);
while(1)
{
GPIOPinWrite(SOC_GPIO_0_REGS, 109, GPIO_PIN_LOW);
//Delay(1000000);
Delay(500000);
GPIOPinWrite(SOC_GPIO_0_REGS, 109, GPIO_PIN_HIGH);
//Delay(1000000);
Delay(500000);
}
}
仔细一看,里面居然没有开始的一系列初始化 工作,用仿真器下载连接后,直接CCS提就会提示:
ARM9_0: Output: Target Connected.
ARM9_0: Output: ---------------------------------------------
ARM9_0: Output: Memory Map Cleared.
ARM9_0: Output: ---------------------------------------------
ARM9_0: Output: Memory Map Setup Complete.
ARM9_0: Output: ---------------------------------------------
ARM9_0: Output: PSC Enable Complete.
ARM9_0: Output: ---------------------------------------------
ARM9_0: Output: PLL0 init done for Core:300MHz, EMIFA:25MHz
ARM9_0: Output: DDR initialization is in progress....
ARM9_0: Output: PLL1 init done for DDR:150MHz
ARM9_0: Output: Using DDR2 settings
ARM9_0: Output: DDR2 init for 150 MHz is done
ARM9_0: Output: ---------------------------------------------
ARM9_0: Output: DSP Wake Complete.
ARM9_0: Output: ---------------------------------------------
原来仿真器连接上后,存储器初始化,PSC使能,PLL0,PLL1,DDR初始化,DSP核的唤醒都已经完成了。。。。
打开GEL文件后看到里面有一段代码:
......
OnTargetConnect( )
{
GEL_TextOut("\tTarget Connected.\n","Output",1,1,1);
GEL_TextOut("\t---------------------------------------------\n","Output",1,1,1);
Clear_Memory_Map();
Setup_Memory_Map();
PSC_All_On();
Core_300MHz_mDDR_150MHz();
Wake_DSP();
}
.......
这段代码前后都有很多define定义和函数,比如可以将ARM和DSP核倍频到不同的频率,如456MHZ,200MHZ,100MHZ等等。
看到这里明白了,算是学习下GEL文件的作用了。
main函数里面就很简单了,GPIO实验,无非就是使能IO所在模块,配置端口方向,然后在while循环中置高、延迟、置低。。
好了,这算是学习的第一课吧。
|
|