自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 xlp 开发环境在Ubuntu11.4中的建立

建立一个完全在ubuntu11.4下的xlp开发环境:1. Kvpnc(Cisco VPN client): 用于access 公司内部的服务器。通过ubuntu software center 搜vpn,可以找到并安装。安装后导入公司的vpn config文件即可。2. 阅读代码: 安装wine + SI3.5. 有时间可以搞下ctag,但是习惯SI了。3. 串口: 笔记本没串口,用

2011-06-15 20:39:00 24578

原创 计算处理器IPC的方法思考

<br />IPC:指令数每周期。知道CPU的频率,再求出IPC就可以算出CPU的强弱。CPU的强弱是要针对某种类型的业务来说的,CPU指令通常都是为某种应用做了优化。所以只有在自己业务代码运行起来后求出的IPC才是有效的,计算IPC的代码不能扰乱正常的业务运行。所以,可以把计算IPC的代码放在Idle任务里来做,离开Idle时启动统计计数,进入Idle时检查计数结果。然后对计算的结果做时间加权平均。这样算出的值会比价符合实际场景。<br /> <br /> 

2011-06-01 22:20:00 3572

原创 多核启动加载的调试方法

<br />多核处理器上电后,一般只有一个核启动,启动的核在启动过程中通过填写一些寄存器唤醒其他核。其他核在启动到运行自己的业务代码这段可以使用的调试方法,这里写下。一般从核从被唤醒到运行自己的业务代码要经过2个阶段:被主核唤醒设置自己的硬件环境(CPU状态,安装中断异常处理,设置TLB), 软件环境(sp, gp), 然后进入等待状态,等待业务代码的入口被主核传进来。<br /> <br />1. 确认给每个从核配置的CLK是否正确;<br />2. 通过主核打印从核被唤醒后跳到的那个地址的指令是否存在&

2011-06-01 22:06:00 2517 2

原创 竟然 能 恢复 过来 了 从 10.10升级到11.4 Ubuntu

<br />Windows Crash了,又找不到Licence,刚好手边有Ubuntu10.10,就装了一个,暂时用一段 , 最近太忙没时间去重装Windows。<br />装好后,看到可以升级到11.4,酒店网络又很快,就开始升级了,竟然升级成了砖头。<br />按 Esc发现启动到Battery Check时挂掉 ,用手机搜了下, 发现竟然是广泛存在到Bug,太无语了。<br /> <br />1. 启动Grub时,按住Shift能进入到 Grub menu。选择recovery mode--> 进入

2011-05-30 23:05:00 1324

原创 血拼了,这个周日下午去杭州,开始支持杭州,期望一切顺利

血拼了,这个周日下午去杭州,开始支持杭州,期望一切顺利

2011-05-20 11:58:00 871

原创 既然我们选择了就必须勇敢的去承担,希望我们今天的努力没有白费,哪怕起到一点点作用

<br />不错的一句话,,,下南洋里,最后简肇庆说的.

2011-04-07 21:15:00 712

原创 Linux 2.6 Makefile system

Linux kernel的编译系统,结构性很好,这里是学习的一些体会和一些转载。理解的可能有错误,将来学习的时候再补充。1. 编译系统有配置和编译两部分。我们编kernel时输入的make menuconfig是在执行配置,make -j10 vmlinux是在执行编译。配置系统依赖于Kconfig文件,可以用命令find. -name "Kconfig" -exec grep -l xxx {} /; 来查找你关心的配置在哪个文件里。编译系统依赖于各个层次的Makefile。配置系统和编译系统的相关纽带是

2011-03-29 21:38:00 2709

转载 Kconfig in Linux kernel

<br /><br />核源码树的目录下都有两个文件Kconfig(2.4版本是Config.in)和Makefile。分布到各目录的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文件相关的内核配置菜单。在内核配置make menuconfig(或xconfig等)时,从Kconfig中读出菜单,用户选择后保存到.config的内核配置文件中。在内核编译时,主Makefile调用这个.config,就知道了用户的选择。<br />上面的内容说明了,Kconfig就是对

2011-03-29 19:36:00 2937

原创 Makefile 里 -l和-L的区别

<br />-l-->指定连接时期望连接的库的名字<br />-L-->指定连接库的搜索路径<br /> <br />参见 LIBS += -Wl,-u,linuxu_app_preinit -lc -lrt -lpthread -ldl -lnlm -lfuse -L $(HPEXEC_INSTALL_DIR)/lib/<br />所以hyperexec连接时将优先连接libnlm.a里的实现,,如果在其中找不到实现,再去到newlib和libc中找实现。

2011-03-18 15:36:00 25418

转载 修改Linux计算机名的方法

linux 修改计算机名1、修改 /etc/sysconfig/network-----计算机名<br />vi /etc/sysconfig/network<br />NETWORKING=yes<br />HOSTNAME=prince(prince为计算机名)<br />2、修改 /etc/hosts------网络上看到的host名<br />vi /etc/hosts<br /># Do not remove the following line, or various programs<br /

2011-03-17 11:51:00 5294 1

原创 vmware下安装操作系统的一个提示

<br />由于2代CPU的sdk要使用的host的系统的要求不同, 需要在vmware下安装2个版本的fedora: fedora8 fedora13. 很多东西要从原来的fd8拷到fd13下,浪费空间,且麻烦。<br />幸好:原来fd8下的划分了2个硬盘,sda-20G:安装的操作系统,sdb-50G:放置的代码,新的fd13只有一个硬盘,sda-15G,安装的系统。所以,在新的fd13下,只需要将sdb mount到fd13下就可以了。 在/etc/profile 里添加 mount /dev/sd

2011-03-17 10:56:00 781

转载 Configuring the VNC server/viewer in Linux.

http://bobpeers.com/linux/vncOverview of VNC<br />VNC, or Virtual Networked Computing, is a way of controlling a remote computer just as though you are sitting in front of it. In the Windows world it is also known as remote desktop but it's normally referr

2011-02-16 19:42:00 1012

转载 内核线程创建: kthread_create vs kernel_thread

<br />内核线程的创建,最好使用kthread_create。 kthread_create vs kernel_thread的区别就是,前者是在后者的基础上封装的内核创建接口。如果用kernel_thread创建线程,需要创建者去实现complete和wakeup。kthread_create是在内核启动时创建了一个kthreadd的线程来创建的,该线程会wait在kthread_create_list的queue上,当queue非空,kthreadd醒来用kernel_thread创建kthread

2011-02-16 11:52:00 2391

原创 NAND & NOR study

体会: 1. Nand一般是用于Mess storage的,比如存储uImage, vmlinux, rootfs等. NOR一般是放置Boot代码和启动参数的. Nand也可以用于放启动代码, 但,一般要额外的逻辑的支持, 可以通过CPLD支持,也可以在CPU上加上这部分的逻辑(比如Netlogic的XLS/XLR/XLP/XLT系列处理器都支持Nand启动) , 也可以在Nand上加入一些逻辑,比如Samsung提出的OneNand.2. Nand的读取最小单位是Page(2KB+64Bspare, 当

2011-01-25 15:41:00 3648

原创 扩展老服务器的硬盘

<br />一台老服务器,处理器是志强4核2.8G,BogoMips值是558x;内存是4G DDR2,频率未知;硬盘是73G。硬盘空间非常的小,需要扩展。DELL只有73G的原装硬盘出售价格17xxRMB。于是用办公室一个500G的USB硬盘划分了250G,mount到了fedora core4下。<br />1. 用win7自带的硬盘分区工具从500G的USB硬盘上分割250G出来:计算机-〉管理-〉磁盘管理-〉压缩。 创建简单分区。<br />2. 将盘插到fc机器上, cat /etc/fstab

2011-01-14 15:38:00 1002

原创 setup nfs within win7

开发中要用到NFS,于是搞了一下。开始先找了个Fedora的系统作NFS server,解决了急需问题。由于不想做win7和Linux的相互重启,还是要在win7下设置下nfs。开始想到的有2个方法:在已有的vmware的Fedora上启动nfs,差最后一步:无线的IP是192.168.1.x, 有线的是192.168.112.1, vmware下ping打印机就能ping通(走无线接口),理论上走有线接口直连单板,应该也能ping通,可能是设置问题,导致vmware选择物理端口时,没选择错了。好好设置下应

2011-01-10 17:58:00 2246

原创 mounting nfs

<br />Mounting the root filesystem via NFS (nfsroot)<br />===============================================<br /><br />Written 1996 by Gero Kuhlmann <[email protected]><br />Updated 1997 by Martin Mares <[email protected]><br /><br /><br /><br />

2011-01-09 18:05:00 1030

转载 Linux kernel config and makefile system

http://www-900.ibm.com/developerWorks/cn/linux/kernel/l-kerconf/2003 年 2 月随着 Linux 操作系统的广泛应用,特别是 Linux 在嵌入式领域的发展,越来越多的人开始投身到 Linux 内核级的开发中。面对日益庞大的 Linux 内核源代码,开发者在完成自己的内核代码后,都将面临着同样的问题,即如何将源代码融入到 Linux 内核中,增加相应的 Linux 配置选项,并最终被编译进 Linux 内核。这就需要了解 Linux 的内核

2011-01-09 18:03:00 4162

转载 Linux kernel config and makefile system

<br />http://www-900.ibm.com/developerWorks/cn/linux/kernel/l-kerconf/<br /><br />2003 年 2 月<br /><br />随着 Linux 操作系统的广泛应用,特别是 Linux 在嵌入式领域的发展,越来越多的人开始投身到 Linux 内核级的开发中。面对日益庞大的 Linux 内核源代码,开发者在完成自己的内核代码后,都将面临着同样的问题,即如何将源代码融入到 Linux 内核中,增加相应的 Linux 配置选项,并最终

2011-01-09 18:01:00 866

原创 心有多大,舞台就有多大(理想) & 责任有多大, 舞台就有多大(现实)

<br />不错的两句话

2011-01-08 22:28:00 625

转载 diff and patch

<br />http://www.ibm.com/developerworks/cn/linux/l-diffp/<br /> <br />在Unix系统下,维护源码版本可以使用很多方法,其中最常用的当然是大名鼎鼎的CVS,但实际上,简单的版本维护工作并没有必要使用复杂的CVS等专门的版本维护工具,Unix标配中的diff和patch工具就完全可以完成代码的简单备份和升级工作。<br />diff以"行"为单位比较两个文本文件(也可以是目录比较),并将不同之处以某种格式输出到标准输出上;patch可以读入这

2011-01-06 17:53:00 355

原创 Opps vs Coredump

<br />1. 在内核访问了非法地址时,会在tlbexc处理中调用do_page_fault(arch/mips/mm/fault.c), do_page_fault会调用die("Opps")(arch/mips/kernel/trap.c). 在die中会调用打印现场信息并重启。在现场调试时,如果遇到opps,可以将关心的寄存器放在die中打印出来。<br />2. coredump是用户态程序访问了非法地址或者执行了非法指令,内核会发送Segfault信号给用户态程序,系统默认的信号处理函数会做Co

2010-12-21 18:58:00 872

转载 cgroup: Control Group 分析 转载

<br />这篇文章分析Cgroup不错, 阅读Kernel代码的start_kernel函数到cgroup_init_early时,搜了下,找到了这篇文章,大致看了下,不错,收藏。<br /> <br /> ------------------------------------------ 本文系本站原创,欢迎转载!转载请注明出处:http://ericxiao.cublog.cn/------------------------------------------一: 前言前段时间,一直在写操作系统和

2010-12-16 11:58:00 3560

转载 常用电平标准(TTL、CMOS、LVTTL、LVCMOS、ECL、PECL、LVPECL、RS232)

<br />常用电平标准<br /><br />现在常用的电平标准有TTL、CMOS、LVTTL、LVCMOS、ECL、PECL、LVPECL、RS232、RS485等,还有一些速度<br />比较高的LVDS、GTL、PGTL、CML、HSTL、SSTL等。下面简单介绍一下各自的供电电源、电平标准以及使用<br />注意事项。 <br />TTL:Transistor-Transistor Logic 三极管结构。 <br />Vcc:5V;VOH>=2.4V;VOL<=0.5V;VIH>=2V;VIL<

2010-12-09 13:44:00 1310

原创 SecureCRT作为SSH客户端时,C语言语法高亮的设置

<br />默认的情况下,不能高亮.<br /> <br />1.  /etc/profile里添加export TERM=xterm-color<br /><br />2. ~/.vimrc 里添加 syntax on<br /> <br />3. SecureCRT的session options里将terminal->emulation 里的terminal选择xterm 并将后面的两个option选上<br /> <br />搞定。<br /> <br />另外,除了使用默认的语法高亮规则,可以自己

2010-11-26 12:13:00 2698

原创 C Run Time--crt0.o 分析

<br />1. 该文件里有4个函数:_start, _exit,init,zerobss. 用于main运行前C运行环境的初始化,并调用main。入口是_start,它会调用main,然后调用_exit.<br />2. 该文件随toolchain一起,一般在toolchain的lib目录下。<br />3. 要想运行编译完的binary文件,只需要call _start就可以了。

2010-10-18 16:15:00 1358

原创 MIPS处理器下Linux调度器的调度时机

1. Linux的调度器,N多书有介绍,但是这些介绍基本都是给个大致概念,具体还要看代码。这部分的实现,不同的内核版本有一定的差异,我看的内核版本是2.6.21.7。2. 关于调度器,我的理解,无外乎3点:什么时候去检查是否需要调度(调度时机),如何选择应该运行的任务(调度策略),怎样做任务的切换。任务的切换,也就是上下文切换,相对简单。调度策略,Linux下有SCHED_RR, SCHED_FIFO,SCHED_OTHER, N多书上对他们差别的讲解足够,且易于理解。我主要学习了调度时机。3. 由于要进行

2010-09-29 19:31:00 1895

原创 Start Fedora with Text Or Graphic

<br />Text-Based login can save your system resource. It is what I need with a system running vmware, fedora and win7 , i3 single core CPU & 2G memory.<br /> <br />1. telinit 3 : used to switch Graphic to text.<br />    telinit 5 : used to switch text to g

2010-09-29 10:55:00 1263

原创 win7_vmware7.1_fc8_secureCRT_samba setup

<br />目前的工作环境是 win7+vmware workstation7.1+fc8. 一些东西反反复复的搞了多次,每次都会花些时间,在此做一记录,备忘。<br />1. 安装fc8. fc8的ISO,放在硬盘上。建立vmware的一个virtual machine. 在setting里将DVD指向fc8的ISO,一步一步的安装fc8。<br />2. 让win7和fc8能相互ping通。 按照vmware default的设置,vmnet1是fc8连接到internet的网口,不要更改。改变vmne

2010-09-26 18:47:00 1699

转载 Linux Kernel Basics from wiki

<br />Here you can find the more accurate definitions about Linux Kernel.<br /> <br />It is better to visit the link directly.<br /> <br /> http://en.wikipedia.org/wiki/Linux_kernel<br /> <br />In case of lossing the link copyed the content here.<br /> <br

2010-09-09 12:38:00 2821

转载 Linux 的 completion机制

<br />一、定义:<br />linux/include/linux/completion.h13struct completion {14 unsigned int done;15wait_queue_head_twait;16};<br /> <br />二、作用:<br />虽然信号量可以用于实现同步,但往往可能会出现一些不好的结果。例如:当进程A分配了一个临时信号量变量,把它初始化为关闭的MUTEX,并把其地址传递给进程B,然后在A之上调用down(),进程A打算一旦被唤醒就撤销给

2010-09-06 16:29:00 26056

原创 关于C/C++中 Class, Struct, enum的定义声明位置

<br /><br /> <br />struct 和 enum定义的数据类型的作用域是本文件中。所以:<br />a. 当一个struct的数据类型定义定义在.h文件中,.h文件被多个.c包含,这些.c文件又一起连接时,不会出现数据类型重复定义的错误。但是如果这个.h文件在同一个.c中被多次展开,就出现了数据类型重复定义的问题。<br />b. struct 数据类型的定义,应该定义在.h文件中。也可以定义在.c中,在.h中做声明。<br />c. struct数据类型的定义和struct实例的定义是不同

2010-09-06 15:52:00 9274

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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