创建并移植K10 BSP包的具体步骤和方法(二)
0000000UL
/*在时钟配置0中的系统OSC 外部参考时钟 */
手工书写代码相对繁琐,更方便的方法是使用Freescale的Processor Expert 工具,根据硬件的需要来设置时钟,生成的如下的代码。通过PE工具来对CPU和各种外设进行设置,只需了解它的原理和用法,而不用把精力花在了解寄存器的具体细节上。打开PE后,参照图7的配置进行设置,点击Project-》Generator Processor Expert Code即可生成代码。记住重新修改配置后需要点击Project-》Clean,清掉上次生成的代码,然后再执行生成代码的操作。
void __pe_initialize_hardware(void)
{
_bsp_watchdog_disable();
/* 关闭 WDOG 模块 */
WDOG_UNLOCK = WDOG_UNLOCK_WDOGUNLOCK(0xC520);
WDOG_UNLOCK = WDOG_UNLOCK_WDOGUNLOCK(0xD928);
WDOG_STCTRLH = WDOG_STCTRLH_STNDBYEN_MASK | WDOG_STCTRLH_WAITEN_MASK | WDOG_STCTRLH_STOPEN_MASK | WDOG_STCTRLH_ALLOWUPDATE_MASK | WDOG_STCTRLH_CLKSRC_MASK;
/* 系统时钟初始化 */
/* SIM_SCGC5: PORTA=1 */
SIM_SCGC5 |= SIM_SCGC5_PORTA_MASK
SIM_CLKdiv1 = SIM_CLKdiv1_OUTdiv2(0x01) | SIM_CLKdiv1_OUTdiv3(0x03) |
SIM_CLKdiv1_OUTdiv4(0x03); /* 更新系统预分频器 */
SIM_SOPT1 = (uint32_t)~(uint32_t)(SIM_SOPT1_OSC32KSEL_MASK);
PORTA_PCR18 = (uint32_t)~(uint32_t)((PORT_PCR_ISF_MASK | PORT_PCR_MUX(0x07)));
PORTA_PCR19 = (uint32_t)~(uint32_t)((PORT_PCR_ISF_MASK | PORT_PCR_MUX(0x07)));
/*切换到FBE 模式*/
OSC_CR = OSC_CR_ERCLKEN_MASK;
SIM_SOPT2 = (uint32_t)~(uint32_t)(SIM_SOPT2_MCGCLKSEL_MASK);
MCG_C2 = (MCG_C2_RANGE(0x02) | MCG_C2_EREFS_MASK);
MCG_C1 = (MCG_C1_CLKS(0x02) | MCG_C1_FRdiv(0x05) | MCG_C1_IRCLKEN_MASK);
MCG_C4 = (uint8_t)~(uint8_t)((MCG_C4_DMX32_MASK | MCG_C4_DRST_DRS(0x03)));
MCG_C5 = MCG_C5_PRdiv(0x07);
MCG_C6 = MCG_C6_Vdiv(0x08);
while((MCG_S MCG_S_OSCINIT_MASK) == 0x00U) { /*判断晶振是否运行?*/
}
- 基于TLV1562的四通道高速实时数据采集系统的设计(01-09)
- 基于 TI TLK10002的 SERDES FIFO 溢出的解决方案(08-26)
- 基于TLK10002的 SERDES FIFO 溢出解决方案(08-29)
- 一种因光纤漂移引起SERDES FIFO溢出的解决方案(08-26)
- 创建并移植K10 BSP包的具体步骤和方法(五)(09-30)
- 创建并移植K10 BSP包的具体步骤和方法(四)(09-30)