Linux mprotect来定位Linux踩内存的问题

这类问题一直没有很套路的方法解决,都需要走读大量的代码,做大量调试来解决。解这类问题最关键的两点就是,1,找到被踩的内存地址,2,抓住被踩的时序。 想要找到被踩的内存地址,这里很多时候可以通过堆栈反汇编,和调试,查找出来,虽然很多时候被踩的地方不固定,这就糟糕了。就要想方法发现共同规律,比如是...

2019-07-26 16:07:01

阅读数 12

评论数 0

Linux时间子系统之-低分辨率定时器的原理和实现

利用定时器,我们可以设定在未来的某一时刻,触发一个特定的事件。所谓低分辨率定时器,是指这种定时器的计时单位基于jiffies值的计数,也就是说,它的精度只有1/HZ,假如你的内核配置的HZ是1000,那意味着系统中的低分辨率定时器的精度就是1ms。早期的内核版本中,内核并不支持高精度定时器,理所当...

2019-07-26 14:50:18

阅读数 8

评论数 0

Linux中断管理

1. 中断控制器注册 Linu内核支持多个中断控制器(GIC, gpio),可以用irq_domain来表示一个中断控制器,以ARM GICv3中断控制器来说明注册流程. 1.1 dts中声明 属性"interrupt-controller;",已经定义GIC寄存器地址....

2019-07-18 10:42:26

阅读数 27

评论数 0

Linux内核4.4打开kasan功能并替换内核编译器

基于高通820,Linux4.4内核使能kasan功能 1. 打开宏定义 CONFIG_KASAN=y CONFIG_KASAN_INLINE=y //GCC 5.0以上支持,主要优化执行效率 CONFIG_KCOV=y CONFIG_TEST_KASAN=y//kasan 测试程序 CO...

2019-07-16 14:02:32

阅读数 75

评论数 0

经典蓝牙inquiry与inquiry scan

1、Inquiry命令 让蓝牙芯片进入发现周围蓝牙设备的模式,它的返回值是周围蓝牙设备的信号。 输入的参数有如下三个:一个是LAP(暂时没有弄明白),一个是Inquiry长度表示发现多久单位是1.28秒,最长是61.44秒, 最后一个参数表示在停止发现设备前返回最大设备的响应数。 1.1 ...

2019-05-24 18:20:24

阅读数 77

评论数 0

加密和签名的区别

最近在研究RSA,对其中的签名和加密的概念不是很理解,从网上搜了搜,在这里总结一下。 举个例子,就拿A给B发送经过签名加密信息来说: 1、A对信息签名的作用是确认这个信息是A发出的,不是别人发出的; 2、加密是对内容进行机密性保护,主要是保证信息内容不会被其他人获取,只有B可以获取。也就是保证...

2019-05-22 19:29:48

阅读数 60

评论数 0

Android Parcel 总结

1. 第一次分配数据时 : mData = malloc(size); mDataSize = mDataPos = 0; mDataCapacity = size ; mObjects[mObjectsSize] = mDataPos;//objects用来存实体(flat_binder_o...

2019-05-17 14:13:05

阅读数 15

评论数 0

Android Binder总结

1. 对Server来说,就是调用IServiceManager::addService这个接口来和Binder驱动程序交互了,即调用BpServiceManager::addService 。而BpServiceManager::addService又会调用通过其基类BpRefBase的成员函...

2019-05-16 16:37:54

阅读数 17

评论数 0

Android智能指针总结

1. 强指针/弱指针,维护的是RefBase子类的对象,通过Refbase内部变量mRefs来维护引用计数. 2. 对象释放条件 2.1 对象只由OBJECT_LIFETIME_STRONG控制(默认方式) 2.1.1 只有sp强引用时,只要强引用计数为0,直接释放对象, 2.1.2...

2019-05-14 18:36:08

阅读数 13

评论数 0

static_cast和dynamic_cast的区别

static_cast 用法:static_cast< type-id > ( exdivssion ) 该运算符把exdivssion转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法: ①用于类层次结构中基类和子类之间指针或引用的...

2019-05-13 20:09:14

阅读数 28

评论数 0

adb devices修改串号

这个序列号就是adb devices,后返回的一串符号 这个serial号码是android设备都有的,还可以改变,代码也可以读取到,应该就是存储在系统的某个文件里面。最后让我找到了这个文件路径 /sys/class/android_usb/android0/iSerial 1 修改序列...

2019-05-07 15:40:59

阅读数 132

评论数 0

Linux日常——shell工具之grep(包含正则表达式)、sed

grep行过滤器 grep是⼀种查找过滤⼯具 正则表达式在grep中⽤来查找符合模式的字符串。 egrep相当于grep -E,表⽰采⽤Extended正则表达式语法。 fgrep相当于grep - F,表⽰只搜索固定字符串⽽不搜索正则表达式模式,不会按正则表达式的语法解释后⾯的参数。 grep...

2019-04-26 15:18:14

阅读数 41

评论数 0

shell 数组添加方法

array_name[@]表示数组大小 向Shell数组添加元素有多种方法,每种方法在使用时都有一些需要注意的地方,没有见过这方面的总结资料,所以自己总结一下。 直接下标添加 array_name[index]=value 最简单的添加方式,直接用下标index为数组元素赋值,在使用时需要注...

2019-04-26 13:46:09

阅读数 392

评论数 0

eMMC基础技术2:eMMC概述

本文主要参考eMMC规范,从总体上对eMMC 进行简要介绍。主要包含如下的内容: (1)eMMC系统的总体架构 (2)eMMC的总线协议 (3)device controller (4)flash memory 1.eMMC系统总体架构 图 eMMC 系统总体架构 ...

2019-04-23 13:08:30

阅读数 92

评论数 0

[emmc] emmc总线设置

一、说明 1、设置总线时需要设置的内容 时钟频率 host需要提供给emmc对应的时钟。如上述所说,不同的总线速度模式对应不同的最大时钟频率。 只需要设置host侧即可。 总线速度模式的设置 这是host和emmc card通讯的一种时序规范,因此,host和emmc的总线速度模式必须...

2019-04-23 13:02:16

阅读数 253

评论数 0

Linux磁盘读写测速

1. 读测试 busybox hdparm -t /dev/sdax 2. 写测试 time dd if=/dev/zero bs=1024 count=1000000 of=/sdcard/1Gb.file

2019-04-23 11:40:31

阅读数 39

评论数 0

sed命令用法

sed命令用法 sed是一种流编辑器,它是文本处理中非常有用的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为『模式空间』(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不...

2019-04-18 13:45:39

阅读数 39

评论数 0

shell编成总结

1. if [ -z "$6" -o "$6" = "NULL" ] ; then 54 ln -s ${LNPREFIX}arch-$3 asm-$2/arch 55 else 56 ln -s ${LNPREFIX}arch-$6 a...

2019-04-18 10:57:50

阅读数 21

评论数 0

18.04 gedit打开文件乱码

执行指令: gsettings set org.gnome.gedit.preferences.encodings candidate-encodings "['GB18030', 'UTF-8', 'CURRENT', 'ISO-8859-15', 'UTF-16']"

2019-04-18 10:57:11

阅读数 84

评论数 0

Mafile总结

1. makefile变量定义与引用 定义: obj := main.o 引用:$(obj) 2. PHONY定义伪目标 其中rm前的'-'表示某些文件出错,也继续执行 .PHONY : clean clean : -rm edit $(objects) 3. Makefile中的指令,一定要...

2019-04-18 10:23:03

阅读数 24

评论数 0

提示
确定要删除当前文章?
取消 删除