diff options
| author | chunyexixiaoyu <[email protected]> | 2021-06-10 18:37:14 +0800 |
|---|---|---|
| committer | chunyexixiaoyu <[email protected]> | 2021-06-11 10:02:24 +0800 |
| commit | 4e545551201fa301cc238a898e07021f970735d9 (patch) | |
| tree | 624e82b5f32bf7728d679a68556e35a418c6d234 | |
| parent | ed402ec25c1a6ec486a9b5470728c00085acd6a5 (diff) | |
/bsp/k210:add delay us function in board.c ,when using posix interface ,rt_hw_us_delay this function will be called in unistd.c file
| -rw-r--r-- | bsp/k210/driver/board.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/bsp/k210/driver/board.c b/bsp/k210/driver/board.c index 3343da0fb7..d9c9279dca 100644 --- a/bsp/k210/driver/board.c +++ b/bsp/k210/driver/board.c @@ -1,10 +1,11 @@ /* - * Copyright (c) 2006-2018, RT-Thread Development Team + * Copyright (c) 2006-2021, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes + *2021-06-10 xiaoyu implement rt_hw_us_delay() */ #include <rthw.h> @@ -117,3 +118,19 @@ void rt_hw_cpu_reset(void) } MSH_CMD_EXPORT_ALIAS(rt_hw_cpu_reset, reboot, reset machine); + +/** + * This function will delay for some us. + * + * @param us the delay time of us + */ +void rt_hw_us_delay(rt_uint32_t usec) +{ + rt_uint32_t cycle = read_cycle(); + rt_uint32_t nop_all = usec * sysctl_clock_get_freq(SYSCTL_CLOCK_CPU) / 1000000UL; + while (1) + { + if(read_cycle() - cycle >= nop_all) + break; + } +} |
