- 博客(23)
- 资源 (11)
- 收藏
- 关注
转载 串烧
<br />事物总有个核心,复杂的事物总可以模块化、层次化, 嵌入式Linux也如此。学习嵌入式Linux困难,主要因为涉及知识和概念过多,即比较复杂,所以学习嵌入式Linux的就需要找到核心,需要模块化,需要进行层次划分。<br /><br /> 嵌入式Linux系统做模块化处理就是可划分为Bootloader(引导程序),Kernel(内核),fs(文件系统),Shell(命令行界面),Gui(图形库)和 Embeded Sql(嵌入式数据库)等。以上就是嵌入式Linux系统的7个重要模块,通过这些就
2010-06-28 18:04:00 906
原创 CONST 精解
<br />C中CONST的使用: <br /> const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。 <br /> 虽然这听起来很简单,但实际上,const的使用也是c语言中一个比较微妙的地方,微妙在何处呢?请看下面几个问题。 <br /> 问题:const变量 & 常量 <br /> 为什么下面的例子在使用一个const变量来初始化数组,ANSI
2010-06-26 19:45:00 977
原创 linux进程控制
linux进程控制-wait() #include /* 提供类型pid_t的定义 */#include pid_t wait(int *status) 进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已经变成僵尸的子进程,wait就会收集这个子进程的信息,并把它彻底销毁后返回;如果没有找到这样一个子进程,wait就会一直阻塞在这里,直到有一个出现为止。参数status用来保存被收集进程退出时的一些状态,它是一个指向int类型
2010-06-26 18:38:00 944
原创 void
<br />1.概述<br /> 本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。<br /> 2.void的含义<br /> void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。<br /> void几乎只有“注释”和限制程序的作用,因为从来没有人会定义一个void变量,让我们试着来定义:<br /> void a;<br /> 这行语句编译时会出错,提示“illegal use of type 'vo
2010-06-24 23:50:00 1015
原创 void指针
void指针<br />指针有两个属性:指向变量/对象的地址和长度<br />但是指针只存储地址,长度则取决于指针的类型 <br />编译器根据指针的类型从指针指向的地址向后寻址 <br />指针类型不同则寻址范围也不同,比如: <br />int*从指定地址向后寻找4字节作为变量的存储单元 <br />double*从指定地址向后寻找8字节作为变量的存储单元 <br /><br />1.void指针是一种特别的指针 <br /> void *vp <br /> //说它特别是因为它没有类型 <br
2010-06-24 23:45:00 994
原创 grub
什么是grub grub 是一个多重启动管理器。grub是GRand Unified Bootloader的缩写,它可以在 多个操作系统共存时选择引导哪个系统。它可以引导的操作系统包括Linux,FreeBSD,So laris,NetBSD,BeOSi,OS/2,Windows95/98,Windows NT,Windows2000。它可以载入操作系 统的内核和初始化操作系统(如Linux,FreeBSD),或者把引导权交给操作系统(如Win dows 98)来
2010-06-19 19:32:00 938
原创 大赞此文
<br />本文从以下几个方面粗浅地分析u-boot并移植到FS2410板上:<br />1、u-boot工程的总体结构<br />2、u-boot的流程、主要的数据结构、内存分配。<br />3、u-boot的重要细节,主要分析流程中各函数的功能。<br />4、基于FS2410板子的u-boot移植。实现了NOR Flash和NAND Flash启动,网络功能。 <br />这些认识源于自己移植u-boot过程中查找的资料和对源码的简单阅读。下面主要以smdk2410为分析对象。<br /> <br /
2010-06-19 19:10:00 5065
转载 ARM汇编伪指令 .word
ARM汇编伪指令 .word ARM汇编伪指令 .word<br /><br />经常碰到那些以“.”打头的一些令人头疼的伪指令, <br />至于.globl _start .balign .align .data .text等等就算了,最最bt的如下: <br /><br />_undefined_instruction: .word undefined_instruction <br /><br />这个.word令人费解。网上的技术人员都不屑回答,说请参考GNU ASM。我去看了,对于.word解
2010-06-19 17:14:00 15126 1
转载 U-Boot 1.1.6 基于S3C44B0的移植
U-Boot 1.1.6 基于S3C44B0的移植<br /><br /><br />说明1:本文档基于hfrk 的ARM7 S3C44B0 开发板配置平台。<br />说明2:U-Boot 1.1.6 的移植,基于ARM7 S3C44B0的hfrk U-Boot 1.1.1能够正常工作的包裹提取适当文件合并至U-Boot 1.1.6中,并适当修改Makefile实现。<br /><br />提供U-Boot 1.1.6 -MQ问题的解决方案。<br />提供U-Boot 1.1.6 的测试与修改方案。<b
2010-06-19 16:15:00 1822
转载 MCU 中断划分
<br /><br /><br /><br />mcu由于内部资源的限制,软件设计有其特殊性,程序一般没有复杂的算法以及数据结构,代码量也不大, 通常不会使用 OS (Operating System), 因为对于一个只有 若干K ROM, 一百多byte RAM 的 mcu 来说,一个简单OS 也会吃掉大部分的资源。<br /><br /> <br /><br />对于无 os 的系统,流行的设计是主程序(主循环 ) + (定时)中断,这种结构虽然符合自然想法,不过却有很多不利之处,首先是中断可以在主程序
2010-06-19 16:05:00 1876
原创 uCLinux LINUX区别
<br />对uCLinux来说,其设计针对没有MMU的处理器,不能使用处理器的虚拟内存管理技术。uCLinux仍然采用存储器的分页管理,系统在启动时把实际存储器进行分页。在加载应用程序时程序分页加载。但是由于没有MMU管理,所以实际上uCLinux采用实存储器管理策略。uCLinux系统对于内存的访问是直接的,所有程序中访问的地址都是实际的物理地址。操作系统对内存空间没有保护,各个进程实际上共享一个运行空间。一个进程在执行前,系统必须为进程分配足够的连续地址空间,然后全部载入主存储器的连续空间中。<br
2010-06-18 15:48:00 5001
转载 Linux和uClinux比较分析
<br />Linux和uClinux比较分析 <br /> 标准Linux是针对有MMU的处理器设计的。在这种处理器上,虚拟地址被送到MMU,把虚拟地址映射为物理地址。通过赋予每个任务不同的虚拟-物理地址转换映射,支持不同任务之间的保护。 uClinux是针对控制领域的嵌入式linux操作系统,它从Linux 2.0/2.4内核派生而来,沿袭了主流Linux的绝大部分特性。适合不具备内存管理单元(MMU)的微处理器/微控制器。没有MMU支持是uClinux与主流Linux的基本差异。
2010-06-18 15:44:00 1297
转载 解压tar包
linux 基础知识 解压tar包(1)解压bz2后缀的tar包:<br />bzip2 -d gcc-4.1.0.tar.bz2 <br />---上面解压完之后执行解压tar包命令.<br />(2) http://linux.chinaunix.net/bbs/archiver/tid-1014580.html<br />tar时加一个参数m<br />tar xjmvf <br />//使得 时间戳 错误没有<br /><br />(3)搞定tar包:<br />一、 解析Linux应用软件安装
2010-06-18 15:15:00 5951
原创 动态链接库
<br />库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀。例如:libhello.so libhello.a <br />为了在同一系统中使用不同版本的库,可以在库文件名后加上版本号为后缀,例如: libhello.so.1.0,由于程序连接默认以.so为文件后缀名。所以为了使用这些库,通常使用建立符号连接的方式。 <br />ln -s libhello.so.1.0 libhello.so.1 <br />ln -s libhello.so.1 libhello.so <br />使用库
2010-06-17 18:19:00 1036
原创 动态链接和动态链接库
动态链接(Dynamic Linking)是相对于静态链接(Static Linking)而言的。程序设计中,为了能做到代码和模块的重用,程序设计者常常将常用的功能函数做成库,当程序需要实现某种功能时,就直接调用库文件中的函数,从而实现了代码的重用。早期的程序设计中,可重用的函数模块以编译好的二进制代码形式放于静态库文件中,在MS的操作系统中是Lib为后缀的文件。程序编写时,如果用户程序调用到了静态库文件中的函数,则在程序编译时,编译器会自动将相关函数的二进制代码从静态库文件中复制到用户目标程序,与目标程序
2010-06-17 17:55:00 942
原创 何为NFS
Network File System NFS 是由SUN公司发展, 并於1984年推出, NFS是一个RPC service ,它使我们能够达到档案的共享, 它的设计是为了在不同的系统间使用, 所以它的通讯协定设计与主机及作业系统无关.当使用者想用远端档案时只要用"mount"就可把remote档案系统挂接在自己的档案系统之下,使得远端的档案使用上和local机器的档案没两样. machine A machine B / / bin etc usr bin etc usr man ma
2010-06-17 17:29:00 776
转载 BUSYBOX
<br />busybox<br /> BusyBox 是标准 Linux 工具的一个单个可执行实现。BusyBox 包含了一些简单的工具,例如 cat 和 echo,还包含了一些更大、更复杂的工具,例如 grep、find、mount 以及 telnet。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀.简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令。<br /> 1、BusyBox 的诞生<br /> BusyBox 最初是由 Bruce Pere
2010-06-17 16:40:00 859
原创 线程进程的区别
<br />进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程(Process)和线程(Thread)的区别在于: 线程的划分尺度小于进程,使得多线程程序的并发性高。 线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。 进程是指在系统中正在运行的一个应用程序;线程是系统分配处理器时间资源的基本单元,或者说进程之内
2010-06-15 16:37:00 779
转载 嵌入式系统中的位置无关代码
ARM位置无关代码设计规范<br />/*******************************************/<br />参考:ARM的位置无关程序设计在bootloader中的应用.黄振华<br />/*******************************************/<br />位置无关代码(PIC)在嵌入式系统设计中具有很重要的作用,尤其是在裸机状态下bootloader程序以及进行内核初始化设计;利用PIC也可以构建高效的动态链接库。<br />概念<br />
2010-06-15 16:00:00 1870
转载 SDRAM
SDRAM工作过程:<br /><br />1,上电稳定后经过8个刷新周期,进入模式寄存器设置(MRS),确定芯片的工作模式,CL,BL,突发传输方式。 <br /><br />2,行有效,同时进行了片选和BANK选择工作。CS RAS有效 CAS WE无效,地址线和BA上选择相应的BANK和行(有些文档中将这两种都归为地址线,BA为地址的最高位)。 <br /><br />3,列读写,当行有效后,选择需要的列进行读或写操作,CAS有效,RAS无效,地址线上为列地址,WE信号决定了究竟是读还是写操作。
2010-06-13 19:37:00 1118
原创 44b0 IIC24cXX读问题分析
<br /> 貌似有一部分人在IIC的读部分碰到问题,或许是有BUG你没发现。也许这些问题只有我这个菜鸟才会碰见,不过我还是要说说,希望能帮到像我一样的菜鸟。这一部分属于裸奔,干操作系统的同志可以避开了。 44b0的IIC控制器感觉跟其他片子有点不同。因为在读的时候需要对IICCDS读两次才能读出有效的数据。至于第一次读出的数据是什么呢? 仿真了多次,的确就是写在IICDS的24Cxx的器件地址。需要首先将他读出之后,再读一次才能接收到有效数据。这种解释正好符合了三星的官方例程。而有些书上则省略了第一
2010-06-11 22:42:00 1243
原创 UART+FIFO+DMA for 44b0
在搞启用fifo和BDMA的UART时,确实走了不少弯路。昨天一下午的时间我都在用轮询法检测DMA的运行情况,加上BDMA配置上犯了这样那样的错误,昨天一直都在报RUNOVER。总算在昨晚熄灯的最后时刻,停止了溢出,可接包总是丢失。对于这种最稳定的模式,这种现象是不该出现的。 考虑来考虑去,原来是我犯了低级错误。轮询怎么能用在DMA模式呢?而且我保接包数量放在普通函数中计算,通过轮询BDCON的SET位。结果可想而知。本身BDMA的数据传输就不经过CPU,而执行计数函数前又要执行其他函数或中断
2010-06-02 16:31:00 2822
原创 基于DMA的UART通讯 for 44B0
文章首先介绍了UART通讯时常采用的查询接收方式、中断接收方式的缺点,介绍了S3C44B0X处理器中通过UART口,采用DMA方式接收数据的方法以及关键的代码,并分析了采用DMA方式比采用中断方式与查询方式的优点。试验证明,基于DMA的UART通讯,为CPU进一步减轻了负担,提高了通讯的可靠性。 High efficiency UARTcommunication based on DMA controller in ARM processor and its applicationAbstract: Com
2010-06-01 15:32:00 2542
Android Ublox GPS 驱动
2013-05-02
Android Gps HAL
2013-05-01
tiny210-u-boot-version4.0
2013-01-31
u-boot for tiny210 ver3.1
2012-04-08
tiny210-u-boot-version3.0
2012-04-02
u-boot-for-tiny210-patch-ver2.2
2012-03-18
u-boot for tiny210 ver2.2
2012-03-18
u-boot for tiny210 ver2.1
2012-03-10
u-boot for tiny210 version2
2012-03-03
u-boot for tiny210
2012-02-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人