收藏0 举报
#define BSP_MODULE #include <bsp.h> CPU_INT32U BSP_CPU_ClkFreq_MHz; static void BSP_LED_Init (void); static void BSP_StatusInit (void); #define DWT_CR *(CPU_REG32 *)0xE0001000 #define DWT_CYCCNT *(CPU_REG32 *)0xE0001004 #define DEM_CR *(CPU_REG32 *)0xE000EDFC #define DBGMCU_CR *(CPU_REG32 *)0xE0042004 #define DBGMCU_CR_TRACE_IOEN_MASK 0x10 #define DBGMCU_CR_TRACE_MODE_ASYNC 0x00 #define DBGMCU_CR_TRACE_MODE_SYNC_01 0x40 #define DBGMCU_CR_TRACE_MODE_SYNC_02 0x80 #define DBGMCU_CR_TRACE_MODE_SYNC_04 0xC0 #define DBGMCU_CR_TRACE_MODE_MASK 0xC0 #define DEM_CR_TRCENA (1 << 24) #define DWT_CR_CYCCNTENA (1 << 0) void BSP_Init (void) { LED_Init(); } CPU_INT32U BSP_CPU_ClkFreq (void) { RCC_ClocksTypeDef rcc_clocks; RCC_GetClocksFreq(&rcc_clocks); return ((CPU_INT32U)rcc_clocks.HCLK_Frequency); } #if ((APP_CFG_PROBE_OS_PLUGIN_EN == DEF_ENABLED) && \ (OS_PROBE_HOOKS_EN == 1)) void OSProbe_TmrInit (void) { } #endif #if ((APP_CFG_PROBE_OS_PLUGIN_EN == DEF_ENABLED) && \ (OS_PROBE_HOOKS_EN == 1)) CPU_INT32U OSProbe_TmrRd (void) { return ((CPU_INT32U)DWT_CYCCNT); } #endif #if (CPU_CFG_TS_TMR_EN == DEF_ENABLED) void CPU_TS_TmrInit (void) { CPU_INT32U cpu_clk_freq_hz; DEM_CR |= (CPU_INT32U)DEM_CR_TRCENA; DWT_CYCCNT = (CPU_INT32U)0u; DWT_CR |= (CPU_INT32U)DWT_CR_CYCCNTENA; cpu_clk_freq_hz = BSP_CPU_ClkFreq(); CPU_TS_TmrFreqSet(cpu_clk_freq_hz); } #endif #if (CPU_CFG_TS_TMR_EN == DEF_ENABLED) CPU_TS_TMR CPU_TS_TmrRd (void) { return ((CPU_TS_TMR)DWT_CYCCNT); } #endif
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
54
1310
5
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注电源系统设计
扫码关注21ic项目外包
扫码浏览21ic手机版
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才
京公网安备 11010802024343号