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.

TMS320F28379D: 程序烧写到主芯片的flash中,断电上电后,程序不能自己运行问题。

Part Number: TMS320F28379D

根据手册,boot引脚GPIO72和GPIO84为高电平,程序烧写到主芯片的flash中,断电上电后,程序才能自己运行。

但是我硬件没有引出GPIO84引脚,不能将其配置为高电平了,引出了GPIO72,GPIO73,GPIO74引脚,请问怎样更改配置才能通过其它引脚代替GPIO84引脚功能,实现断电上电后,程序自己运行。

  • 是不是可以通过更改BOOTCTRL寄存器,配置启动引脚,请问BOOTCTRL是在那个文件中更改的。

  • 选择debug configureations ->target->flash settings->Z1-BOOTCTRL(0x7801E)(32bits)

    将该寄存器值烧写为48490B5A,就可以配置成,GPIO72,GPIO73高电平,flash自启动了吧。

  • 谢谢,程序已经可以启动了,但是出现了个新问题。

    我们dsp伺服控制程序,通过仿真器debug模式全部功能可以正常工作,但是release模式烧写进flash,上电启动后,传感器数据都能采集正确,发送控制命令伺服没有响应(就是有部分功能不能使用了),请问可能是什么原因,需要什么办法才能解决。

    有部分代码是在cla中编写的,包括部分数据采集代码和控制代码,是否可能有部分代码功能有没正常运行。

  • 主要我的GPIO72,GPIO73,GPIO74直接连接到了fpga上,没有上拉电阻之类的东西,靠fpga给这几个引脚高电平和复位信号启动的dsp。

  • 并且我们在程序里也增加了把cla程序加载到flash里的代码,cla里有部分数据采集代码,这部分代码采集的数据也是正常的。

    extern uint32_t Cla1funcsRunStart, Cla1funcsLoadStart, Cla1funcsLoadSize;
    extern uint32_t CLA1mathTablesRunStart, CLA1mathTablesLoadStart, CLA1mathTablesLoadSize;

    EALLOW;

    #ifdef _FLASH
    // Copy over code from FLASH to RAM
    memcpy((uint32_t *)&Cla1funcsRunStart, (uint32_t *)&Cla1funcsLoadStart,
    (uint32_t)&Cla1funcsLoadSize);
    #ifndef CLA_MATH_TABLES_IN_ROM
    memcpy((uint32_t *)&CLA1mathTablesRunStart, (uint32_t *)&CLA1mathTablesLoadStart,
    (uint32_t)&CLA1mathTablesLoadSize);
    #endif //CLA_MATH_TABLES_IN_ROM

    #endif //_FLASH