手里有一块28379launchpad板,然后在debug的时候可以运行,然后想固化到flash里。
这是CPU1的配置
/*
* 28379_cpu1_main.c
*
* Created on: 2019年1月25日
* Author: Administrator
*/
#include "F28x_Project.h"
#include "F2837xD_device.h"
#include "F2837xD_Examples.h"
void main(void)
{
uint32_t delay,az;
InitSysCtrl();
EALLOW;
// GpioCtrlRegs.GPADIR.bit.GPIO31 = 1;
EDIS;
EALLOW;
GpioCtrlRegs.GPBDIR.bit.GPIO34 = 1;
EDIS;
GPIO_SetupPinOptions(31,GPIO_OUTPUT,GPIO_PUSHPULL);
GPIO_SetupPinMux(31,GPIO_MUX_CPU2,0);
GPIO_SetupPinOptions(34,GPIO_OUTPUT,GPIO_PUSHPULL);
// GpioDataRegs.GPADAT.bit.GPIO31 = 1;
GpioDataRegs.GPBDAT.bit.GPIO34 = 1;
az = 0;
// k = 0;
// for(k=0;k<10;k++){}
for(;;)
{
for(delay=0;delay<2000000;delay++)
{
az++;
}
az = 0;
// GpioDataRegs.GPADAT.bit.GPIO31 = 0;
// for(delay=0;delay<1000000;delay++)
// {}
// GpioDataRegs.GPADAT.bit.GPIO31 = 1;
// for(delay=0;delay<1000000;delay++)
// {}
GpioDataRegs.GPBDAT.bit.GPIO34 = 1;
for(delay=0;delay<2000000;delay++)
{
az++;
}
az = 0;
GpioDataRegs.GPBDAT.bit.GPIO34 = 0;
}
}
发现两个for都没有执行,就是说
GpioDataRegs.GPBDAT.bit.GPIO34 = 1;执行完了以后执行执行GpioDataRegs.GPBDAT.bit.GPIO34 = 0;
这是在flash程序固化以后,直接resume发现的结果。
for没执行到是咋回事。
顺便贴上CPU2的配置
/*
* F28379D_CPU2_MAIN.c
*
* Created on: 2019年1月25日
* Author: Administrator
*/
#include "F28x_Project.h"
#include "F2837xD_device.h"
#include "F2837xD_Examples.h"
void main(void)
{
uint32_t delay1;
InitSysCtrl();
EALLOW;
// GpioCtrlRegs.GPADIR.bit.GPIO31 = 1;
EDIS;
EALLOW;
// GpioCtrlRegs.GPBDIR.bit.GPIO34 = 1;
EDIS;
// GPIO_SetupPinOptions(31,GPIO_OUTPUT,GPIO_PUSHPULL);
// GPIO_SetupPinOptions(34,GPIO_OUTPUT,GPIO_PUSHPULL);
GpioDataRegs.GPADAT.bit.GPIO31 = 1;
// GpioDataRegs.GPBDAT.bit.GPIO34 = 1;
for(;;)
{
for(delay1=0;delay1<1000000;delay1++)
{}
GpioDataRegs.GPADAT.bit.GPIO31 = 0;
for(delay1=0;delay1<1000000;delay1++)
{}
GpioDataRegs.GPADAT.bit.GPIO31 = 1;
}
}
user5228164:IO口的状态确实变了的,我单步执行的时候可以看得出来。
手里有一块28379launchpad板,然后在debug的时候可以运行,然后想固化到flash里。
这是CPU1的配置
/*
* 28379_cpu1_main.c
*
* Created on: 2019年1月25日
* Author: Administrator
*/
#include "F28x_Project.h"
#include "F2837xD_device.h"
#include "F2837xD_Examples.h"
void main(void)
{
uint32_t delay,az;
InitSysCtrl();
EALLOW;
// GpioCtrlRegs.GPADIR.bit.GPIO31 = 1;
EDIS;
EALLOW;
GpioCtrlRegs.GPBDIR.bit.GPIO34 = 1;
EDIS;
GPIO_SetupPinOptions(31,GPIO_OUTPUT,GPIO_PUSHPULL);
GPIO_SetupPinMux(31,GPIO_MUX_CPU2,0);
GPIO_SetupPinOptions(34,GPIO_OUTPUT,GPIO_PUSHPULL);
// GpioDataRegs.GPADAT.bit.GPIO31 = 1;
GpioDataRegs.GPBDAT.bit.GPIO34 = 1;
az = 0;
// k = 0;
// for(k=0;k<10;k++){}
for(;;)
{
for(delay=0;delay<2000000;delay++)
{
az++;
}
az = 0;
// GpioDataRegs.GPADAT.bit.GPIO31 = 0;
// for(delay=0;delay<1000000;delay++)
// {}
// GpioDataRegs.GPADAT.bit.GPIO31 = 1;
// for(delay=0;delay<1000000;delay++)
// {}
GpioDataRegs.GPBDAT.bit.GPIO34 = 1;
for(delay=0;delay<2000000;delay++)
{
az++;
}
az = 0;
GpioDataRegs.GPBDAT.bit.GPIO34 = 0;
}
}
发现两个for都没有执行,就是说
GpioDataRegs.GPBDAT.bit.GPIO34 = 1;执行完了以后执行执行GpioDataRegs.GPBDAT.bit.GPIO34 = 0;
这是在flash程序固化以后,直接resume发现的结果。
for没执行到是咋回事。
顺便贴上CPU2的配置
/*
* F28379D_CPU2_MAIN.c
*
* Created on: 2019年1月25日
* Author: Administrator
*/
#include "F28x_Project.h"
#include "F2837xD_device.h"
#include "F2837xD_Examples.h"
void main(void)
{
uint32_t delay1;
InitSysCtrl();
EALLOW;
// GpioCtrlRegs.GPADIR.bit.GPIO31 = 1;
EDIS;
EALLOW;
// GpioCtrlRegs.GPBDIR.bit.GPIO34 = 1;
EDIS;
// GPIO_SetupPinOptions(31,GPIO_OUTPUT,GPIO_PUSHPULL);
// GPIO_SetupPinOptions(34,GPIO_OUTPUT,GPIO_PUSHPULL);
GpioDataRegs.GPADAT.bit.GPIO31 = 1;
// GpioDataRegs.GPBDAT.bit.GPIO34 = 1;
for(;;)
{
for(delay1=0;delay1<1000000;delay1++)
{}
GpioDataRegs.GPADAT.bit.GPIO31 = 0;
for(delay1=0;delay1<1000000;delay1++)
{}
GpioDataRegs.GPADAT.bit.GPIO31 = 1;
}
}
Susan Yang:
回复 user5228164:
您是如何烧录的呢?使用CCS?
手里有一块28379launchpad板,然后在debug的时候可以运行,然后想固化到flash里。
这是CPU1的配置
/*
* 28379_cpu1_main.c
*
* Created on: 2019年1月25日
* Author: Administrator
*/
#include "F28x_Project.h"
#include "F2837xD_device.h"
#include "F2837xD_Examples.h"
void main(void)
{
uint32_t delay,az;
InitSysCtrl();
EALLOW;
// GpioCtrlRegs.GPADIR.bit.GPIO31 = 1;
EDIS;
EALLOW;
GpioCtrlRegs.GPBDIR.bit.GPIO34 = 1;
EDIS;
GPIO_SetupPinOptions(31,GPIO_OUTPUT,GPIO_PUSHPULL);
GPIO_SetupPinMux(31,GPIO_MUX_CPU2,0);
GPIO_SetupPinOptions(34,GPIO_OUTPUT,GPIO_PUSHPULL);
// GpioDataRegs.GPADAT.bit.GPIO31 = 1;
GpioDataRegs.GPBDAT.bit.GPIO34 = 1;
az = 0;
// k = 0;
// for(k=0;k<10;k++){}
for(;;)
{
for(delay=0;delay<2000000;delay++)
{
az++;
}
az = 0;
// GpioDataRegs.GPADAT.bit.GPIO31 = 0;
// for(delay=0;delay<1000000;delay++)
// {}
// GpioDataRegs.GPADAT.bit.GPIO31 = 1;
// for(delay=0;delay<1000000;delay++)
// {}
GpioDataRegs.GPBDAT.bit.GPIO34 = 1;
for(delay=0;delay<2000000;delay++)
{
az++;
}
az = 0;
GpioDataRegs.GPBDAT.bit.GPIO34 = 0;
}
}
发现两个for都没有执行,就是说
GpioDataRegs.GPBDAT.bit.GPIO34 = 1;执行完了以后执行执行GpioDataRegs.GPBDAT.bit.GPIO34 = 0;
这是在flash程序固化以后,直接resume发现的结果。
for没执行到是咋回事。
顺便贴上CPU2的配置
/*
* F28379D_CPU2_MAIN.c
*
* Created on: 2019年1月25日
* Author: Administrator
*/
#include "F28x_Project.h"
#include "F2837xD_device.h"
#include "F2837xD_Examples.h"
void main(void)
{
uint32_t delay1;
InitSysCtrl();
EALLOW;
// GpioCtrlRegs.GPADIR.bit.GPIO31 = 1;
EDIS;
EALLOW;
// GpioCtrlRegs.GPBDIR.bit.GPIO34 = 1;
EDIS;
// GPIO_SetupPinOptions(31,GPIO_OUTPUT,GPIO_PUSHPULL);
// GPIO_SetupPinOptions(34,GPIO_OUTPUT,GPIO_PUSHPULL);
GpioDataRegs.GPADAT.bit.GPIO31 = 1;
// GpioDataRegs.GPBDAT.bit.GPIO34 = 1;
for(;;)
{
for(delay1=0;delay1<1000000;delay1++)
{}
GpioDataRegs.GPADAT.bit.GPIO31 = 0;
for(delay1=0;delay1<1000000;delay1++)
{}
GpioDataRegs.GPADAT.bit.GPIO31 = 1;
}
}
mangui zhang:
回复 user5228164:
延时有问题所以你在单步的时候带来的延时明显可以看到灯的闪烁如果全速由于切换太快看不到效果
先看看闪烁问题这样先确保程序问题
解决了再看看是不是烧写到flash上电没有加载如果没有加载打开加载搬移到RAM中试试