TI中文支持网
TI专业的中文技术问题搜集分享网站

F28379D双核程序调试问题

在使用controlsuit里面的controlSUITE\device_support\F2837xD\v210\F2837xD_examples_Dual\blinky_dc文件夹里面的例程,把CPU1和CPU2都导入了,build后选定CPU1的那个工程,点击Debug,然后在下面弹窗时全都勾选上了,烧录… …

在cpu1那个程序中,我为了让CPU1来控制启动CPU2,就添加了一个宏定义,启用了IPCBootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_RAM)这个函数

然后cpu2借鉴C28x_Microcontroller_ODW_2-0.pdf中的步骤给烧进去cpu2配套的程序了

但这时选定cpu1,run起来后卡到这里了:

bootStatus的值为0,也就是说CPU2并没有被CPU1给控制启动了,这个为什么会卡到这里呢?到底应该如何做才能让CPU1控制启动CPU2呢,而不是采用C28x_Microcontroller_ODW_2-0.pdf里面的方式,分别启动CPU。

Susan Yang:您现在是在线调试?

若是要debug, 烧写CPU1 FALSH DEBUG或者RAM DEBUG,CPU2烧写两个都可以,但是不能离线跑

若是断电正常运行的话,CPU1烧写standalone,CPU2烧写FLASH

在使用controlsuit里面的controlSUITE\device_support\F2837xD\v210\F2837xD_examples_Dual\blinky_dc文件夹里面的例程,把CPU1和CPU2都导入了,build后选定CPU1的那个工程,点击Debug,然后在下面弹窗时全都勾选上了,烧录… …

在cpu1那个程序中,我为了让CPU1来控制启动CPU2,就添加了一个宏定义,启用了IPCBootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_RAM)这个函数

然后cpu2借鉴C28x_Microcontroller_ODW_2-0.pdf中的步骤给烧进去cpu2配套的程序了

但这时选定cpu1,run起来后卡到这里了:

bootStatus的值为0,也就是说CPU2并没有被CPU1给控制启动了,这个为什么会卡到这里呢?到底应该如何做才能让CPU1控制启动CPU2呢,而不是采用C28x_Microcontroller_ODW_2-0.pdf里面的方式,分别启动CPU。

Zhiying Tian:

回复 Susan Yang:

我在尝试CPU2烧写FLASH,烧写方式与CPU1一样,但出现一个新的问题,CPU2的程序编译无误,可以烧写到RAM内在CPU2中正常跑通,但改烧写到FLASH时,出现以下错误,里面有一行是“No core matches the pattern 'CPU1'”,这个错误是出在什么地方呢?

C28xx_CPU2: Error occurred during flash operation: No core matches the pattern 'CPU1'C28xx_CPU2: Error setting the GSxMSEL register for Flash operationsC28xx_CPU2: Error occurred during flash operation: Timed out waiting for target to halt while executing wr_pll.algC28xx_CPU2: Error writing the PLL values (Flash algorithm timed out). Operation cancelled.C28xx_CPU2: Perform a debugger reset and execute the Boot-ROM code (click on the RESUME button in CCS debug window) before erasing/loading the Flash. If that does not help to perform a successful Flash erase/load, check the Reset cause (RESC) register, NMI shadow flag (NMISHDFLG) register and the Boot-ROM status register for further debug.C28xx_CPU2: Error occurred during flash operation: No core matches the pattern 'CPU1'C28xx_CPU2: File Loader: Memory write failed: Unknown errorC28xx_CPU2: GEL: File: D:\ProgramData\Workspace\Workspace_CCS_v8_0\Lab1_cpu02_testFLASH\Debug\Lab1_cpu02_testFLASH.out: Load failed.C28xx_CPU2: Error occurred during flash operation: No core matches the pattern 'CPU1'C28xx_CPU2: Error setting the GSxMSEL register for Flash operations

在使用controlsuit里面的controlSUITE\device_support\F2837xD\v210\F2837xD_examples_Dual\blinky_dc文件夹里面的例程,把CPU1和CPU2都导入了,build后选定CPU1的那个工程,点击Debug,然后在下面弹窗时全都勾选上了,烧录… …

在cpu1那个程序中,我为了让CPU1来控制启动CPU2,就添加了一个宏定义,启用了IPCBootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_RAM)这个函数

然后cpu2借鉴C28x_Microcontroller_ODW_2-0.pdf中的步骤给烧进去cpu2配套的程序了

但这时选定cpu1,run起来后卡到这里了:

bootStatus的值为0,也就是说CPU2并没有被CPU1给控制启动了,这个为什么会卡到这里呢?到底应该如何做才能让CPU1控制启动CPU2呢,而不是采用C28x_Microcontroller_ODW_2-0.pdf里面的方式,分别启动CPU。

Zhiying Tian:

回复 Susan Yang:

CPU2经过配置已经成功烧写FLASH了,不过无法通过CPU1控制启动CPU2,下图是我的CPU1和CPU2的程序source code:

CPU1:

CPU2:

下图是我在CPU2中烧写FLASH程序时的FLASH擦除情况,请问,我这些source code和debug配置都正确么?我这样烧写是不能正常让CPU1和CPU2正常工作起来的,更别提CPU1通过IPCBootCPU2函数控制CPU2启动了。我需要怎么才能让CPU1控制启动CPU2并且两个核都能正常工作呢?下面的在往CPU2中烧写FLASH时擦除全区会不会对CPU1内的程序有影响呢?

在使用controlsuit里面的controlSUITE\device_support\F2837xD\v210\F2837xD_examples_Dual\blinky_dc文件夹里面的例程,把CPU1和CPU2都导入了,build后选定CPU1的那个工程,点击Debug,然后在下面弹窗时全都勾选上了,烧录… …

在cpu1那个程序中,我为了让CPU1来控制启动CPU2,就添加了一个宏定义,启用了IPCBootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_RAM)这个函数

然后cpu2借鉴C28x_Microcontroller_ODW_2-0.pdf中的步骤给烧进去cpu2配套的程序了

但这时选定cpu1,run起来后卡到这里了:

bootStatus的值为0,也就是说CPU2并没有被CPU1给控制启动了,这个为什么会卡到这里呢?到底应该如何做才能让CPU1控制启动CPU2呢,而不是采用C28x_Microcontroller_ODW_2-0.pdf里面的方式,分别启动CPU。

Zhiying Tian:

回复 Eric Ma:

感谢您的指导,我已经顺利完成双核的脱机工作了,这是我写的一篇博客记录下来了
blog.csdn.net/…/84328254

在使用controlsuit里面的controlSUITE\device_support\F2837xD\v210\F2837xD_examples_Dual\blinky_dc文件夹里面的例程,把CPU1和CPU2都导入了,build后选定CPU1的那个工程,点击Debug,然后在下面弹窗时全都勾选上了,烧录… …

在cpu1那个程序中,我为了让CPU1来控制启动CPU2,就添加了一个宏定义,启用了IPCBootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_RAM)这个函数

然后cpu2借鉴C28x_Microcontroller_ODW_2-0.pdf中的步骤给烧进去cpu2配套的程序了

但这时选定cpu1,run起来后卡到这里了:

bootStatus的值为0,也就是说CPU2并没有被CPU1给控制启动了,这个为什么会卡到这里呢?到底应该如何做才能让CPU1控制启动CPU2呢,而不是采用C28x_Microcontroller_ODW_2-0.pdf里面的方式,分别启动CPU。

user5317501:

回复 Zhiying Tian:

您好,我们这边也在用28379做双核的项目,我想请教您一些问题

在您给的博文中您比较详细的介绍了双核烧着程序的过程,不过您使用的是Ti给例程。

我们现在两个核的工程都分别建立好了,之前都是设置的CPU1的工程。各自跑和编译都没有问题,现在走想把一个工程放到CPU2里面,里面的properies还是CPU1 RAM  和CPU1FLASH

我们要实现工程移植到CPU2里需要修改那些内容,或者怎样修改。谢谢您!希望您能不吝赐教

赞(0)
未经允许不得转载:TI中文支持网 » F28379D双核程序调试问题
分享到: 更多 (0)