测试framebuffer

static GGLContext *gr_context = 0; static GGLSurface gr_framebuffer[2]; static unsigned gr_active_fb = 0; static int gr_fb_fd = -1; static int ...

2013-12-04 22:40:59

阅读数 1997

评论数 0

kernel hexdump分析 (2.0)

有的时候print_hex_dump_bytes循环打印很多信息的时候(大于1K) 用UART串口打印的信息总是会有丢失,估计是printk缓冲区的问题把,具体原因不是太清楚 于是自己写了个比较笨的dump函数,问题得到解决: //每次打印128个字节(当然你也可以打印更多),只调用一次pr...

2013-12-04 22:35:01

阅读数 1469

评论数 0

kernel hexdump分析

驱动调试中,很多时候是二进制的,这个时候hexdump就是个非常有用的工具了。 不要再自己去实现类似的功能,kernel代码里面就有: 参考: kernel/lib/hexdump.c // 0Xxx转换成 ASCII ,实现简单巧妙 const char hex_asc[] = &quo...

2013-12-04 22:31:33

阅读数 2920

评论数 0

android recovery模式选项中索引改进

有个客户有特殊要求,需要去掉recovery模式的某些选项 #define ITEM_REBOOT 0 #define ITEM_APPLY_SDCARD 1 #define ITEM_WIPE_DATA 2 #define ITEM_WIP...

2013-12-03 22:36:45

阅读数 1121

评论数 0

ARM架构kprobe应用及实现分析(11 原理)

1 拷贝探测的code , 插入特殊指令(ARM是插入未定义指令) 2 CPU运行到未定义指令,会产生trap, 进入ISR,并保存当前寄出去的状态   通过LINUX的通知机制,会执行“pre_handler”(前提是你已经注册过了) 3 进入单步模式,运行你备份出来的代码  (此代码运...

2013-12-03 22:31:02

阅读数 2635

评论数 0

android flash 下载完整性检查

由于厂线下载都是大批量的下载 难免有下载失败的情况(认为操作或nand / emmc本身的缺陷),故下载校验就显得尤为重要:

2013-12-03 22:26:24

阅读数 1283

评论数 0

如何mount ext4 分区

mount  -t ext4       target_path/your.img           ./mount_dir  上面mount的时候有可能失败:  第一中,没有权限:  sudo  mount  -t ext4       target_path/your.img        ...

2013-11-28 21:46:23

阅读数 2382

评论数 0

preloader阶段memory测试

假如MEMORY出现硬件问题的话,会导致系统崩溃, 有必要在preloader阶段,大概检测下MEMORY是否读写正常: void mem_init (void) { int i = 0; // 目前测试大小为 #define MEM_TEST_SIZE (0...

2013-11-28 21:45:49

阅读数 1309

评论数 0

取得下个参数宏定义

#define skip(n) do { argc -= (n); argv += (n); } while (0) 实际当中用的时候,只需要: skip(1);   //就可以取得下个参数

2013-11-27 22:14:57

阅读数 1037

评论数 0

tail命令实现截取掉文件开始的一部分字节

实现把文件开始的1024个字节截取(注意参数N /  +N的区别): tail -c  +1024 ./secro_dump.bin > cut_secro.im

2013-11-27 22:11:47

阅读数 2781

评论数 0

ARM架构显示寄存器的详细信息

void show_regs(struct pt_regs * regs) { printk("\n"); printk("Pid: %d, comm: %20s\n", task_pid_nr(current), current->comm...

2013-11-27 22:07:29

阅读数 1613

评论数 0

Uboot 怎么添加commandline参数

参考:bootable/bootloader/uboot/arch/arm/lib/bootm.c 有的时候你需要往kernel传入更多的参数,如uboot自身的版本号,或者LCM的相关驱动参数 int do_nand_boot (cmd_tbl_t *cmdtp, int flag, int...

2013-11-27 22:04:59

阅读数 1723

评论数 0

linux reset 分析

遇到个系统reset的问题,简单看了下kernel reset的代码,简单记录下: 简单看下log: [   25.900749] Restarting system with command 'recovery'. [   25.901449] arch_reset: cmd = reco...

2013-11-27 22:02:25

阅读数 2654

评论数 0

minicom 轻松使用

由于preloader / uboot / kernel 调试都会用到串口输出调试信息, 这里简单介绍下minicom的使用 ./minicom  -s  之后选择 serial port setup (设置波特率,停止位等基本信息)   配置正确的设备文件  d...

2013-11-20 23:10:20

阅读数 1302

评论数 0

fs mtd driver架构美图

2013-11-20 22:59:43

阅读数 1381

评论数 0

获取kernel各个数据段,代码段的地址及范围

有的时候需要知道代码段,数据段,字符串段,已经初始话数据段等信息 记得添加: #include printk("_text is %08x--%08x , \ _data is %08x--%08x , \ __bss_start i...

2013-11-20 22:54:28

阅读数 2353

评论数 0

Uboot 向cmdline添加更多的参数

参考:bootable/bootloader/uboot/arch/arm/lib/bootm.c 有的时候你需要往kernel传入更多的参数,如uboot自身的版本号,或者LCM的相关驱动参数 int do_nand_boot (cmd_tbl_t *cmdtp, int flag, int...

2013-11-20 22:49:21

阅读数 2493

评论数 0

ARM架构kprobe应用及实现分析(10 trap中断注册及回调)

首先可以看下探测点检测到非法指令时候,产生中断的dump_stack: symbol] (dump_backtrace+0x0/0x10c) from [] (dump_stack+0x18/0x1c) symbol] (dump_stack+0x0/0x1c) from [] (handle...

2013-11-19 22:55:29

阅读数 1743

评论数 0

ARM架构kprobe应用及实现分析(9.0 arch_prepare_kprobe平台相关注册)

// ARM 架构注册kprobe int __kprobes arch_prepare_kprobe(struct kprobe *p) { kprobe_opcode_t insn; kprobe_opcode_t tmp_insn[MAX_INSN_SIZE]; unsign...

2013-11-19 22:48:54

阅读数 1581

评论数 0

ARM架构kprobe应用及实现分析(8.0 register_kprobe实现)

int __kprobes register_kprobe(struct kprobe *p) { int ret = 0; struct kprobe *old_p; struct module *probed_mod; kprobe_opcode_t *addr; ...

2013-11-19 22:42:43

阅读数 1510

评论数 0

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