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

TMS320F28377D: 请问如何设置syscfg所生成代码的初始化顺序

Part Number:TMS320F28377D

在syscfg里配置好模块功能后,它会自动生成如下的初始化代码,我的问题是如何调整这些初始化代码的顺序?比如,我希望先初始化GPIO,再初始化EPWM。

void Board_init()
{
	EALLOW;

	PinMux_init();
	INPUTXBAR_init();
	SYNC_init();
	ADC_init();
	CAN_init();
	CPUTIMER_init();
	EPWM_init();
	GPIO_init();
	SCI_init();
	SPI_init();
	WATCHDOG_init();
	XINT_init();
	INTERRUPT_init();

	EDIS;
}

Yale Li:

生成代码的顺序是不能设置的,你可以在帖出来的这个函数中手动修改。但有些功能的配置可能会与配置的顺序相关,修改的时候需要多加注意。

,

HWAN XU:

不行,每次编译syscfg都会自动重新生成代码,把我的修改覆盖掉

,

Yale Li:

我试了一下,确实是这样。

为什么需要改变初始化的顺序?

,

HWAN XU:

为了安全啊,上电第一时间先把IO初始化到安全状态,然后再初始化EPWM,确保EPWM不会错误输出(即便EPWM有非预期的输出,也会因为IO事先让外部驱动芯片处于输出未使能的安全状态)

,

HWAN XU:

 给你们看一下ST家的配置软件,它是可以选择初始化顺序的

,

Yale Li:

HWAN XU 说: 给你们看一下ST家的配置软件,它是可以选择初始化顺序的

这个我反馈一下。

HWAN XU 说:为了安全啊,上电第一时间先把IO初始化到安全状态,然后再初始化EPWM,确保EPWM不会错误输出(即便EPWM有非预期的输出,也会因为IO事先让外部驱动芯片处于输出未使能的安全状态)

如果是EPWM的话,这点可以保证,不会有错误输出。因为在初始化EPWM前,会关闭EPWM的外设时钟,配置完成后再使能,这个操作一般是在main函数中进行的,重新编译不会覆盖,你还可以把所有的初始化都完成后,再使能外设时钟。

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F28377D: 请问如何设置syscfg所生成代码的初始化顺序
分享到: 更多 (0)