在Linux/openwrt等嵌入式系统中在命令行或者脚本中只能实现秒级延时,
比如sleep命令。
可以通过头文件位于unistd.h的usleep函数实现毫秒级延时,再将其封装为
命令即可,
比如 xdelayms 100 #100ms delay
/**
使用xdelayms为linux shell产生毫秒级延时
*/
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
int main(int argc,char*argv[])
{
if(argc != 2){
printf("xdelayms:argc != 2\n");
return -1;
}
usleep(atoi(argv[1]) * 1000);
return 0;
}
执行交叉编译
/home/source/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/bin/arm-openwrt-linux-gcc xdelayms.c -o xdelayms -O2 -w