This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F28377D: 使用C2000 Ware的例程,修改代码后保存,build project后为什么会自动恢复为修改前的代码?

Part Number: TMS320F28377D
Other Parts Discussed in Thread: C2000WARE

CCS10 28377D 我导入 C:\ti\c2000\C2000Ware_3_04_00_00\driverlib\f2837xd\examples\cpu1\can中的工程:can_ex1_loopback ,该函数是使用了CANB,我想修改为使用CANA,于是在board.c 中将

void PinMux_init()
{
//CANB -> myCAN0 Pinmux
GPIO_setPinConfig(GPIO_10_CANRXB);
GPIO_setPinConfig(GPIO_12_CANTXB);

}

修改为

void PinMux_init()
{
//CANB -> myCAN0 Pinmux
GPIO_setPinConfig(GPIO_4_CANTXA);
GPIO_setPinConfig(GPIO_5_CANRXA);

}

并将board.h中#define myCAN0_BASE CANB_BASE 修改为#define myCAN0_BASE CANA_BASE

control+s保存修改,点击工程build project后,我再打开这两个文件,发现代码自动变为修改前的,下到板子上观察现象 也与修改前一样。

  • control+s保存修改,点击工程build project后,我再打开这两个文件,发现代码自动变为修改前的

    确实是很奇怪。我来测试一下后给您回复

  • 修改引脚的话,您需要修改

    GPIO_setPinConfig(DEVICE_GPIO_CFG_CANRXA);
    GPIO_setPinConfig(DEVICE_GPIO_CFG_CANTXA);

    内的引脚,它们是定义在device.h内的

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    //
    // CAN External Loopback
    //
    #define DEVICE_GPIO_CFG_CANRXA GPIO_30_CANRXA // "pinConfig" for CANA RX
    #define DEVICE_GPIO_CFG_CANTXA GPIO_31_CANTXA // "pinConfig" for CANA TX
    #define DEVICE_GPIO_CFG_CANRXB GPIO_10_CANRXB // "pinConfig" for CANB RX
    #define DEVICE_GPIO_CFG_CANTXB GPIO_8_CANTXB // "pinConfig" for CANB TX
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    引脚的说明是在pinmap.h

  • 没解决问题。我发现只有 工程目录\CPU1_RAM\syscfg 中的这两个文件 board.c和board.h 中的任何代码,修改保存,build project后都会自动恢复原样。工程下其他文件可以正常修改。或许是工程属性配置的问题?我这个例程从C2000 Ware copy过来还没修改过工程属性。

  • 工程目录\CPU1_RAM\syscfg 中的这两个文件

    我使用您给出的 C:\ti\c2000\C2000Ware_3_04_00_00\driverlib\f2837xd\examples\cpu1\can 例程

    在其工程目录内是没有syscfg 这个文件夹的

  • 刚导入工程的时候,CPU1_RAM文件夹下什么也没有。build project后该文件夹下才出现一些文件和新的文件夹,包括syscfg

  • 请给出您的CCS内工程目录截图

  • 不过只有CAN 的第一个例程出现这种现象,它使用了其他例程没用的 Board_init();函数。我看把这个函数换成其他例程相应位置的代码得了。

  • 您是使用下面的方式添加的syscfg

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/910829/faq-how-do-i-add-sysconfig-support-pinmux-and-peripheral-initialization-to-an-existing-driverlib-project/3366090?tisearch=e2e-sitesearch&keymatch=C2000%2525252520%2525252520syscfg#3366090 

    我直接导入例程的话,是没有syscfg的

    若是使用syscfg的话,您可以在工程内的syscfg文件内进行修改