博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jiffies存放
阅读量:6224 次
发布时间:2019-06-21

本文共 2323 字,大约阅读时间需要 7 分钟。

固然书本上讲明jiffies是jiffies_64的低32位,但是我还是自己测试了下,重点在于链接脚本的写法。

此处只是为了测试,因此简化链接脚本。

/* link.lds */  1 ENTRY(_start)                                                                                                       2  3 jiffies = jiffies_64; 4  5 SECTIONS 6 { 7  8     . = 0x0; 9 10     . = ALIGN(4);11     .text      :12     {13       test.o (.text) 14       *(.text)15     }16 17     . = ALIGN(4);18     .rodata : { *(.rodata) }19 20     . = ALIGN(4);21     .data : { *(.data) }22 23     . = ALIGN(4);24     .got : { *(.got) }25 26     . = ALIGN(4);27     __bss_start = .;28     .bss : { *(.bss) }29     _end = .;30 }

 

 

#Makefile  1 CROPROSS_COMPILER = arm-none-linux-gnueabi- 2 LD := ${CROPROSS_COMPILER}ld 3 AS := ${CROPROSS_COMPILER}as 4 GCC := ${CROPROSS_COMPILER}gcc  5  6 mytest: test.o main.o 7     ${LD} -T link.lds $^ -o $@ 8  9 test.o: test.S10     ${AS} $^ -o $@11 12 main.o : main.c13     ${GCC} -c $^ -o $@14 15 .PHONY: clean16 17 clean:18     @rm -f -r mytest test.o main.o

 

 

#test.S  1 .text 2 .global _start 3 _start: 4     b 1f     5 1: 6     mov r0, r0 7 2: 8     mov r0, r0 9 3:10     mov r0, r011 1:12     b main

 

//main.c  1 unsigned long long jiffies_64 = -300 * 250; 2  3 extern int jiffies; 4  5 int main(void) 6 { 7  8     jiffies_64 += 1; 9     jiffies += 3;10 11     return 0;12 }

 

#反汇编,省略了一部分  1 00000000 <_start>:                                                                                                  2    0:   b    4 <_start+0x4> 3    4:   nop 4    8:   nop 5    c:   nop 6   10:   b   14 
7 8 00000014
: 9 10 1c: ldr r3, [pc, #64] ; 取jiffies_64地址11 12 20: ldm r3, {r1, r2}13 24: mov r3, #1 ; 0x1 ; jiffies_64低位加114 28: mov r4, #0 ; 0x0 ; jiffies_64高位加015 2c: adds r3, r3, r116 30: adc r4, r4, r217 34: ldr r2, [pc, #40] ; 取jiffies_64地址18 38: stm r2, {r3, r4} ; 将jiffies_64 + 1 存入jiffies_6419 20 3c: ldr r3, [pc, #36] ; 取jiffies地址21 22 40: ldr r3, [r3]23 44: add r2, r3, #3 ; jiffies低位加324 48: ldr r3, [pc, #24] ; 取jiffies地址25 4c: str r2, [r3] ; 将jiffies + 3 存入jiffies 26 27 28 64: .word 0x00000070 ; jiffies_64地址29 68: .word 0x00000070 ; jiffies地址30 Disassembly of section .data:31 32 00000070
:33 70: .word 0xfffedb0834 74: .word 0xffffffff

转载地址:http://oauna.baihongyu.com/

你可能感兴趣的文章
JDBC的事务
查看>>
Io流的概述
查看>>
App 卸载记录
查看>>
JavaScript变量和作用域
查看>>
JS 对象机制深剖——new 运算符
查看>>
开源SIP服务器加密软件NethidPro升级
查看>>
百度页面分享插件源代码
查看>>
《别做正常的傻瓜》的一些读书心得
查看>>
作业:实现简单的shell sed替换功能和修改haproxy配置文件
查看>>
spring配置多数据源问题
查看>>
Altium 拼板方法以及 注意的 地方
查看>>
简明Linux命令行笔记:tail
查看>>
SQL PLUS远程连接
查看>>
2000条你应知的WPF小姿势 基础篇<15-21>
查看>>
PMP考试的过与只是
查看>>
java 监控 收集资料3(收集中)
查看>>
将String保存成文件
查看>>
实例演示如何使用AgileEAS.NET SOA平台工作流进行业务流程自定义
查看>>
Java+Ajax实现用户名重复检验
查看>>
Spring Cloud Alibaba迁移指南(二):零代码替换 Eureka
查看>>