- 博客(24)
- 资源 (5)
- 收藏
- 关注
原创 利用BDI实现GDB调试
BDI本身提供的命令还是比较有限的,从调试的角度来看的话,也就是可以知道当前的PC指针和对应的核寄存器,无法实现任何高级的功能。因此利用GDB提供的remote功能实现硬件GDB调试,几乎是实际调试的必然之选。笔者是用BDI调试uboot的一部分功能(fwupdate我们自己写的一个固件升级程序),历经坎坷,总算摸到了点门道。以下分享一下这个的关键过程。1.启动在完成正常烧写后,硬件应
2013-03-29 22:24:20
1841
原创 CPU占用率100%的问题追踪
在网页上增加了一个banding选择的选项,同时也包括了restore的功能,结果在测试时发现网页访问(尤其是resotre后)时不时会出现CPU 100%被占用,这下郁闷了,赶紧想折子确认问题,憋了半天总算想到一些方法,本文记录了整个找问题的过程,也可谓一波三折。先总结一下用过的法子:1. printf打印2. oprofile3. gdb4. proc文件系统1
2012-07-20 10:06:17
4067
原创 oprofile二三事
oprofile是调试系统瓶颈的利器,利用它,可以分析得到当前系统所有函数的各种信息,如CPU占用率等。编译与安装Pelco的SVN库中已经导入了oprofile,它位于:http://svn.pelco.org/repos/omons-3rdparty/oprofile-0.9.4/只要将它checkout出来,然后直接ombuild build, ombuild insta
2012-05-21 20:34:45
829
原创 uboot change based on DM368, for BDI3000 bootup
u-boot Version: 1.6.01. u-boot/drivers/serial/serial.c Function: calc_divisor()Line: 157Modification: return 0x0d;Description: The original way to calculate serial baudrate is wrong
2011-12-07 08:10:41
1168
原创 Serivce configuration on Ubuntu
Environment:OS: Ubuntu 10.4.1Login Name: jeff Service: SSHInstallsudo apt-get install openssh-server Configu
2011-09-08 20:41:20
519
原创 u-boot+kernel不能正常运行
单独的u-boot可以正常运行,而kernel配合04000010版的uboot也能正常运行。但当前的uboot配合kernel却不能正常boot,会在kernel串口设置的地方出错。整理尝试结果:uboot.10Pelco + kernel == OKuboot
2011-09-07 16:07:11
1112
原创 cpio文件打包和解包
设文件名initramfs.cpio.gz打包操作:find . | cpio -o -H newc | gzip > ${myDIR}/initramfs.cpio.gz 解包操作:gunzip initramfs.cpio.gzcpio -
2011-09-06 13:10:56
8393
原创 编译出错提示 error trying to exec 'cc1': execvp: No such file or directory
在我的Ubuntu系统中,编译程序出现此提示。网上说法一大堆,或者编译器坏了,或者与其他软件冲突之类。似乎都不符合我的情况。于是自查,查询后获知其实我的编译器已经有了这个cc1,/usr/local/arm/4.4.1/libexec/gcc/arm-none
2011-09-06 07:42:07
22947
1
原创 uboot环境变量不能保存的调试
在我的板子上设计了2个uboot,分为大小u-boot。小u用于启动,因为程序小,所以速度快,而且适合放在单个块(128K)中.大u包含网络,功能全面。在实际的启动过程中,小u出现不能保存环境变量的问题,本文用于记述我的调试过程。出现该问题首先想到的是修改配置文件,把所有
2011-09-05 18:44:10
3237
原创 driver porting from Android to My kernel
1. Add the option in Menuconfig1) add following code into drivers/char/Makefileobj-y += radio/2) add f
2011-09-04 23:35:22
810
原创 switch off UDP checksum in kernel
Just for my memoIn IPv4, the UDP checksum is not a forced definition, if you do not do checksum. it is still ok to talk each other. How ev
2011-09-02 10:07:39
1410
原创 kernel version
Just for my memo:I met problem in generating a kernel with correct version. A "+" symbol is always added into the kernel version. And my
2011-09-02 09:40:33
981
原创 ALSA交叉编译与测试
情况简介ALSA是目前Linux系统上大量采用的音频设备库,通过Alsa架构能分离驱动和应用的开发。Alsa为上层提供API的同时,也为下层提供了接口,在内核配置的时候指定“支持Alsa”就能得到内核支持,具体位置为:Menuconfig -> Device Drivers -> Soundcard support -> Advanced Linux Sound Architecture,驱动层所添加的音频设备应该也会在这里出现。由于我们的内核已经包含了对应音频设备的驱动,故不做深入。有了Alsa内核驱
2011-04-14 17:59:00
10770
8
原创 Linux中断处理过程
<br />中断被触发后首先通知到的是CPU<br />1.CPU需要判断自己当前所处的模式,根据CPL寄存器的值执行不同操作。如果CPL表明目前正处于内核态,则不需要作切换,相反,如果CPL表明目前是用户态,那么需要将自己标为标为内核态。当然,在标记自己之前,必然会存在一些寄存器的保存以便日后恢复。<br />2. 需要做一些现场保护工作,就是把当前的寄存器存起来以便恢复。这个是跟用户态和内核态无关的,而是CPU当前所处的一个状态的信息保存。<br />3. 终于进入真正的中断了,CPU落到了中断向量表上
2010-11-28 09:23:00
1218
原创 Linux内核启动
<br />说到内核启动,很多这方面的资料都是从bootloader(BIOS)开始说起的,严格说来,那时候还没有出现Kernel的概念呢,实际的Kernel是在start_kernel()函数之后才真正启动的。在这之前,主要干的活:<br />1. 解压缩,把未压缩的内核包放在RAM的指定地址,然后从这个地址开始执行。<br />2.体系结构相关的初始化,初始化的目的也是为启动内核做准备,包括页表初始化啊,MMU,Cache,TLB等的初始化啊,最终在完成这些准备工作后跳转到start_kernel开始真
2010-08-03 18:20:00
1013
转载 逻辑地址、线性地址、物理地址和虚拟地址之间的关系
本贴涉及的硬件平台是X86,如果是其它平台,嘻嘻,不保证能一一对号入座,但是举一反三,我想是完全可行的。一、概念物理地址(physical address)用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一个从0字节一直到 最大空量逐字节的编号的大数组,然后
2009-08-16 20:28:00
4377
原创 Linux下的内存管理
对于 Linux下的内存管理,首先从《Linux内核设计与实现》书上的说起。在书里面开篇就开始讲页面管理及其数据结构,这似乎与我们常常听到的段页式管理有所不同。其实,所谓的段页式管理是针对硬件的x86的,x86的系统为了保持与老版本系统的兼容性,采用了段页两级目录管理内存,可参看转载的上一篇文章了解这种管理机制。而事实上,即便Linux在x86平台上也并没是实现真正的段页式管理,所有的段地址最终都
2009-08-16 09:41:00
835
原创 内核定时器和时间管理学习笔记
1.在Linux系统中有一个重要的概念:HZ,意为节拍数,它是操作系统级的时间单位重要概念。一般大小为100(所以可以简单理解HZ为系统定义的宏),但在有些体系结构中有可能是1000或者其他,它表明了每秒钟时钟的可中断次数,时钟中断并非你想让它何时触发就能触发的,还得按着节拍来,这也进一步说明了Linux只是准实时系统,而算不上严格意义上的实时系统。2.与HZ有关的另一个重要概念:jif
2009-08-15 09:19:00
1018
原创 在只有C盘的windows下无损分区
要装linux,所以必须在windows下分区,当前系统下只有一个C盘。网上搜索,会发现有很多文章提供了不破坏windows还能分区的方法,一般都是用软件PQ PartitionMagic常见版本为8.0,但事实上该软件是共享软件,能下载到的一般都是Demo而已。 而真正可用的版本是Norton PartitionMagic(PQ PM被Norton收购了),这个版本可用
2009-05-23 17:15:00
3774
原创 Fedora环境下编译运行带SATA硬盘的内核
硬件环境说明HP dc7600台式机,x86系统,硬盘为SATA接口,主板自带intel 82801(ICH7芯片组) SATA控制器软件环境说明Fedora 6,内核版本2.6.18,该内核是为fc6发行版定制,可能与通用版本(www.kernel.org)略有不同(配置方面),具体情况不知。编译安装过程1.获取内核源代码对于Fedora 6,获取源代码的方式有以下3种:
2009-05-23 16:01:00
2659
原创 如何面对程序crash
在linux系统下面,因为非法地址的错误而导致的程序崩溃十分常见,面对这类问题,我们一般的做法只是去仔细研读源代码,并猜测问题所在。那么有没有更方便的方法呢?请参看如下标示:[KERNEL-CHECK] a bad boy(rotterdam.elf:pid=258,prio=0) has error! (signal = 11)(epc = 0x2c0b9f50)
2008-12-09 15:04:00
1241
原创 强大的Excel
这两天接触了简单的项目进度安排的操作,发现Excel果然是一个好东西!同时也感觉到了自己在这方面的严重无知。从来都没有感觉到Excel如此强大,也许是当年上office课程自己本来就没学好吧,书到用时方恨少啊!一下举例以memo:甘特图:甘特图是项目进度管理的最常用形式,在office的project软件中用的就是甘特图,它通过设置任务开始时间,工期(包含工作日及休息日),工作日,完成率来记录并
2008-12-09 15:03:00
1066
原创 HDMI通信之地址分配
HDMI可以认为是一种热插拔设备,那么在HDMI设备开关机或者插拔时到底做了什么操作,这是非常必要了解的。首先,HDMI设备实际上都有自己的物理地址的,这个物理地址在一般的音视频传输中没有什么作用,可以忽略。但是在对于有CEC功能的HDMI设备中,却异常重要。CEC是一种单线通讯方式,构成整个HDMI的网络拓扑实际上共享了此线。因此通过物理地址区分每个设备是必要的。[说明] 1. HDMI的
2008-12-09 15:01:00
5122
2
原创 专利,难!
最近一直看一些专利的东西,试图从人家专利的想法中挑出问题,然后想办法解决。看了不少关于HDMI的内容,包括传输,初始化,加密等等,几乎都是一知半解。哎,水平还是不行,专利这种东西本来文字晦涩,再加上专业英语及相应的技术基础,对我这样的菜鸟实在太难了。
2008-12-09 14:40:00
666
c++读写csv文件的类_可新增单元内容
2015-03-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人