嵌入式开发者社区

标题: 第一个程序:LED控制程序调试失败 [打印本页]

作者: chunnynee    时间: 2022-8-15 08:58
标题: 第一个程序:LED控制程序调试失败
本帖最后由 chunnynee 于 2022-8-15 11:16 编辑

创龙工程师,你好!
公司采购了665x(DSP6655)的开发板进行研究,用于后期的项目。根据贵司的视频,依葫芦画瓢写了个LED点亮熄灭的程序,while循环中分别是熄灭和点亮语句,并且分别对这两个语句设置断点,期望在进入Debug实现对三个User LED的手动控制。

目前结果:顺利连接目标,通过Resume实现在上述两个语句中来回跳转,但D7 LED常亮,D3和D5常灭。

环境:Windows11 Pro(64) + CCS5.5 + XDS200,未安装任何其他组件
目标配置:设备选择了TI XDS2xx USB Emulator开发板已经设置成No Boot模式。

Main.c如下:
int main(void)
{
        *(volatile unsigned int *)(0x02620038) = 0x83E70813;        *(volatile unsigned int *)(0x0262003C) = 0x95A4F1E0;


        *(volatile unsigned int *)(0x02620580) |= (1 << 27) |
                                                                                          (1 << 26) |
                                                                                          (1 << 23) |
                                                                                          (1 << 22) |
                                                                                          (1 << 19);


        *(volatile unsigned int *)(0x02320000 + 0x10) &= ~((1 << 27) |
                                                                                                          (1 << 26) |
                                                                                                          (1 << 23) |
                                                                                                          (1 << 22) |
                                                                                                          (1 << 19));


        while(1)
        {




                *(volatile unsigned int *)(0x02320000 + 0x18) |= (1 << 27) |
                                                                                             (1 << 26) |
                                                                                                (1 << 23) |
                                                                                             (1 << 22) |
                                                                                                  (1 << 19);


                *(volatile unsigned int *)(0x02320000 + 0x1C) |= (1 << 27) |
                                                                                              (1 << 26) |
                                                                                              (1 << 23) |
                                                                                                (1 << 22) |
                                                                                                 (1 << 19);
        }
        return 0;
}


cmd文件内容如下
-stack        0x1000
-heap        0x1000

MEMORY
{
        MSMCRAM o = 0xC000000 l = 0x00100000

}

SECTIONS
{
        .text                > MSMCRAM
        .cinit                > MSMCRAM
        .const                > MSMCRAM
        .swtich                > MSMCRAM
        .stack                > MSMCRAM
        .fardata        > MSMCRAM
        .cio                > MSMCRAM
}





作者: 创龙科技support    时间: 2022-8-15 11:20
您好,从您的代码来看,需要确认如下两点内容:
1.属于同一个运算的代码,换行需要在后面添加换行符\。
2.GPIO的循环赋值操作请添加延时。
可参考我司的LED案例写法。
[attach]7067[/attach]
作者: chunnynee    时间: 2022-8-15 11:48
查了手册,KICK0的应该写入0x83e70b13,修改后可以手动控制LED。
作者: chunnynee    时间: 2022-8-15 11:51
仔细查看了手册,KICK0的正确值应该是0x83e70b13,调整后可以手动控制LED亮灭,谢谢
作者: chunnynee    时间: 2022-8-15 12:09
查阅手册,KICK0的正确值应该是0x83e70b13,修改后,可以控制LED亮灭。关闭该问题。




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4