创龙的GPIO_LED程序。。自己做的138板子。。程序放在SHRAM能正常运行。。但是通过修改CMD文件中Section将程序放在DSPL2RAMSH运行出现问题。。
1.用DSP核和ARM核都不行。。DSP核出现如下问题:debug后程序就runing。。暂停后就如图片一样
2。ARM核时错误相同,不过控制台还出现:
求解答。。卡壳一个月了、。。好人一生平安。
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.
1.2V核电压是稳定的。。另外没有将L2配置成Cache。。代码是修改的创龙的。。自己做的板子没有DDR。。。。将程序放SHDSPL2RAM中运行有什么需要注意的吗?我是直接将所有段都放里面了?
因为放在SHRAM中可以正常运行。。可以说明硬件没问题吗?
代码是没问题的。。放SHRAM都运行起来了。
不是,是在线仿真模式下想确定芯片焊接没问题。。外扩FLASH和RAM都没焊上呢。。那要改到什么模式呢?
还有一块创龙的开发板。。都是能跑起来的。。
停不住。。根本没看到函数指针
焊了两块。。我试试另一块吧。。这几个问题我先确定一下吧。。谢谢你
方便把你的工程贴上来吗,我比较了一下你上面的main.c跟starterware里的GPIO例程差不多,仅仅是IO号不一样。而我用starterware的例子怎么也搞不出这个SWBP来。是不是编译选项哪里不对啊。
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);
GPIOPinWrite(SOC_GPIO_0_REGS, 109, GPIO_PIN_HIGH);
Delay(1000000);
}
}
对。我只是修改了IO口号。。CCS5.5。。怎么把工程贴上去?好像只能截图。。。。TONY哥。。方便加QQ聊吗?
你的工程有点混乱啊。
#1. 下面这些头文件路径对吗?好几个都是无效的,对应的startware目录下有.h文件吗?starterware的头文件都在OMAPL138_StarterWare_1_10_03_03\include下相应的目录下。而且明明这是一个DSP的工程,里面还加了ARM的路径。
#2. 编译有一个warning:
warning #10247-D: creating output section ".far" without a SECTIONS specification
可是你的cmd更乱了,为什么要把ROM, L1, McBSP, uPP, GPIO之类无关的空间放到cmd里面来?你有可能会把代码放到这些空间去吗?显然不会,那么就不要放到cmd里来。因为可能会造成严重问题。下面问题就来了。
**************************************************************************/
MEMORY
{
//#ifdef DSP_CORE
/****************************************************************************/
/* */
/* DSP 专有内存区域 */
/* */
/****************************************************************************/
DSPL2ROM o = 0x00700000 l = 0x00100000 /* 1MB L2 DSP 本地 ROM (DSP ROM Bootloader) */
DSPL2RAM o = 0x00800020 l = 0x00040000 /* 256kB L2 DSP 本地 RAM */
DSPL1PRAM o = 0x00E00000 l = 0x00008000 /* 32kB L1 DSP 本地程序 RAM */
DSPL1DRAM o = 0x00F00000 l = 0x00008000 /* 32kB L1 DSP 本地数据 RAM */
//#endif
/****************************************************************************/
/* */
/* 公共内存区域 */
/* */
/****************************************************************************/
SHDSPL2ROM o = 0x11700000 l = 0x00100000 /* 1MB L2 共享内置 ROM */
SHDSPL2RAM o = 0x11800020 l = 0x00040000 /* 256KB L2 共享内置 RAM */
//SHDSPL2RAM_2 o = 0x11830000 l = 0x00010000 /* 256KB L2 共享内置 RAM */
SHDSPL1PRAM o = 0x11E00000 l = 0x00008000 /* 32KB L1 共享内置程序 RAM */
SHDSPL1DRAM o = 0x11F00000 l = 0x00008000 /* 32KB L1 共享内置数据 RAM */
EMIFACS0 o = 0x40000000 l = 0x20000000 /* 512MB SDRAM (CS0) */
EMIFACS2 o = 0x60000000 l = 0x02000000 /* 32MB 异步 (CS2) */
EMIFACS3 o = 0x62000000 l = 0x02000000 /* 32MB 异步 (CS3) */
EMIFACS4 o = 0x64000000 l = 0x02000000 /* 32MB 异步 (CS4) */
EMIFACS5 o = 0x66000000 l = 0x02000000 /* 32MB 异步 (CS5) */
SHRAM o = 0x80000100 l = 0x00020000 /* 128KB 共享 RAM */
DDR2 o = 0xC0001000 l = 0x08000000 /* 128MB DDR2 分配给 DSP */
//EntryPoint o = 0x00800000 l = 0x00000080 /* 2 KB C 语言入口点 */
Vector o = 0xC0000800 l = 0x00000800 /* 2 KB 中断向量表 */
/****************************************************************************/
/* */
/* 外设内存区域 */
/* */
/****************************************************************************/
SYSCFG0 o = 0x01C14000 l = 0x00001000 /* 4K SYSCFG0 */
uPP o = 0x01E16000 l = 0x00001000 /* 4K uPP */
GPIO o = 0x01E26000 l = 0x00001000 /* 4K GPIO */
McBSP1 o = 0x01D11000 l = 0x00000800 /* 2K McBSP1 */
#ifndef DSP_CORE
/****************************************************************************/
/* */
/* ARM 专有内存区域 */
/* */
/****************************************************************************/
ARMROM o = 0xFFFD0000 l = 0x00010000 /* 64kB ARM 本地 ROM (ARM ROM Bootloader) */
ARMRAM o = 0xFFFF0000 l = 0x00002000 /* 8kB ARM 本地 RAM */
#endif
}
看map文件:上面的waining就是把你没有分配的.far段放到L2ROM去了。因为你没有为.far段指定memory,那么linker就从上面有memory里随便找了一块地方放了,因为linker认为上面提供的memory都是可以用的,当然同时也warning你了。
改了之后,可以正常运行,不过我目前是按coff格式编译的,因为我之前把starterware都按coff重新编译了,elf格式的要重新编译库,明天再试。
确实是乱。。路径确实乱。。我清理一下看看。。真是太感谢了。。。无以为报。tony哥晚安
为啥我编译出来没有.far段?。。。不知道为啥。。清理了还是不行。。我的ELF格式
你这个工程我导不进我的CCS5.5....好像是版本的问题。。。我可以用我的工程编译然后加载时load你给的.out文件吗?这样行吗?
不是要在debug的前提下才能load吗?还有想问下debug后直接跑跟load再跑有啥区别?
是不是我直接新建一个ccxml文件连接下载就行?你这个工程是用DSP核心跑的是吧?