MPC5744P(二)工程模板代码解析

MPC5744P(二)工程模板代码解析
哈喽各位小伙伴上一篇带着大家从零创建了简易工程模板项目框架已经搭建完毕啦。为了让大家对整体的工程有个大致了解今天对整个工程模板做一个大致的讲解。一src文件夹文件结构及主要内容系统文件结构如下复位与启动配置flashrchw.c系统时钟与模式初始化mode_entry.c中断系统初始化MPC57xx_Interrupt_Init.c、Vector.c中断服务与向量分发intc_SW_handlers.S、intc_SW_mode_isr_vectors_MPC5744P.c外设与应用代码main.c、peripherals/文件夹下的外设驱动片上外设文件结构就是添加片上外设驱动的.c和.h文件目前还没开始写就只有一个adc.c这个后续也会重新写文件如下图二主函数先进行初始化调用了下面这几个函数。xcptn_xmpl()是中断初始化代码的入口会配置 IVPR/IVOR、开启中断控制器是中断系统初始化的总入口。在后续文章中将单独写一个章节对中断进行讲解peri_clock_gating();开启外设时钟门控让 ADC 等外设获得时钟信号system160mhz();系统时钟配置通过 PLL 配置系统时钟为 160MHz配置分频器和工作模式。时钟配置详见下一章节。关于外设时钟门控的配置并不复杂就相当于每多添加一个片上外设的时候就得给这个外设开一扇门门打开才能接收到系统传输过来的时钟信号但是系统的时钟信号是如何传输过来的需要另行配置。例如我现在要使用ADC1外设那么我应该将MC_ME_PCTL126寄存器与RUN_PC[1]配置到一起查看手册MC_ME_PCTL126寄存器将MC_ME_PCTL126的RUN_CFG位配置位001就选择了RUN_PC[1]的配置代码如下void peri_clock_gating (void) { MC_ME.RUN_PC[0].R 0x00000000; /* gate off clock for all RUN modes */ MC_ME.RUN_PC[1].R 0x000000FE; /* enable peri clock for all RUN modes*/ /* Note: RUN_PC0 is default cfg for PCTLs*/ MC_ME.PCTL126.R 0X00000001; }当然新添一个外设模块没这么省事还需要在时钟配置里配置时钟时钟选择、时钟频率等这里只是讲一下时钟门的配置。初始化完了就执行主循环里的代码了。下一章节开始讲MPC5744P的时钟配置。