F28377D双核开发经验(调试及烧录)

目录

1、使用仿真器调试

2、 烧录程序至FLASH离线运行


       以CCS9.2为例,本文针对F28377D介绍了使用仿真器调试和烧录程序至FLASH离线运行的具体操作方法以及本人踩过的坑。

1、使用仿真器调试

第一步:点击菜单栏小锤子旁边的倒三角,选择debug选项。

图1 选择debug选项

 第二步:当第一步选择为debug时,软件会自动选择cmd文件夹中的2837xD_RAM_Ink_cpu1.cmd文件作为编译文件,同时2837xD_FLASH_Ink_cpu1.cmd文件Exclude from Build(文件变灰)。如果没有自动选择,右键文件,找到Exclude from Build选项,手动选择cmd文件。

图2 选则正确cmd文件
图3 手动选择正确的cmd文件

第三步:点击小锤子编译工程,分别编译cpu1和cpu2的工程,编译完成以后点击小虫子按钮进入调试界面,注意要正确连接下载器。

图4 进入调试界面

第四步:进入调试界面的时候会自动连接cpu,同时自动下载程序,此时只需要点击运行按钮即可。若中途不小心断开连接,则点击连接按钮,连接到cpu,如图5所示。然后点击下载按钮选择cpu对应的程序下载即可。注意:cpu1和cpu2的程序不同,需要分别下载,只需点击对应的cpu,然后点击下载按钮选择对应的程序即可,如图6所示。

图5 连接cpu
图6 下载程序

第五步:运行程序,进行调试。可以设置断点、单步运行等等。

2、 烧录程序至FLASH离线运行

        大部分时候需要将程序烧录至FLSAH中离线运行,接下来介绍如何分别烧录cpu1和cpu2的程序,实现离线运行。

       cpu1工程烧录模式有三种:RAM、FLASH、FLASH_STANDALONE。其中RAM为调试时使用的模式,FLASH和FLASH_STANDALONE模式都可以离线脱机运行,区别在于FLASH模式不能由cpu1启动cpu2,而FLASH_STANDALONE可以由cpu1通过IPC启动cpu2。若为双核程序,cpu1必须使用FLASH_STANDALONE模式。cpu2工程烧录模式有两种:RAM、FLASH。

      若点击小锤子旁边倒三角没有FLASH和FLASH_STANDALONE模式,则需要手动添加。添加步骤为:右击工程→最下面找到属性→General选项→Manage Configurations中添加new。见图七、图八和图九。

图7 添加FLASH、FLASH_STANDALONE

图8 添加FLASH、FLASH_STANDALONE
图9 添加FLASH、FLASH_STANDALONE

           然后需要在工程属性→C2000 Compiler→Predefined Symbols中添加预定义符号,只需添加一次,后面选择不同的烧录模式时会自动选择对应的预定义符号。图十为cpu1的预定义符号,图十一为cpu2的预定义符号。

图10 cpu1预定义符号
图11 cpu2预定义符号

在做完上述步骤以后还需要在主程序里面增添如下代码:

cpu1代码:

     //添加在main函数里面  
     #ifdef _STANDALONE
    #ifdef _FLASH
    IPCBootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_FLASH);
    #else
    IPCBootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_RAM);
    #endif
    #endif

    #ifdef _FLASH
       InitFlash();
    #endif

cpu2代码:

//main函数外面的代码
#ifdef _FLASH
//
// These are defined by the linker (see device linker command file)
//
extern Uint16 RamfuncsLoadStart;
extern Uint16 RamfuncsLoadSize;
extern Uint16 RamfuncsRunStart;
#endif

//main函数里面的代码
    #ifdef _FLASH
      memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);
    #endif

    InitSysCtrl();      //初始化系统,锁相环,看门狗,外设时钟

    #ifdef _FLASH
       InitFlash();
    #endif

        其他步骤同使用仿真器在线调试一样。注意:在下载完程序以后不要点击运行,要退出调试界面,然后断开仿真器,重新给开发板上电,程序就从FLASH里面开始运行。特别注意:GPIO72和GPIO84决定了F28377D的BOOT MODE,在上电的一瞬间要确保这两个引脚为高电平,否则无法引导从FLASH里面开始运行程序。同时要注意拔掉仿真器,因为仿真器连接的话TRST会拉高,无法进入BOOT MODE,芯片就会进入仿真模式。如图12所示。

图12  BOOT MODE引脚定义

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值