asp.net 网站开发视频,网站开发方向和移动开发方向那个好,专业做图表的网站,加盟招商网站建设iTOP-4412开发板【精英版】搭载三星Exynos四核处理器#xff0c;配备1GB内存#xff0c;4GB固态硬盘EMMC存储#xff0c;兼具快速读取与大容量#xff0c;纵使海量思考也能及时处理。配备三星S5M8767电源管理。配备Android、LinuxQt、Ubuntu操作系统#xff0c;开启学习、…iTOP-4412开发板【精英版】搭载三星Exynos四核处理器配备1GB内存4GB固态硬盘EMMC存储兼具快速读取与大容量纵使海量思考也能及时处理。配备三星S5M8767电源管理。配备Android、LinuxQt、Ubuntu操作系统开启学习、研发的全新方式。Exynos4412开发板处理器成功应用于三星GALAXYS3联想K860魅族MX2等热门产品当中并取得巨大成功。功耗控制以及强劲的性能一直为业内称道超过5000万片的出货量足以证明其稳定性与可用性。已成为三星官方推广的处理器之一并承诺长期供货。 第二十一章 延时函数专题
本章介绍的延时函数使用起来非常简单但是却会经常用到的所以单独作为一个专题来介绍。
除了介绍系统编程中的延时函数还会介绍到内核中的延时函数它们的使用方法多是类似的在驱动专题中大家可以使用本章就不提供具体的例子了只介绍函数调用。
本章配套视频为
“视频 12_01 延时之基本知识介绍”
“视频 12_02 延时之延时实验
21.1 Linux 中的延时函数介绍
这里要注意的是不同的操作系统下延时函数是不一样的由具体系统决定的。Linux 中常用的函数有以下函数 sleep、usleep、ndelay、udelay、mdelay 等。
Linux 系统编程下用到的延时函数在头文件“#include unistd.h”中包括函数sleep、usleep。
Linux 内核中用到的延时函数在“#include linux/delay.h”中包括函数 ndelay、udelay、mdelay。
函数 sleep
函数 sleep 是秒延时。函数原型如下
unsigned int sleep(unsigned int seconds);
例如sleep(1),即延时一秒。
返回无符号的整形数值如果延时成功则返回 0如果延时过程中被打断则返回剩余的秒数。
例如 sleep(5),返回值为 3那么实际延时就是 5-32 秒。
函数 usleep
函数 usleep 是微妙延时。函数原型如下
int usleep(useconds_t usec);
useconds 需要小于 1000000
例如usleep(10),表示延时 10 微秒。
延时成功则返回 0失败则返回-1
函数 delay 系列
函数 delay 系列是在 Linux 内核中用的也就是在 linux 驱动中会用到。函数 mdelay 是毫秒延时函数原型如下
void mdelay(unsigned long msecs);
例如mdelay(10),表示延时 10 毫秒。 函数 udelay 是微秒延时函数原型如下
void udelay(unsigned long usecs);
例如udelay(5),表示延时 5 微秒。 函数 ndelay 是纳秒延时函数原型如下
void ndelay(unsigned long nsecs)
例如ndelay(3),表示延时 3 纳秒。 再提醒一下这里的 delay 函数只是在内核中使用的sleep 是在系统编程中使用的。要注意区分。
21.2 Linux应用中的延时实验
本实验先介绍简单的延时应用在学习了后面时间管理之后再对这些延时函数的进度进行测试虽然函数看起来类似但是实现的原理不一样精度不同导致应用的场合也会不同。
函数代码
linux 系统编程中使用的是 sleep 和 usleep 函数。编写简单的 sleep.c 文件测试 sleep 函数。
首先添加头文件如下图所示。 然后 main 函数如下图所示。 如上图代码所示。
使用 sleep 和 usleep 函数分别延时 2 秒和 1 秒然后循环打印信息。
编译运行测试
在 Ubuntu 系统下如下图所示进入前面实验创建的目录“/home/linuxsystemcode/”使用命令“mkdir sleep”新建 sleep 文件夹将源码sleep.c 拷贝进去。
进入新建的文件夹 sleep如下图所示。 使用命令“arm-none-linux-gnueabi-gcc -o sleep sleep.c -static”编译 sleep 文件 如下图所示使用命令“ls”可以看到生成了 sleep 可执行文件。 这里介绍 U 盘拷贝代码的方法也可以编译进文件系统具体方法参考 10.3.5 小节。将编译成的可执行文件 sleep拷贝到 U 盘启动开发板插入 U 盘加载 U 盘运行程序如下。 如上图所示运行之后会打印“sleep 2!”和“usleep 1000000!”。退出可以使用键盘输入“Ctrlc”
21.3 Linux内核驱动中的延时
Linux 内核中使用 delay 系列函数在后面驱动的学习中再去测试 delay 函数用起来比较简单。
先要调用头文件“#include linux/delay.h”,然后就可以使用 delay 系列的函数在驱动做做延时操作了。
常用的地方例如在驱动对硬件进行初始化的时候例如芯片有上电时序那么这个时候就需要用到延时函数直接调用 delay 即可。