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的时钟中断中涉及至二个全局变量一个 ...
随机推荐
- MFC工程说明readme
======================================================================== MICROSOFT FOUNDATION CLASS ...
- Mysql注入绕过姿势
1.内联绕过 2.编码绕过,如URLEncode编码,ASCII,HEX,unicode编码绕过 or 1=1即%6f%72%20%31%3d%31,而Test也可以为CHAR(101)+CHAR(9 ...
- php去除字符串中的HTML标签
php自带的函数可以去除/删除字符串中的HTML标签/代码. strip_tags(string,allow):函数剥去 HTML.XML 以及 PHP 的标签. 参数:string,必填,规定要检查 ...
- 在dos下查看memcache运行状态
在dos命令行下查看memcache运行状态,操作很简单,只需cmd下输入:telnet IP 端口号->stats ,如果本机器不支持telnet还需安装,可以百度telnet的安装方法. ...
- [Issue]Ubuntu 16.04 ssh: sign_and_send_pubkey: signing failed: agent refused operation
解决:https://askubuntu.com/questions/762541/ubuntu-16-04-ssh-sign-and-send-pubkey-signing-failed-agent ...
- setTimeout()和setInterval()的区别
JS学习 - setTimeout()和setInterval()的区别 相同点 setTimeout 和 setInterval的语法相同.他们都有两个参数,一个是将要执行的代码字符串,还有一个是以 ...
- Android NDK: Application targets deprecated ABI(s): armeabi Open File
Error:(81) Android NDK: Application targets deprecated ABI(s): armeabi Error:(82) Android NDK: Suppo ...
- Sword websocket分析一
什么是WebSocket WebSocket是一个允许Web应用程序(通常指浏览器)与服务器进行双向通信的协议. HTML5的WebSocket API主要是为浏览器端提供了一个基于TCP协议实现全双 ...
- 10、QT分析之WebKit
该文章整理自 网易博客 http://blog.163.com/net_worm/blog/static/12770241920101831312381/ 转载请注明出处 WebKit是QT4新整合的 ...
- Android Service和Binder、AIDL
1.首先理解service的作用和生命周期 由于activity如果切换,那么他就不再运行,那么我们想在玩游戏的时候听播放器中的音乐,activity就应运而生了,这是最常见的一种场景,同时servi ...