This commit is contained in:
2026-04-23 10:50:18 +08:00
commit a436fda935
844 changed files with 272643 additions and 0 deletions

View File

@ -0,0 +1,96 @@
/*
*********************************************************************************************************
*
* ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : <20><><EFBFBD>ݹ۲<DDB9><DBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(DWT)ģ<><C4A3>
* <09>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> : bsp_dwt.c
*********************************************************************************************************
*/
#include "bsp.h"
/*
*********************************************************************************************************
* <20>Ĵ<EFBFBD><C4B4><EFBFBD>
*********************************************************************************************************
*/
#define DWT_CYCCNT *(volatile unsigned int *)0xE0001004
#define DWT_CR *(volatile unsigned int *)0xE0001000
#define DEM_CR *(volatile unsigned int *)0xE000EDFC
#define DBGMCU_CR *(volatile unsigned int *)0xE0042004
#define DEM_CR_TRCENA (1 << 24)
#define DWT_CR_CYCCNTENA (1 << 0)
/*
*********************************************************************************************************
* <09><> <20><> <20><>: bsp_InitDWT
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><>ʼ<EFBFBD><CABC>DWT. <20>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD> bsp_Init() <20><><EFBFBD>á<EFBFBD>
* <09><> <20><>: <20><>
* <09><> <20><> ֵ: <20><>
*********************************************************************************************************
*/
void bsp_InitDWT(void)
{
DEM_CR |= (unsigned int)DEM_CR_TRCENA; /* Enable Cortex-M4's DWT CYCCNT reg. */
DWT_CYCCNT = (unsigned int)0u;
DWT_CR |= (unsigned int)DWT_CR_CYCCNTENA;
}
/*
*********************************************************************************************************
* <09><> <20><> <20><>: bsp_DelayUS
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>CPU<50><55><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>֣<EFBFBD>32λ<32><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* OSSchedLock(&err);
* bsp_DelayUS(5);
* OSSchedUnlock(&err); <20><><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>Ҫ<EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
* <09><> <20><>: _ulDelayTime <20>ӳٳ<D3B3><D9B3>ȣ<EFBFBD><C8A3><EFBFBD>λ1 us
* <09><> <20><> ֵ: <20><>
*********************************************************************************************************
*/
void bsp_DelayUS(uint32_t _ulDelayTime)
{
uint32_t tCnt, tDelayCnt;
uint32_t tStart;
tStart = DWT_CYCCNT; /* <20>ս<EFBFBD><D5BD><EFBFBD>ʱ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>ֵ */
tCnt = 0;
tDelayCnt = _ulDelayTime * (SystemCoreClock / 1000000); /* <20><>Ҫ<EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD><EFBFBD> */
while(tCnt < tDelayCnt)
{
tCnt = DWT_CYCCNT - tStart; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>32λ<32><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD> */
}
}
/*
*********************************************************************************************************
* <09><> <20><> <20><>: bsp_DelayMS
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: Ϊ<><CEAA><EFBFBD>õײ<C3B5><D7B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>RTOS<4F><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><D0B8>õļ<C3B5><C4BC><EFBFBD><EFBFBD><EFBFBD>
* ר<><D7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD>ӳٺ<D3B3><D9BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵײ<DAB5><D7B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ms<6D><73><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ڳ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӱ<EFBFBD><D3B0>ʵʱ<CAB5>ԡ<EFBFBD>
* <09><> <20><>: n <20>ӳٳ<D3B3><D9B3>ȣ<EFBFBD><C8A3><EFBFBD>λ1 ms
* <09><> <20><> ֵ: <20><>
*********************************************************************************************************
*/
void bsp_DelayMS(uint32_t _ulDelayTime)
{
bsp_DelayUS(1000*_ulDelayTime);
}
void bsp_DelayDWT(uint32_t _ulDelayTime)
{
uint32_t tCnt, tDelayCnt;
uint32_t tStart;
tCnt = 0;
tDelayCnt = _ulDelayTime; /* <20><>Ҫ<EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD><EFBFBD> */
tStart = DWT_CYCCNT; /* <20>ս<EFBFBD><D5BD><EFBFBD>ʱ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>ֵ */
while(tCnt < tDelayCnt)
{
tCnt = DWT_CYCCNT - tStart; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>32λ<32><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD> */
}
}
/***************************** END OF FILE *********************************/

View File

@ -0,0 +1,27 @@
/*
*********************************************************************************************************
*
* ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : <20><><EFBFBD>ݹ۲<DDB9><DBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(DWT)ģ<><C4A3>
* <09>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> : bsp_dwt.h
* <09><> <20><> : V1.0
* ˵ <20><> : ͷ<>ļ<EFBFBD>
* <09>޸ļ<DEB8>¼ :
* <09><EFBFBD><E6B1BE> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ˵<><CBB5>
* V1.0 2015-08-18 Eric2013 <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
*
* Copyright (C), 2015-2020, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> www.armfly.com
*
*********************************************************************************************************
*/
#ifndef __BSP_DWT_H
#define __BSP_DWT_H
#include "bsp.h"
void bsp_InitDWT(void);
void bsp_DelayDWT(uint32_t _ulDelayTime);
void bsp_DelayUS(uint32_t _ulDelayTime);
void bsp_DelayMS(uint32_t _ulDelayTime);
#endif
/***************************** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> www.armfly.com (END OF FILE) *********************************/