HOLTEK产品训练课程.ppt
1HOLTEK产品训练课程 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望2CMSIS-1nCortex 单片机软件接口标准单片机软件接口标准lMISRA-C 标准标准nARM,芯片厂商芯片厂商,工具厂商工具厂商nCMSIS 软件结构软件结构l用户应用程序用户应用程序l工具工具&中间件中间件lCMSIS核心外核心外设设访问层访问层(CPAL)中间件访问层中间件访问层(MWAL)外外设设设备访问层设备访问层(DPAL)lMCU 控制控制来源来源:ARM3来源来源:ARMCMSIS-24标准固件库标准固件库-1n范例范例l支持每个外设支持每个外设lHT32F125x DVB 上运行上运行n库库lCMSIS 标准标准l支持所有外设支持所有外设n工程模板工程模板l提供空工程提供空工程IAR EWARMKeil MDK_ARMGNUn公用程序公用程序l用于配置用于配置 HT32F125x DVB范例范例库库工程工程模板模板公用程序公用程序5标准固件库标准固件库-26Keil MDK-ARMRun CKCU System_Clock 范例范例7IAR EWARMRun CKCU System_Clock 范例范例8Keil+GNU CompilerRun CKCU System_Clock 范例范例9库架构库架构应用层应用层API 层层外设层外设层system_ht32f125x.cht32f125x_conf.hmain.cht32f125x_it.hht32f125x_it.cht32f125x.hcore_cm3.hsystem_ht32f125x.hht32f125x_lib.cht32f125x_lib.hht32f125x_periph.hht32f125x_periph.cht32f125x_dvb.hht32f125x_dvb.cht32f125x_board.hPeripheralsCMSISFWLIBUtilitiesUSE_HT32F125X_DRIVERUSE_HT32F1253_DVB10n文件文件lht32f125x.h中断数量中断数量,类型类型,寄存器寄存器,映射映射,调试应用程序等调试应用程序等还包括还包括 core_cm3.h(NVIC,SysTick 等等),system_ht32f125x.h 和和 ht32f125x_lib.h(外设外设)lht32f125x_periph.c 和和 ht32f125x_periph.hht32f125x_conf.h:#define _Periph,#define _Periph_x(通道通道)和和#define HT32F_LIB_DEBUGlstartup_ht32f125x.s堆栈大小和堆大小堆栈大小和堆大小lsystem_ht32f125x.c 和和 system_ht32f125x.h(CMSIS 层层)system_ht32f125x.c:配置系统时钟配置系统时钟lcore_cm3.h,core_cmFunc.h,core_cmInstr(CMSIS 层层)lUtility 文件文件支持板上元件支持板上元件,SPI Flash,I2C EEPROM 等等 使用固件库使用固件库-111Keil 配置向导配置向导使用固件库使用固件库-212n初始化外设初始化外设l声明声明 Periph_InitTypeDef 结构结构CKCU_PLLInitTypeDef PLLInitStruct;l设定结构参数的数值设定结构参数的数值PLLInitStruct.CFG =CKCU_PLL_8M_144M;PLLInitStruct.ClockSource=CKCU_PLLSRC_HSE;PLLInitStruct.BYPASSCmd=DISABLE;l通过调用通过调用 Periph_Init()初始化特定的外设初始化特定的外设CKCU_PLLInit(&PLLInitStruct);l通过调用通过调用 Periph_Cmd()开启特定的外设开启特定的外设CKCU_PLLCmd(ENABLE);使用固件库使用固件库-313n初始化之前开启时钟初始化之前开启时钟lCKCU_APBPerip0ClockConfig(CKCU_APBPx,ENABLE);lCKCU_APBPerip1ClockConfig(CKCU_APBPx,ENABLE);n设置外设寄存器复位值设置外设寄存器复位值lPeriph_DeInit(),e.g:CKCU_DeInit();使用固件库使用固件库-414固件库指南固件库指南15谢谢!谢谢!