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的时钟中断中涉及至二个全局变量一个 ...
随机推荐
- 【转】 oracle 层次查询判断叶子和根节点
Oracle 9i判断是叶子或根节点,是比较麻烦的一件事情,SQL演示脚本如下: DROP TABLE idb_hierarchical; create TABLE idb_hierarchical ...
- MongoDB不支持批量插入
mongodb的结构与关系型数据库不同,它类似树状结构,可以很方便对每个分支进行操作,但它没有像mysql那样insert(value.value.value...)那样的语法,也不支持transac ...
- C语言 · 校门外的树
算法提高 校门外的树 时间限制:1.0s 内存限制:256.0MB 问题描述 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米.我们可以把马路看成一个数轴,马路的 ...
- python 调用 shell 命令
记录 python 调用 shell 命令的方法 加载 os 模块, 使用 os 类 import os; os.system("ls /");
- Android——selector背景选择器的使用详解(二)
在开发应用中,很多情况下要设计listview或button控件的背景,下面总结一下android的selector的用法:1.在drawable中配置Android的selector.将如下的XML ...
- Django添加防跨站请求伪造中间件
第一步: 在全局设置中打开此中间件: MIDDLEWARE_CLASSES = [ ... 'django.middleware.csrf.CsrfViewMiddleware', ... ] ...
- es 剩余磁盘空间达到es最小值,添加数据被block
剩余磁盘空间达到es最小值,添加数据被block PUT _all/_settings {"index.blocks.read_only_allow_delete": null} ...
- PCL点云分割(1)
点云分割是根据空间,几何和纹理等特征对点云进行划分,使得同一划分内的点云拥有相似的特征,点云的有效分割往往是许多应用的前提,例如逆向工作,CAD领域对零件的不同扫描表面进行分割,然后才能更好的进行空洞 ...
- .gitignore不生效解决办法
.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的.那么解决方法就是先把本地缓存删除(改变成未track状态),然后再提 ...
- 小程序文件上传uploadFile
前台代码: bindPhoto(e) { var that = this; wx.chooseImage({ count: 1, sizeType: ['original','compressed'] ...