linux kernel
robinyeung
嵌入式软件开发
展开
-
linux likely and unlikely解析
看内核时总遇到if(likely( )){}或是if(unlikely( ))这样的语句,最初不解其意,现在有所了解,所以也想介绍一下。likely() 与 unlikely()是内核(我看的是2.6.22.6版本,2.6的版本应该都有)中定义的两个宏。位于/include/linux/compiler.h中,具体定义如下:#define likely(x) __builtin_e转载 2013-08-14 11:27:18 · 736 阅读 · 0 评论 -
android recovery mode debug notes on msm8909 platform
1. Print message in recovery mode# adb pull /tmp/recovery.log ; in recovery mode# adb pull /cache/recovery/last_log ; in normal mode after recovery done; last_kmsg: kernel log when recoverying; last_lo原创 2017-05-11 17:52:37 · 5808 阅读 · 0 评论 -
linux kernel 调试常用搜索方法及常见问题小结
1、搜索以什么字符结尾的文件# grep -r "marvell.com$" *^word 待搜寻的字符在行首. 匹配任何一个可能的字符\ 跳脱符号将特殊字符变成普通字符? 任何一个『单一』字符* 匹配模式中重复的字符例题:在 /kernel 底下,只要含有 XYZ 三个字符的任何一个字符的那一行就列出来g原创 2012-10-12 18:27:07 · 5575 阅读 · 0 评论 -
linux kernel debug
1. 如何打印 pr_debug的信息。adb rootadb remountadb shellecho 'file sprdfb_main.c +p' > /sys/kernel/debug/dynamic_debug/controlecho 'file lcdc.c +p' > /sys/kernel/debug/dynamic_debug/controlstop logs4and转载 2015-01-19 10:40:52 · 1801 阅读 · 0 评论 -
Linux内核同步机制之(四):spin lock
copy from: http://www.wowotech.net/kernel_synchronization/spinlock.html/comment-page-2#comments作者:linuxer 发布于:2015-4-22 12:22 分类:内核同步机制 一、前言 在linux kernel的实现中,经常会遇到这样的场景:共享数据被中断上下文和进程上下文访问,该如何保护呢?如果只转载 2016-08-02 20:05:49 · 990 阅读 · 0 评论 -
ARM的字对齐问题总结
一、啥是字对齐?为啥要字对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问都可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就是对齐。字节对齐的原因大致是如下两条:1、平台原因(移植原因):不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否转载 2015-02-04 15:06:44 · 727 阅读 · 0 评论 -
arm linux debug notes (error note)
1. ret = sprdfb_panel_constructor(pan_node, fb_dev); if (ret) { pr_err("%s: failed to construct panel device\n", __func__); return -EFAULT; }%s, __func__,原创 2014-06-25 11:17:43 · 1581 阅读 · 0 评论 -
Linux中Workqueue机制分析
Linux中Workqueue机制分析软硬件协同设计是未来发展的主流,软硬件的界限越来越模糊,软硬件的设计思想是相通的,实现方法是各异的,实现的结果上当然也存在较大差别,因此,很有必要做好软硬件的协同设计。 什么是workqueue?Linux中的Workqueue机制就是为了简化内核线程的创建。通过调用workqueue的接口就能创建内核线程。并且可以根据当前系统CPU的个数创建转载 2014-07-22 17:01:41 · 682 阅读 · 0 评论 -
TRACE32调试技巧
1. 调试步骤l 连接好 TRACE32-ICD 和目标板,注意不要带电插拔 JTAG ,容易损坏 TRACE32 或目标板,然后依次打开 TRACE32-ICD 和目标板的电源。l 开启调试软件 TRACE32l 设置 CPU 类型,状态等,可以通过命令或菜单,命令如下:sys.resetsys.CPU ARM7TDMI ; 这转载 2014-03-31 16:06:02 · 26588 阅读 · 0 评论 -
pxa2128 linux kernel console_init 控制台初始化
// 首先系统启动时, 函数指针会调用con_init(), 代码在drivers/tty/vt/vt.c,函数指针代码如下: /* * Initialize the console device. This is called *early*, so * we can't necessarily depend on lots of kernel help here. * Just do原创 2012-09-23 22:08:34 · 1780 阅读 · 0 评论 -
linux kernel 常用函数 备忘
一、字符串转换函数Linux内核中提供的一些字符串转换函数:lib/vsprintf.c[cpp] view plaincopyprint?unsigned long long simple_strtoull(const char *cp, char **endp, unsigned int base) unsigned long转载 2012-09-27 11:06:47 · 7200 阅读 · 0 评论 -
linux设备和驱动加载的先后顺序
Linux驱动先注册总线,总线上可以先挂device,也可以先挂driver,那么究竟怎么控制先后的顺序呢。Linux系统使用两种方式去加载系统中的模块:动态和静态。静态加载:将所有模块的程序编译到Linux内核中,由do_initcall函数加载核心进程(/init/main.c)kernel_inità do_basic_setup()àdo_initcalls()该函数中会将在_转载 2013-01-10 21:05:50 · 693 阅读 · 0 评论 -
Linux 时钟处理机制
Linux 时钟处理机制简介: 在 Linux 操作系统中,很多活动都和时间有关,例如:进程调度和网络处理等等。所以说,了解 Linux 操作系统中的时钟处理机制有助于更好地了解 Linux 操作系统的运作方式。本文分析了 Linux 2.6.25 内核的时钟处理机制,首先介绍了在计算机系统中的一些硬件计时器,然后重点介绍了 Linux 操作系统中的硬件时钟和软件时钟的转载 2012-10-16 20:05:03 · 919 阅读 · 0 评论 -
android debug command commonly with qcom chip
adb shell settings put system screen_off_timeout 3600000grover:/ # cat /d/clk/enabled_clocks > /data/CLK_dump.txt原创 2017-06-02 14:18:10 · 1445 阅读 · 0 评论