请教。。28377D SYSBIOS,能在线DEBUG,不能离线运行。
代码如下:
Void taskLED(UArg a0, UArg a1)
{
for(;;)
{
GpioDataRegs.GPATOGGLE.bit.GPIO0 = 1;
Task_sleep(1000);
GpioDataRegs.GPATOGGLE.bit.GPIO1 = 1;
Task_sleep(1000);
}
}
Int main()
{ Task_Handle task;
Error_Block eb;
Task_Params taskParams;
//系统初始化
InitPeripheralClocks();
//GPIO配置
Gpio_select();
//TASK配置
Task_Params_init(&taskParams);
taskParams.priority = 8;
task = Task_create(taskLED, &taskParams, &eb);
if (task == NULL) {
BIOS_exit(0);
}
BIOS_start(); /* does not return */
return(0);
}
包含有F2837xD_Headers_BIOS_cpu1.cmd及TMS320F28377D.cmd
连接CPU1 load program 能断点调试LED闪烁正常。
断电后再上电,程序不运行。
谢谢。。。
Seven Han:
请问您使用的cmd文件是基于flash的吗?
请教。。28377D SYSBIOS,能在线DEBUG,不能离线运行。
代码如下:
Void taskLED(UArg a0, UArg a1)
{
for(;;)
{
GpioDataRegs.GPATOGGLE.bit.GPIO0 = 1;
Task_sleep(1000);
GpioDataRegs.GPATOGGLE.bit.GPIO1 = 1;
Task_sleep(1000);
}
}
Int main()
{ Task_Handle task;
Error_Block eb;
Task_Params taskParams;
//系统初始化
InitPeripheralClocks();
//GPIO配置
Gpio_select();
//TASK配置
Task_Params_init(&taskParams);
taskParams.priority = 8;
task = Task_create(taskLED, &taskParams, &eb);
if (task == NULL) {
BIOS_exit(0);
}
BIOS_start(); /* does not return */
return(0);
}
包含有F2837xD_Headers_BIOS_cpu1.cmd及TMS320F28377D.cmd
连接CPU1 load program 能断点调试LED闪烁正常。
断电后再上电,程序不运行。
谢谢。。。
kun han:
回复 Seven Han:
CMD是基于Flash的
/* * ======== TMS320F28377D.cmd ======== * Define the memory block start/length for the F28377D */
MEMORY{PAGE 0 : /* Program Memory */ /* BEGIN is used for the "boot to FLASH" bootloader mode */
D01SARAM : origin = 0x00B000, length = 0x001000
/* Flash boot address */ BEGIN : origin = 0x080000, length = 0x000002
/* Flash sectors */ FLASHA : origin = 0x080002, length = 0x001FFE /* on-chip Flash */ FLASHB : origin = 0x082000, length = 0x002000 /* on-chip Flash */ FLASHC : origin = 0x084000, length = 0x002000 /* on-chip Flash */ FLASHD : origin = 0x086000, length = 0x002000 /* on-chip Flash */ FLASHE : origin = 0x088000, length = 0x008000 /* on-chip Flash */ FLASHF : origin = 0x090000, length = 0x008000 /* on-chip Flash */ FLASHG : origin = 0x098000, length = 0x008000 /* on-chip Flash */ FLASHH : origin = 0x0A0000, length = 0x008000 /* on-chip Flash */ FLASHI : origin = 0x0A8000, length = 0x008000 /* on-chip Flash */ FLASHJ : origin = 0x0B0000, length = 0x008000 /* on-chip Flash */ FLASHK : origin = 0x0B8000, length = 0x002000 /* on-chip Flash */ FLASHL : origin = 0x0BA000, length = 0x002000 /* on-chip Flash */ FLASHM : origin = 0x0BC000, length = 0x002000 /* on-chip Flash */ FLASHN : origin = 0x0BE000, length = 0x002000 /* on-chip Flash */ RESET : origin = 0x3FFFC0, length = 0x000002
PAGE 1 : /* Data Memory */
BOOT_RSVD : origin = 0x000002, length = 0x000120 /* Part of M0, BOOT rom will use this for stack */
M01SARAM : origin = 0x000122, length = 0x0006DE /* on-chip RAM */
LS05SARAM : origin = 0x008000, length = 0x003000 /* on-chip RAM */
/* on-chip Global shared RAMs */ RAMGS0 : origin = 0x00C000, length = 0x001000 RAMGS1 : origin = 0x00D000, length = 0x001000 RAMGS2 : origin = 0x00E000, length = 0x001000 RAMGS3 : origin = 0x00F000, length = 0x001000 RAMGS4 : origin = 0x010000, length = 0x001000 RAMGS5 : origin = 0x011000, length = 0x001000 RAMGS6 : origin = 0x012000, length = 0x001000 RAMGS7 : origin = 0x013000, length = 0x001000 RAMGS8 : origin = 0x014000, length = 0x001000 RAMGS9 : origin = 0x015000, length = 0x001000 RAMGS10 : origin = 0x016000, length = 0x001000 RAMGS11 : origin = 0x017000, length = 0x001000 RAMGS12 : origin = 0x018000, length = 0x001000 RAMGS13 : origin = 0x019000, length = 0x001000 RAMGS14 : origin = 0x01A000, length = 0x001000 RAMGS15 : origin = 0x01B000, length = 0x001000
/* Shared MessageRam */ CPU2TOCPU1RAM : origin = 0x03F800, length = 0x000400 CPU1TOCPU2RAM : origin = 0x03FC00, length = 0x000400}
SECTIONS{ /* Allocate program areas: */ .cinit : > FLASHA | FLASHB | FLASHC | FLASHD | FLASHE | FLASHF | FLASHG | FLASHH | FLASHI | FLASHJ | FLASHK | FLASHL | FLASHM | FLASHN PAGE = 0 .binit : > FLASHA | FLASHB | FLASHC | FLASHD | FLASHE | FLASHF | FLASHG | FLASHH | FLASHI | FLASHJ | FLASHK | FLASHL | FLASHM | FLASHN PAGE = 0 .pinit : > FLASHA | FLASHB | FLASHC | FLASHD | FLASHE | FLASHF | FLASHG | FLASHH | FLASHI | FLASHJ | FLASHK | FLASHL | FLASHM | FLASHN PAGE = 0 .text : > FLASHA | FLASHB | FLASHC | FLASHD | FLASHE | FLASHF | FLASHG | FLASHH | FLASHI | FLASHJ | FLASHK | FLASHL | FLASHM | FLASHN PAGE = 0 codestart : > BEGIN PAGE = 0 ramfuncs : LOAD = FLASHA | FLASHB | FLASHC | FLASHD | FLASHE | FLASHF | FLASHG | FLASHH | FLASHI | FLASHJ | FLASHK | FLASHL | FLASHM | FLASHN PAGE = 0 RUN = LS05SARAM PAGE = 1 LOAD_START(_RamfuncsLoadStart), LOAD_SIZE(_RamfuncsLoadSize), LOAD_END(_RamfuncsLoadEnd), RUN_START(_RamfuncsRunStart), RUN_SIZE(_RamfuncsRunSize), RUN_END(_RamfuncsRunEnd)
#ifdef __TI_COMPILER_VERSION__#if __TI_COMPILER_VERSION__ >= 15009000 .TI.ramfunc : {} LOAD = FLASHA | FLASHB | FLASHC | FLASHD | FLASHE | FLASHF | FLASHG | FLASHH | FLASHI | FLASHJ | FLASHK | FLASHL | FLASHM | FLASHN PAGE = 0, RUN = LS05SARAM PAGE = 1, table(BINIT)#endif#endif
/* Allocate uninitalized data sections: */ .stack : > M01SARAM | LS05SARAM PAGE = 1 .ebss : > M01SARAM | LS05SARAM PAGE = 1 .esysmem : > LS05SARAM | M01SARAM PAGE = 1 .cio : > LS05SARAM | M01SARAM PAGE = 1
/* Initalized sections go in Flash */ .econst : > FLASHA | FLASHB | FLASHC | FLASHD | FLASHE | FLASHF | FLASHG | FLASHH | FLASHI | FLASHJ | FLASHK | FLASHL | FLASHM | FLASHN PAGE = 0 .switch : > FLASHA | FLASHB | FLASHC | FLASHD | FLASHE | FLASHF | FLASHG | FLASHH | FLASHI | FLASHJ | FLASHK | FLASHL | FLASHM | FLASHN PAGE = 0 .args : > FLASHA | FLASHB | FLASHC | FLASHD | FLASHE | FLASHF | FLASHG | FLASHH | FLASHI | FLASHJ | FLASHK | FLASHL | FLASHM | FLASHN PAGE = 0
Filter_RegsFile : > RAMGS0 | RAMGS1 | RAMGS2 | RAMGS3 | RAMGS4 | RAMGS5 | RAMGS6 | RAMGS7 | RAMGS8 | RAMGS9 | RAMGS10 | RAMGS11 | RAMGS12 | RAMGS13 | RAMGS14 | RAMGS15 PAGE = 1
/* The following section definitions are required when using the IPC API Drivers */ GROUP : > CPU1TOCPU2RAM, PAGE = 1 { PUTBUFFER PUTWRITEIDX GETREADIDX }
GROUP : > CPU2TOCPU1RAM, PAGE = 1 { GETBUFFER : TYPE = DSECT GETWRITEIDX : TYPE = DSECT PUTREADIDX : TYPE = DSECT }}
请教。。28377D SYSBIOS,能在线DEBUG,不能离线运行。
代码如下:
Void taskLED(UArg a0, UArg a1)
{
for(;;)
{
GpioDataRegs.GPATOGGLE.bit.GPIO0 = 1;
Task_sleep(1000);
GpioDataRegs.GPATOGGLE.bit.GPIO1 = 1;
Task_sleep(1000);
}
}
Int main()
{ Task_Handle task;
Error_Block eb;
Task_Params taskParams;
//系统初始化
InitPeripheralClocks();
//GPIO配置
Gpio_select();
//TASK配置
Task_Params_init(&taskParams);
taskParams.priority = 8;
task = Task_create(taskLED, &taskParams, &eb);
if (task == NULL) {
BIOS_exit(0);
}
BIOS_start(); /* does not return */
return(0);
}
包含有F2837xD_Headers_BIOS_cpu1.cmd及TMS320F28377D.cmd
连接CPU1 load program 能断点调试LED闪烁正常。
断电后再上电,程序不运行。
谢谢。。。
Seven Han:
回复 kun han:
boot mode模式选择正确吗?
拔掉仿真器后复位一下。
请教。。28377D SYSBIOS,能在线DEBUG,不能离线运行。
代码如下:
Void taskLED(UArg a0, UArg a1)
{
for(;;)
{
GpioDataRegs.GPATOGGLE.bit.GPIO0 = 1;
Task_sleep(1000);
GpioDataRegs.GPATOGGLE.bit.GPIO1 = 1;
Task_sleep(1000);
}
}
Int main()
{ Task_Handle task;
Error_Block eb;
Task_Params taskParams;
//系统初始化
InitPeripheralClocks();
//GPIO配置
Gpio_select();
//TASK配置
Task_Params_init(&taskParams);
taskParams.priority = 8;
task = Task_create(taskLED, &taskParams, &eb);
if (task == NULL) {
BIOS_exit(0);
}
BIOS_start(); /* does not return */
return(0);
}
包含有F2837xD_Headers_BIOS_cpu1.cmd及TMS320F28377D.cmd
连接CPU1 load program 能断点调试LED闪烁正常。
断电后再上电,程序不运行。
谢谢。。。
kun han:
回复 Seven Han:
boot mode模式选择正确。
controlsuite双核例程F2837xD_v210,blinky_dc CPU1烧FLASH_STANDALONE,CPU2烧FLASH,离线CPU1和CPU2都可以运行。
就SYSBIOS不能离线运行
请教。。28377D SYSBIOS,能在线DEBUG,不能离线运行。
代码如下:
Void taskLED(UArg a0, UArg a1)
{
for(;;)
{
GpioDataRegs.GPATOGGLE.bit.GPIO0 = 1;
Task_sleep(1000);
GpioDataRegs.GPATOGGLE.bit.GPIO1 = 1;
Task_sleep(1000);
}
}
Int main()
{ Task_Handle task;
Error_Block eb;
Task_Params taskParams;
//系统初始化
InitPeripheralClocks();
//GPIO配置
Gpio_select();
//TASK配置
Task_Params_init(&taskParams);
taskParams.priority = 8;
task = Task_create(taskLED, &taskParams, &eb);
if (task == NULL) {
BIOS_exit(0);
}
BIOS_start(); /* does not return */
return(0);
}
包含有F2837xD_Headers_BIOS_cpu1.cmd及TMS320F28377D.cmd
连接CPU1 load program 能断点调试LED闪烁正常。
断电后再上电,程序不运行。
谢谢。。。
kun han:
回复 kun han:
改用uCOS-II。。。
请教。。28377D SYSBIOS,能在线DEBUG,不能离线运行。
代码如下:
Void taskLED(UArg a0, UArg a1)
{
for(;;)
{
GpioDataRegs.GPATOGGLE.bit.GPIO0 = 1;
Task_sleep(1000);
GpioDataRegs.GPATOGGLE.bit.GPIO1 = 1;
Task_sleep(1000);
}
}
Int main()
{ Task_Handle task;
Error_Block eb;
Task_Params taskParams;
//系统初始化
InitPeripheralClocks();
//GPIO配置
Gpio_select();
//TASK配置
Task_Params_init(&taskParams);
taskParams.priority = 8;
task = Task_create(taskLED, &taskParams, &eb);
if (task == NULL) {
BIOS_exit(0);
}
BIOS_start(); /* does not return */
return(0);
}
包含有F2837xD_Headers_BIOS_cpu1.cmd及TMS320F28377D.cmd
连接CPU1 load program 能断点调试LED闪烁正常。
断电后再上电,程序不运行。
谢谢。。。
ren ar:
回复 kun han:
楼主问题怎么解决了,我碰到同样的问题了。怀疑boot有问题,仿真状态,reset cpu不能运行;restart就可以到main正常运行