自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

kyle的专栏

专注 ARM 技术

  • 博客(24)
  • 收藏
  • 关注

原创 进程间通信实例(IPC)之命名管道

  在linux进程是系统调度的基本单位,一个进程完成一定的任务,但进程在执行任务时有时也需要其他进程提供信息,我们把它称为进程之间的通信。那进程是采取何种方式来进行通信呢?带着这个问题我们来学习吧!进程间的通信分有很多方式,今天来让我们看看进程是如何采用管道来进行通信的。为此我们写了一段简单的代码来进行说明,毕竟用代码描述起来更容易使人明白,我们将会对下面的代码进行分析以来阐明其中的道理。一

2008-05-09 19:16:00 2232

原创 ARM处理器的SWI异常中断响应过程

    通过SWI异常中断指令,在用户模式下应用程序可以调用系统模式下的代码,在操作系统中表现为系统调用,那这个过程又是如何实现的呢?带着疑问让我们来学习吧!    在SWI指令中包括一个24位的立即数(中断调用号),该立即数指示了用户要请求的特定的调用功能,所以在SWI的异常中断中要读取这个中断调用号,然后根据中断号,来调用相应的处理程序。这个过程可以分两个步骤:1.SWI异常中断处理程序由于是

2008-05-04 18:05:00 3707

转载 浅析Arm Linux操作系统调用流程详细解析

    系统调用是os操作系统提供的服务,用户程序通过各种系统调用,来引用内核提供的各种服务,系统调用的执行让用户程序陷入内核,该陷入动作由swi软中断完成.At91rm9200处理器对应的linux2.4.19内核系统调用对应的软中断定义如下:#if defined(__thumb__)         //thumb模式#define __syscall(name)/    "push   

2008-04-30 10:21:00 1316

原创 insmod module 失败(skyeye + armlinux)

前些日子在 skyeye 上 porting 了 arm-linux,于是迫不及待的写了一个 module 试试,可很不幸,没有成功。小弟最近才搞 linux 的 module 技术,很多地方不是很懂,现将问题贴出,希望大家不吝赐教。Module 源代码:=========================================/*hello.c*/#include #include MO

2008-04-27 19:31:00 2772 2

转载 剖析Linux系统启动过程

阅读Linux源代码,无疑是深入学习Linux的最好方法。在本文对Linux启动过程的介绍中,我们也尝试从源代码的视角来更深入的剖析Linux的启动过程,所以其中也简单涉及到部分相关的Linux源代码,Linux启动这部分的源码主要使用的是C语言,也涉及到了少量的汇编。而启动过程中也执行了大量的shell(主要是bash shell)所写脚本。为了方便读者阅读,笔者将整个Linux启动过程分成以下

2008-04-25 15:13:00 1194

转载 SkyEye安装与使用

一. SkyEye配置选项SkyEye模拟的硬件配置和模拟执行行为由配置文件skyeye.conf中的选项确定。根据选项的功能,skyeye.conf的选项分为硬件配置选项和模拟执行选项。根据参数的个数,skyeye.conf的选项主要由两种组成: 单参数选项行 格式为: symbol: value symbol可以是硬件定义,如cpu、mach等,也可以是执行控制定义,如log

2008-04-23 15:33:00 6633

转载 SkyEye模拟硬件介绍

1.CPU和开发板系列    目前SkyEye可以模拟的CPU主要是基于ARM内核的CPU,包括ARM7TDMI,ARM720T,ARM9TDMI,ARM9xx, ARM10xx,StrongARM,XScale等。ARM7/9/10TDMI是ARM系列CPU的基本核心部分,它们不支持MMU/CACHE和一些扩展指令,是ARM CPU基本核。ARM720T、ARM920T、ARM10xx、Stro

2008-04-23 15:25:00 1649

转载 SkyEye介绍

1.SkyEye的起源和发展    2002 年11月,一个偶然的机会,一群操作系统的爱好者在网上进行聊天,成立了一个TM-Linux兴趣小组,希望要做一些感兴趣的事情。当时在清华大学计算机系做博士后的陈渝提出做一个用软件实现的嵌入式开发板硬件模拟器,可以在模拟器上运行各种操作系统,这样就可以在没有开发板的情况下学习和研究操作系统。一开始就陈渝一人做,首先他了解了当前国际上的一些类似的项目,发现著

2008-04-23 15:21:00 1774

转载 Linux下的段错误产生的原因及调试方法

产生段错误就是访问了错误的内存段,一般是你没有权限,或者根本就不存在对应的物理内存,尤其常见的是访问0地址.一般来说,段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由gdtr来保存的,他是一个48位的寄存器,其中的32位是保存由它指向的gdt表,后 13位保存相应于gdt的下标,最后3位包括了程序是否在内存中以及程序的在cpu中的运行级别,指向的gdt是由以64位为一个单位的

2008-04-23 14:15:00 1054

原创 Linux 内核调试技术

1. 前言:有的程序可以通过编译, 但在运行时会出现Segment fault(段错误). 这通常都是指针错误引起的.但这不像编译错误一样会提示到文件->行, 而是没有任何信息, 使得我们的调试变得困难起来.2. gdb:有一种办法是, 我们用gdb的step, 一步一步寻找. 这放在短小的代码中是可行的, 但要让你step一个上万行的代码, 我想你会从此厌恶程序员这个名字, 而把他叫做调试员.我

2008-04-23 14:10:00 1171

转载 如何生成静态库和动态库

        对于一个编译型语言,编译器工作时总要经过预处理、编译、链接等几个过程。以 C/C++ 为例:预处理器(cpp)将每个 .c/.cpp 文件中 #include 的头文件都合并到 .c/.cpp 文件中,并且对其进行宏扩展,由此生成数个编译单元。一般来说每个 .c/.cpp 文件对应一个编译单元。随后,编译器(cc)将每个编译单元翻译成本地二进制代码,在 GNU/Linux 中后缀是

2008-04-23 13:58:00 14983

转载 构建 arm-linux 仿真运行环境 (skyeye + arm-linux + NFS)

一 前言  本文旨在将 arm-linux 在 skyeye 上搭建起来,并在 arm-linux 上能成功 mountNFS 为目标, 最终我们能在 arm-linux 里运行我们自己的应用程序. 其实在 skyeye 上移植 arm-linux 并非难事,网上也有不少资料, 只是大都遗漏细节, 以致细微之处卡壳,所以本文力求详实清析, 希望能对大家有点用处。二 安装 Skyeye  我们选

2008-04-17 13:09:00 2094

转载 理想主义者--理查德.马修.斯托曼(GNU的传奇)

 我相信,不知道微软、比尔.盖茨、windows操作系统的中国人没有多少了。我也相信,绝大多数中国人不知道GNU、FSF,不知道理查德.马修.斯托曼(Richard.Matthew.Stallman, RMS),甚至包括许多计算机专业的大学生。这篇文章正是写给这些人看的,其主要材料来自于方兴东写的一篇关于斯托曼的传记类文章,加了一些个人理解。    中国,是一个软件盗版大国,我所见的人们,没有

2008-04-15 15:55:00 4717 3

原创 Arm linux2.4在Armadillo-9开发板上的build过程

Armadill0-9是Atmark Techno, Inc.公司开发的一款基于ARM 9的开发板,其支持MMu管理,以及低功耗,体积小巧深受开发人士的喜爱。如何build Armadillo-9的image呢?下面是本人总结的一些步骤,希望对其他学习使用Arm-adillo-9的同志有所帮助。取得内核系统,在这是linux2.4内核。linux-2.4.31-a9-3.tar.gz取得文件系

2008-04-01 15:57:00 1843

原创 在linux下设备文件读写实例

一般在linux下设备分为字符设备和块设备。字符设备是指设备发送和接收数据以字符的形式进行;而块设备则以整个数据缓冲区的形式进行。在linux下对任何的操作可以看成是对设备的操作。简单而言之,可以是看成对设备文件的读写操作。那么,怎样对linux 的设备文件进行读写呢?我们通过一段小程序来模拟linux下对字符设备文件的读写操作。程序如下(本程序基于linux2.6内核):1.定义自己的设备文

2008-04-01 15:02:00 13688 2

原创 预编译指令知多少?

    在编写C/C++程序时我们经常用#define指令,这是宏指令。类似的还有#error   #i f #else  #elif  #endif #ifdef  #ifndef  #undef  #line  #pragma 等很多,这些指令又是做什么的呢?让我们一起来学习吧!    由ANSI的标准规定, 预处理指令主要包括:     #define  #error   #i f #els

2008-03-27 13:03:00 2050

转载 编写可移植C/C++程序要点

C/C++自诞生以来就受到广大程序员的喜爱,编写C/C++程序容易,但写好程序不容易,写好可移植程序更不容易。如何做到程序在不同环境的移植呢?这里面有技巧。1.分层设计,隔离平台相关的代码。就像可测试性一样,可移植性也要从设计抓起。一般来说,最上层和最下层都不具有良好的可移植性。最上层是GUI,大多数GUI都不是跨平台的,如Win32 SDK和MFC。最下层是操作系统API,大多部分操作系统API

2008-03-27 12:31:00 1901

原创 ARM的异常中断机制

在我们平时使用计算机时我们敲击键盘,计算机会对我做出响应。这是什么原因呢?处理器又是如何响应外围请求的呢?其实这都是通过处理器的中断机制实现的。ARM又是怎样的中断机制?让我们一起探讨吧!在ARM处理器里主要是通过3中情况在控制程序执行的:1.流水方式执行程序,PC的值是下一条指令的地址,即每执行一条指令PC都加一个字的偏移。2.通过跳转指令来控制程序执行。   B 跳转到指定的指令处执行。  

2008-03-26 18:11:00 2086 1

转载 嵌入式程序员面试常见问题

        C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。   从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?这是个愚蠢的问题吗?如要你答出某个

2008-03-25 12:56:00 2051 2

原创 Emacs 学习总结

众所周知在linux下最牛的编辑器就是emacs,它以出色的快捷键使用、集成shell、与GCC编译器天然结合而著称。学习emacs吧,它会让编程成为乐趣,因为有了emacs。退出 Emacs,请用 C-x C-cC-v:下翻屏=page downM-v:上翻屏=page upC-l :将光标所在的位置或行位于屏幕的中央.(注意是 CONTROL-L,不是 CONTROL-1)      

2008-03-25 12:47:00 2211

原创 ARM寄存器介绍

ARM处理器包含多少寄存器?每种模式下又有那些寄存器?这些寄存器的作用又是什么?带着这些问题我们来学习ARM寄存器吧!相信看完这篇文章后你会有所收获。ARM处理器共有37个寄存器。它包含31个通用寄存器和6个状态寄存器。=======================================================================================U

2008-03-25 07:37:00 14995 2

原创 ARM 处理器模式

ARM处理器有几种模式,它又是如何组织的呢?在这里我们将介绍它的7种模式,它是如何进入这7中模式以及在这几种模式如何进行切换。======================================================================================processor mode                            descrip

2008-03-25 07:25:00 1915

原创 MTK6226 添加菜单实例

 一.编译事项在MTK_6226工程目录下有build.bat批处理文件,这是build程序的入口。设置path环境变量: set path=%path%:F:/MTK_6226/tools(假设工程在F盘).安装prel,以及ADS1.2版本并打上补丁。运行build命令,紧跟参数一个数字参数1~51 - New          (clean, scan, codegen, compile,

2008-02-27 17:11:00 3829 10

转载 MTK手机软件系统工程和配置简介

MTK是现在市场上所有国内手机设计、制造商使用的最多的一个完整的手机产品解决方案,大部分做手机的技术人员都对此有接触和了解。不过,MTK的整套软件系统十分庞大且复杂,很多刚接触这套系统的软件工程师一时不知如何进行配置和客户化定制。本文在此对整个MTK软件系统的工程结构和配置进行了简单介绍,希望通过此文和大家相互交流MTK软件系统的维护和修改、定制方面的心得。MTK使用了nucleus实时操作系

2008-02-27 11:08:00 1980

空空如也

空空如也

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

TA关注的人

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