
O.嵌入式系统开发
do2jiang
http://www.mythroad.net/modou
展开
-
我的老东家联发科与高通的假话题与真危机
据凤凰科技报道,联发科昨天发布其八核移动芯片“MT6592”,尽管高通一直强调“强大的核”而非“更多的核”,但联发科却坚定地认为“八核智能手机是大势所趋”。在不少业内人士看来,高通公司坚持现在不做八核芯片,是希望其现有的产品能够获得更多的销售收益;而联发科在四核盛行、八核芯片还不是很成熟的时候推出八核产品,是出于战略转型的考虑。“八核到底有没有意义”这个话题已经持续很长时间了,业界为此也分成了转载 2013-11-22 13:36:23 · 2041 阅读 · 0 评论 -
nfs:server is not responding,still trying 原因与解决方案
网上搜索了下“---nfs:server is not responding,still trying 原因与解决方案---本来还以为是nfs出了故障,但是google了一下发现原来不是nfs的原因,而是由于传送的数据太大,出现数据包丢失现象。 NFS 的默认传输协议是 UDP,而PC机与嵌入式系统通过UPD交互时就会出现严重的网卡丢包现象。可用的解决方案是:在客户端原创 2009-12-06 12:17:00 · 30029 阅读 · 4 评论 -
通过ssh连接开发板——arm-linux下ssh的移植
绿色文字为我所加的注释做这一步之前,首先确定已经你的本机上建立好了arm-linux交叉编译环境 #arm-linux-gcc -v开发板已与路由器相连,并进行了必要的网络配置,可以ping通本机1. 下载需要的源码,直接google最新的版本吧 mkdir -p ~/arm/fs ;mkdir -p ~/arm/source 下转载 2009-12-05 18:56:00 · 10730 阅读 · 3 评论 -
IIC总线驱动架构
1. Linux的I2C驱动架构Linux中I2C总线的驱动分为两个部分,总线驱动(BUS)和设备驱动(DEVICE)。其中总线驱动的职责,是为系统中每个I2C总线增加相应的读写方法。但是总线驱动本身并不会进行任何的通讯,它只是存在在那里,等待设备驱动原创 2009-10-31 14:12:00 · 1607 阅读 · 0 评论 -
Linux下IIC总线驱动 备忘
目录:1.四种模式的IIC驱动编写介绍2.一个完整的IIC驱动(从器件接收模式,并且是裸写驱动) 1.1 开启从器件接收模式的示例R_IICCON = 0xE2; // 使能ACK,使能中断R_IICADD = 0xAA; // 从器件地址R_原创 2009-10-31 14:09:00 · 1889 阅读 · 0 评论 -
中断号与芯片管脚关系
一直以来搞不懂这个中断号的来历,总以为是中断控制器自己规定的一个号,但是最近在看了s3c2440的中断控制后才发现不是这么一回事.2440的中断处理只能处理32个中断,但是其在内核中出现的中断号却有51,58等.而且它的外部中断INT4~7共享一个中断控制寄存器的一位,INT8~23也是共享控制寄存器的一位.我就好奇了,它怎么区分这些中断呢?而且在内核代码中它又很清楚的区分了这些中原创 2009-10-31 01:13:00 · 1925 阅读 · 0 评论 -
AT91RM9200的U-BOOT启动烧写过程【转】
关于启动过程1. 一开始令BMS=1(拔掉跳线),则系统从片内ROM中启动。内部启动程序初始化调试串口和USB设备接口从外部载入启动程序。在Windows平台下,启动超级终端,发送文件loader.bin和u-boot.bin到SDRAM,成功启动u-boot.2. 启动了u-boot后就利用u-boot的功能,发送boot.bin和u-boot.gz到SDRAM,然后再拷贝到FLASH,转载 2009-09-25 20:37:00 · 1677 阅读 · 0 评论 -
AT91RM9200启动机制简析
本文以H9200M开发板为例,简单分析一下AT91RM9200处理器的启动机制一 H9200M开发板简介 1.ATMEL的AT91RM9200微处理器 AT91RM9200微处理器是一款由ATMEL设计生产的嵌入式ARM微处理器,内含一个ARM920T核和以下主要片内外围:1) ARM920T ARM-Thumb 微处理器核2) 片内存储器 128K ROM: 地址 0x001原创 2009-09-25 20:32:00 · 1283 阅读 · 0 评论 -
MMU、虚存与UClinux
uClinux是专为无存储器管理单元(MMU)的微控制器打造的嵌入式Linux操作系统。uClinux首先被移植到摩托罗拉的MC68328 DragonBall集成微处理器上。从那以后, uClinux越来越受到业界的青睐, 被移植到更多的无MMU芯片上。目前,uClinux已成功移植到ARM7TDMI微处理器上。 由于uClinux主要是针对无MMU 微处理器开发的,大多数内核原创 2009-09-25 20:29:00 · 1435 阅读 · 0 评论 -
configure: error: Bluetooth library is required
From: Mats Erik Andersson comhem.se>Subject: Re: configure: error: Bluetooth library is requiredNewsgroups: gmane.linux.bluez.userDate: 2007-07-09 13:54:58 GMT (2 years, 11 weeks, 1 day, 1 hour and 4原创 2009-09-25 16:43:00 · 22136 阅读 · 5 评论 -
制作自己的Linux OS
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <object class转载 2010-03-08 20:50:00 · 1715 阅读 · 0 评论 -
EFLAGS寄存器内容详解
EFLAGS寄存器介绍,摘自Intel指令集参考,方便大家快速查阅。 The 32-bit EFLAGS register contains a group of status flags, a control flag, and a group of system flags. Figure 3-8 defines the flags within this register.原创 2010-03-18 21:46:00 · 4189 阅读 · 0 评论 -
ARM寄存器介绍
ARM寄存器介绍转载 2011-05-10 23:05:00 · 1264 阅读 · 0 评论 -
slab着色与cpu硬件高速缓存
学习LKD的时候,在内存管理一章的slab小节中,对于slab的着色只是一笔带过,并没有详细叙述,只好翻看了很多资料,稍微有了点儿概念,其实关键在于分清所谓的cache(高速缓存,包含多个slab块)和硬件高速缓存的概念。 slab的设计原理和主体代码不难理解,相应的内存管理效率提升原理也不难理解,问题在于slab着色的原理和用途。我们都知道slab中,相同大小的对象倾向于原创 2011-06-11 22:09:00 · 2948 阅读 · 0 评论 -
三次握手与四次挥手 机制
v/:* {behavior:url(#default#VML);}o/:* {behavior:url(#default#VML);}w/:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);} Normal 0 7.8 磅 0 2原创 2010-05-06 16:26:00 · 1682 阅读 · 0 评论 -
MCU实现I2C通信
当时接手这项工作时,对方给我一周的时间,我是自信可以在两三天内完成。因为对I2C的通信协议还是非常熟悉的,看下定时芯片RX-8025SA的规格书应该就可以搞定了。呵呵,又可以提前完成了!现在总结一下调试过程吧。 需要做的工作小结如下:1、MCU的I2C采用IO口模拟实现;2、MCU作为I2C主设备与定时芯片RX-8025SA建立通信;3、实现定时闹钟、定时唤醒及睡眠的功能;原创 2010-05-06 13:14:00 · 6514 阅读 · 0 评论 -
Yaffs文件系统结构
1.1简介 1.1.1应用场合Yaffs(YetAnotherFlashFileSystem)文件系统是专门针对NAND闪存设计的嵌入式文件系统,目前有YAFFS和YAFFS2两个版本,两个版本的主要区别之一在于YAFFS2能够更好的支持大容量的NANDFLASH芯片。Yaffs文件系统有些类似于JFFS/JFFS2文件系统,与之不同的是JFFS1/2文件系统最初是针对NORF转载 2010-05-02 00:43:00 · 1343 阅读 · 1 评论 -
信号机制、共享内存和消息队列
Linux进程间通信类型:1,管道通信 见上文2,信号机制3,共享内存4,消息队列5,信号量6,socket通信 注:本文重点讲述黑体字3种进程间通信类型 信号机制1,信号概述信号是软件中断。信号(signal)机制是Unix系统中最为古老的进程之间的通信机制。它用于在一个或多个进程之间传递异步信号。很多条件可以产生一个信号。n转载 2010-04-25 17:56:00 · 2430 阅读 · 0 评论 -
Linux下多线程(pthread)编程实例
Linux系统下的多线程遵循POSIX线程接口,称为 pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a。顺便说一下,Linux 下pthread的实现是通过系统调用clone()来实现的。clone()是 Linux所特有的系统调用,它的使用方式类似fork,关于clone()的详细情况,有兴趣的读者可以去查看有关文档说明。下转载 2010-04-25 18:07:00 · 28508 阅读 · 5 评论 -
linux的物理内存空间与线性地址空间的的对应关系
在支持MMU的32位处理器平台上,Linux系统中的物理存储空间和虚拟存储空间的地址范围分别都是从0x00000000到0xFFFFFFFF,共4GB,但物理存储空间与虚拟存储空间布局完全不同。Linux运行在虚拟存储空间,并负责把系统中实际存在的远小于4GB的物理内存根据不同需求映射到整个4GB的虚拟存储空间中。 物理存储空间布局Linux的物理存储空间布局与处理器相关,详细情况可以转载 2010-04-17 05:20:00 · 3898 阅读 · 1 评论 -
Qt/Embedded嵌入式开发环境的建立
一. 开发环境(1) Red Hat Enterprise Linux 5(2) Linux Kernel 2.6.18(3) (Qt开发包)qt-x原创 2010-01-10 13:45:00 · 1569 阅读 · 2 评论 -
交叉编译D-Bus之备忘录
安装包命令:./configure CC=arm-unknown-linux-gnu-gcc --prefix=/home/qudc/nfs --host=arm-linux --cache-file=arm-linux.cache指定交叉编译工具 指定安装路径 指定目标平台makemake install 1. 把"e原创 2009-09-25 16:33:00 · 9727 阅读 · 2 评论 -
Bluez D-Bus Architecture
The BlueZ D-Bus interfaces aim to provide seamless Bluetooth technology integration into the desktop. A central Bluetooth daemon "hcid"(planned to be renamed to bluetoothd) is responsi转载 2009-09-25 14:09:00 · 2414 阅读 · 0 评论 -
ARM平台上蓝牙协议栈Bluez的移植使用和配置
ARM平台上蓝牙协议栈Bluez的移植使用和配置 作者:刘旭晖 Raymond转载请注明出处 Email:colorant@163.com BLOG:http://blog.youkuaiyun.com/colorant/ 主页:http://rgbbones.googlepages.com/ Bluez作为当前最成熟的开源蓝牙协议栈,在Linux的各大发行版中已经得到了广泛的应用。在桌面环境下,使用Bl转载 2009-09-25 10:17:00 · 1369 阅读 · 0 评论 -
ARM7与ARM9内核的区别
ARM7内核是0.9MIPS/MHz的三级流水线和冯·诺伊曼结构; ARM9内核是5级流水线,提供1.1MIPS/MHz的哈佛结构。 ARM7没有MMU,ARM720T是MMU的 ,ARM9主要包括ARM9TDMI和ARM9E-S等系列ARM9是有MMU的,ARM940T只有Memory protection unit.不是一个完整的MMU。 ARM9的时钟频率比ARM7更高,采用哈佛结构区分了数原创 2009-09-10 17:30:00 · 2308 阅读 · 0 评论 -
arm体系结构命名方法
arm体系结构共定义了6个版本,版本号分别为1~6。arm体系的变种:将某些特定功能称为arm体系的某种变种(variant) #T变种(Thumb指令集)表示Thumb,该内核可从16位指令集扩充到32位ARM指令集。 #D:表示Debug,该内核中放置了用于调试的结构,通常它为一个边界扫描链JTAG,可使CPU进入调试模式,从而可方便地进行断点设置、单步调试。 #M变种(长乘法指令原创 2009-09-10 15:39:00 · 1303 阅读 · 0 评论 -
NandFlash启动理解(S3C2410)
1.在板子上电的一开始,首先自动判断是否是autoboot模式(这是由硬件设计阶段,由硬件工程师对mcu的引脚连线决定的),我所使用的s3c2410是带有nandflash的,并切被设置成autoboot,从nandflash开始启动. 2.在判断是autoboot模式后,mcu内置的nandflash控制器自动将nandflash的最前面的4k区域(这4k区域存放着原创 2009-09-10 19:52:00 · 1341 阅读 · 0 评论 -
成功移植U-boot-1.2.0到S3C2410
文章说明:calmarrow(lqm)原创文章引自:http://piaoxiang.cublog.cn 前段时间移植了vivi-0.1.4,也对源代码进行了解析学习。原本的想法是给vivi增加tftp功能,那么就需要写cs8900a驱动(我用的网卡芯片是CS8900A-CQ3Z),然后呢实现tftp协议,最后添加到vivi支持的命令集中转载 2009-08-31 11:20:00 · 1809 阅读 · 0 评论 -
OMS,Ophone,Iphone,android之间关系
1、什么是OMS系统? 简单的说OMS是一种为中国移动“深度定制”的移动操作系统。他基于Linux内核,并采用了Android源代码,但在业务层和用户体验层与此前的谷歌手机并不相同。 移动业务层面:OMS在终端手机上完整深度订制了“飞信、快讯、无线音乐随身听、139邮箱、移动梦网、号簿管家、百宝箱等”中国移动数据业务。实际上OMS的用户界面设计之初就是把这些业务当作基本功能的一部分原创 2009-08-31 10:44:00 · 2048 阅读 · 1 评论 -
Linux下patch的制作和应用(转)
因为在u-boot移植过程中,有几处通用文件要修改,如果每次都要手动修改就太麻烦了。制作补丁可以解决这个问题。学习资料的收集比较简单,方法一类似于这种初级问题网上资料非常丰富,google或者baidu搜索一下,然后选择有价值的资料,方法二是阅读man在线文档。完成收集工作,当然最终要在自己的Linux上作实验,比较总结,消化吸收为自己的东西。要除去这么一种错误思想:一定要学全。要知道,一次原创 2009-08-24 09:40:00 · 714 阅读 · 0 评论 -
浅析IO缓冲区
作者:华清远见高级讲师 曾宏安学习过编程的朋友都知道ANSI C里定义的标准I/O是一种带缓冲的高级磁盘I/O,目的是尽可能减少使用read和write系统调用的次数,从而提高I/O效率。标准I/O提供了3种类型的缓冲类型。全缓冲。在这种情况下,当填满标准I/O缓存后才进行实际I/O操作。对驻留在磁盘上的文件的访问通常是由标准I/O库实施全缓冲的。行缓冲。在这种情况下,当在输入和输出中原创 2009-08-23 21:29:00 · 3768 阅读 · 0 评论 -
skyeye移植到windows下,喜欢的朋友随意下!
前段时间用了下skyeye进行arm板子的模拟,觉得挺好的 可以不用带着板子,随时随地开发,由于用的是vmware+linux+skyeye跑起来实在太慢,无法忍受~决定移植到windows下来,网上查找了下资料,帖子如下 http://www.yuanma.org/data/2006/0412/article_243.htm 按照上面的步骤来,没什么大问题,在sdl和skyeye 的编译过程原创 2009-06-15 18:14:00 · 3645 阅读 · 0 评论 -
USB2COM驱动的加载步骤之备忘
USB2COM驱动的加载步骤之备忘蒋冬冬 2009-5-8do2jiang@gmail.com 1.make menuconfig usb support项中(M)USB Serial Converter Surpport,(M)usb generic serial driver选中,(M)usb prolific 2303 single port serial原创 2009-05-17 17:14:00 · 1728 阅读 · 0 评论 -
Thumb mode 与 ARM mode比较
一般來說, 對於同一份C程式, 分別編譯為ARM mode及Thumb mode, 有下列差異:Thumb mode的code size為ARM mode的70% Thumb mode需要使用的指令比ARM mode多40%以上 在32位元的記憶體架構下, ARM mode的code比Thumb mode的code快40% 在16位元的記憶體架構下, Thumb mode的co原创 2009-09-12 19:25:00 · 4439 阅读 · 0 评论 -
FLASH位宽为8、16、32时,CPU与外设之间地址线的连接方法
flash连接CPU时,根据不同的数据宽度,比如16位的NOR FLASH (A0-A19),处理器的地址线要(A1-A20)左移偏1位。为什么要偏1位?从软件和CPU的角度而言,一个地址对应一个字节,就是8位数据。这是肯定的,不要怀疑这点。对于具体器件而言,它的位宽是一定的,所谓位宽,指的是“读/写操作时,最小的数据单元”──别说最小单元是“位”,一般设备上没有单独的“位操作”,修改位时通过把整原创 2009-09-11 12:53:00 · 5090 阅读 · 0 评论 -
存储器扩展连接理解(S3C2410为例)——SDRAM
由于S3C2410是32位处理器(指令一次能够操作32位数据(运算器一次可以处理32位数据);通用寄存器多是32位寄存器;处理器内部数据通道也是32位的;处理器外部数据总线宽度通常是32位的,地址总线宽度只是代表CPU寻址范围大小,与CPU是多少位的无关,也即32位CPU的地址总线不一定是32根的,例如对于s3c2410,每一个Bank对应27根地址线,寻址能力为128MB,全部8个Bank总的寻原创 2009-09-11 15:25:00 · 5378 阅读 · 0 评论 -
KVM移植到ARM-Linux步骤
所需源代码: 1、j2sdk-1_4_2_18-linux-i586.bin,不推荐使用jdk1.5及以上版本,不能编译通过 2、j2me_cldc-1_1-fcs-src-winunix.zip包,此zip包包含KVM的源代码 3、arm-linux-gcc-2.95.3 或者 arm-linux-gcc-3.3 都能OKay原创 2009-09-24 17:40:00 · 2438 阅读 · 0 评论 -
MMU解释
I. 什么是MMU,MMU的作用MMU是Memory Management Unit的缩写. 针对各种CPU, MMU是个可选的配件. MMU负责的是虚拟地址到物理地址的转换. 提供硬件机制的内存访问授权. 现代的多用户多进程操作系统, 需要MMU, 才能达到每个用户进程都拥有自己的独立的地址空间的目标. 使用MMU, OS划分出一段地址区域, 在这块地址区域中, 每个进程看到的内容都不一原创 2009-09-25 23:18:00 · 1438 阅读 · 0 评论 -
libtool的工作原理
libtool 是一个通用库支持脚本,将使用动态库的复杂性隐藏在统一、可移植的接口中;使用libtool的标准方法,可以在不同平台上创建并调用动态库。可以认为libtool是gcc的一个抽象,其包装了gcc(或者其他的编译器),用户无需知道细节,只要告诉libtool需要编译哪些库即可,libtool将处理库的依赖等细节。libtool只与后缀名为lo、la为的libtool文件打交道。(lo是目原创 2009-09-25 23:00:00 · 967 阅读 · 0 评论 -
U-BOOT全线移植分析系列之三 U-BOOT在AT91RM9200上的移植
装载自:http://blog.youkuaiyun.com/sailor_8318/archive/2008/08/05/2773307.aspx {摘要}本节介绍了 U-boot 在 AT91RM9200 上移植的详细过程 。首先分析 AT91RM9200 片内片外启动的详细流程,接着介绍了 AT91RM9200 启动所需几个文件的执行流程。针对片内片外存储器的映射情况,介绍了 bootlo原创 2009-09-25 22:43:00 · 1103 阅读 · 0 评论