jiffies存放
固然书本上讲明jiffies是jiffies_64的低32位,但是我还是自己测试了下,重点在于链接脚本的写法。
此处只是为了测试,因此简化链接脚本。
/* link.lds */
1 ENTRY(_start) jiffies = jiffies_64; SECTIONS
{ . = 0x0; . = ALIGN();
.text :
{
test.o (.text)
*(.text)
} . = ALIGN();
.rodata : { *(.rodata) } . = ALIGN();
.data : { *(.data) } . = ALIGN();
.got : { *(.got) } . = ALIGN();
__bss_start = .;
.bss : { *(.bss) }
_end = .;
}
#Makefile
1 CROPROSS_COMPILER = arm-none-linux-gnueabi-
LD := ${CROPROSS_COMPILER}ld
AS := ${CROPROSS_COMPILER}as
GCC := ${CROPROSS_COMPILER}gcc mytest: test.o main.o
${LD} -T link.lds $^ -o $@ test.o: test.S
${AS} $^ -o $@ main.o : main.c
${GCC} -c $^ -o $@ .PHONY: clean clean:
@rm -f -r mytest test.o main.o
#test.S
1 .text
.global _start
_start:
b 1f
:
mov r0, r0
:
mov r0, r0
:
mov r0, r0
:
b main
//main.c
1 unsigned long long jiffies_64 = - * ; extern int jiffies; int main(void)
{ jiffies_64 += ;
jiffies += ; return ;
}
#反汇编,省略了一部分
1 <_start>:
: b <_start+0x4>
: nop
: nop
c: nop
: b <main> <main>: 1c: ldr r3, [pc, #] ; 取jiffies_64地址 : ldm r3, {r1, r2}
: mov r3, # ; 0x1 ; jiffies_64低位加1
: mov r4, # ; 0x0 ; jiffies_64高位加0
2c: adds r3, r3, r1
: adc r4, r4, r2
: ldr r2, [pc, #] ; 取jiffies_64地址
: stm r2, {r3, r4} ; 将jiffies_64 + 存入jiffies_64 3c: ldr r3, [pc, #] ; 取jiffies地址 : ldr r3, [r3]
: add r2, r3, # ; jiffies低位加3
: ldr r3, [pc, #] ; 取jiffies地址
4c: str r2, [r3] ; 将jiffies + 存入jiffies : .word 0x00000070 ; jiffies_64地址
: .word 0x00000070 ; jiffies地址
Disassembly of section .data: <jiffies>:
: .word 0xfffedb08
: .word 0xffffffff
jiffies存放的更多相关文章
- jiffies和HZ
全局变量jiffies用来记录自系统启动以来产生的节拍的总数.启动时,内核将该变量初始化为0,此后,每次时钟中断处理程序都会增加该变量的值.一秒内时钟中断的次数等于Hz,所以jiffies一秒内增加的 ...
- linux定时器HZ和Jiffies
1.linux HZ Linux核心几个重要跟时间有关的名词或变数,以下将介绍HZ.tick与jiffies. HZ Linux核心每隔固定周期会发出timer interrupt (IRQ 0),H ...
- 对linux内核中jiffies+Hz表示一秒钟的理解
jiffies在内核中是一个全局变量,它用来统计系统启动以来系统中产生的总节拍数,这个变量定义在include/linux/jiffies.h中,定义形式如下. unsigned long volat ...
- Linux内核jiffies简介
在LINUX的时钟中断中涉及至二个全局变量一个是xtime,它是timeval数据结构变量,另一个则是jiffies,首先看timeval结构struct timeval{time_t tv_sec; ...
- Linux内核中的jiffies及其作用介绍及jiffies等相关函数详解
在LINUX的时钟中断中涉及至二个全局变量一个是xtime,它是timeval数据结构变量,另一个则是jiffies,首先看timeval结构struct timeval{time_t tv_sec; ...
- HZ与Jiffies
2.4 内核定时器 内核中许多部分的工作都高度依赖于时间信息.Linux内核利用硬件提供的不同的定时器以支持忙等待或睡眠等待等时间相关的服务.忙等待时,CPU 会不断运转.但是睡眠等待时,进程将放弃C ...
- (五)对linux内核中jiffies+Hz表示一秒钟的理解
jiffies在内核中是一个全局变量,它用来统计系统启动以来系统中产生的总节拍数,这个变量定义在include/Linux/jiffies.h中,定义形式如下. unsigned long volat ...
- adjtimex和时钟的几个概念tick,freq,ppm,jiffies
adjtimex使用 今天遇到一个ntp的同步问题.服务器上配置好了ntpd,在启动前也手动进行过同步,但是过段时间ntpq查询发现服务器即便能选出同步服务器,但是系统的时间偏差越来越大. 服务器上实 ...
- linux驱动之jiffies的理解
本文主要借鉴了http://blog.csdn.net/allen6268198/article/details/7270194,非常感谢该网友的分享. 在LINUX的时钟中断中涉及至二个全局变量一个 ...
随机推荐
- 基于jQuery8款超赞的评分插件
基于jquery8款超赞的评分插件.这是一款基于jquery.barrating插件实现的,该评级小部件可灵活设置CSS样式.具体效果请查看演示.效果图如下: 在线预览 源码下载 实现的代码. h ...
- VMWare: eth0: error fetching interface information : device not found
VMWare: eth0: error fetching interface information : device not found 今天在VMware上新搭建的Redhat Linux 64 ...
- Don’t Put View Code Into Your View Controller别把View创建的代码放在VC中(swift)
Don't Put Into Your View Controller别把View创建的代码放在VC中html, body {overflow-x: initial !important;}.Code ...
- PostgreSQL存储过程<转>
原创文章,转载请务必将下面这段话置于文章开头处(保留超链接).本文转发自Jason’s Blog,原文链接 http://www.jasongj.com/2015/12/27/SQL4_存储过程_St ...
- Access restriction: The method typeNameToClass(String) from the type ObjectHandler is not accessible due to restriction on required library
异常: Access restriction: The method typeNameToClass(String) from the type ObjectHandler is not access ...
- CSS(九):设置盒子水平垂直居中
通过设置下面的样式可以使盒子水平垂直居中: <!DOCTYPE html> <html lang="en"> <head> <meta c ...
- SpringBoot2 JPA No Identifier specified for entity的解决办法
No Identifier specified for entity的错误 此类注解都在 import javax.persistence.*;包下 @Id @GeneratedVal ...
- linux Nginx服务开机自启
linux Nginx服务开机自启 Nginx 是一个很强大的高性能Web和反向代理服务器.虽然使用命令行可以对nginx进行各种操作,比如启动等,但是还是根据不太方便.下面介绍在linux下安装后, ...
- 谷歌draco
前不久,谷歌开源的Draco关于点云的编码与压缩的源码,Draco 由谷歌 Chrome 媒体团队设计,旨在大幅加速 3D 数据的编码.传输和解码.因为研发团队的 Chrome 背景,这个开源算法的首 ...
- python datetime unix时间戳以及字符串时间戳转换
将python的datetime转换为unix时间戳 import time import datetime dtime = datetime.datetime.now() ans_time = ti ...