嵌入式学习
文章平均质量分 70
dongliqiang2006
这个作者很懒,什么都没留下…
展开
-
Linux 内核启动分析(转)
Linux 内核启动分析(转) Linux 内核启动分析1. 内核启动地址1.1. 名词解释ZTEXTADDR解压代码运行的开始地址。没有物理地址和虚拟地址之分,因为此时MMU处于关闭状态。这个地址不一定时RAM的地址,可以是支持读写寻址的flash等存储中介。Start address of decompressor. h转载 2010-01-14 15:58:00 · 1423 阅读 · 0 评论 -
GNU make 的主要预定义变量
GNU make 的主要预定义变量预定义变量 含义$* 不包含扩展名的目标文件名称。$+ 所有的依赖文件,以空格分开,并以出现的先后为序,可能包含重复的依赖文件。$$? 所有的依赖文件,以空格分开,这些依赖文件的修改日期比目标的创建日期晚。$@转载 2010-01-13 11:56:00 · 1287 阅读 · 0 评论 -
dma是什么意思? 什么是dma?
dma是什么意思? 什么是dma?DMA的英文拼写是“Direct MemoryAccess”,汉语的意思就是直接内存访问,是一种不经过CPU而直接从内存了存取数据的数据交换模式。PIO模式下硬盘和内存之间的数据传输是由CPU来控制的;而在DMA模式下,CPU只须向DMA控制器下达指令,让DMA控制器来处理数的传送,数据传送完毕再把信息反馈给CPU,这样就很大程度上减轻了C转载 2010-01-18 11:51:00 · 4886 阅读 · 0 评论 -
linux shell编程if语句内判断参数
shell 编程中使用到得if语句内判断参数–b 当file存在并且是块文件时返回真-c 当file存在并且是字符文件时返回真-d 当pathname存在并且是一个目录时返回真-e 当pathname指定的文件或目录存在时返回真-f 当file存在并且是正规文件时返回真-g 当由pathname指定的文件或目录存在并且设置了SGID位时返回为真-h 当file存在并且是原创 2010-01-18 11:00:00 · 1668 阅读 · 0 评论 -
RGB与YUV图像视频格式的相互转换(转)
摘要:通过本文您可以学习到如何把图像转换为电视视频格式,YUV图像视频主要应用于电视和游戏视频显示。笔者以一张24位BMP图像为例实现RGB与YUV相互转换。如果您对图像转换成电视场制的视频格式有疑惑,相信本文能使您了解更多关于图像与视频格式转换的细节。 目录: 显示器图像显示概述 电视图像显示概述 RGB介绍 YUV介绍 隔行转载 2010-01-21 11:12:00 · 1545 阅读 · 0 评论 -
移植Boa Web服务器到ARM-Linux系统
本次移植的主要参考资料: 1、 《嵌入式Web服务器移植 》是网上一份Boa移植文档,比较全面。本文档就是基本参照它来写的。基本上上可以说是这篇文章的修改版,增加了我的移植经验。由于这篇文章被转载得到处都是,我实在无法找到出处。在这里衷心的感谢文章作者!! 2、 《构建嵌入式Linux系统》的第十章 设置网络服务 中的Boa移植部分。 一、B转载 2010-01-22 15:13:00 · 697 阅读 · 0 评论 -
cmem模块
模块cmemk.ko为ARM和DSP通信提供连续的内存,装载的格式为:insmod cmemk.ko pools=4x30000,2x500000phys_start=0x0 phys_end=0x3000000 pools_1=4x65536phys_start_1=0x80000000 phys_end_1=0x80010000表明在内存0x0~0x2ffffff上转载 2010-01-21 09:55:00 · 2632 阅读 · 0 评论 -
嵌入式Web服务器Boa的移植及其应用
随着嵌入式技术的发展和高速宽带网络的普及, 利用网络实现远程监控已为人们广泛接受, 嵌入式网络监控技术正是在此条件下逐步发展成熟起来的. 用户使用Web 浏览器, 通过以太网远程访问内置Web 服务器的监控摄像机, 不但可以实现对现场的远程视频监控,而且可以向监控现场发送指令. 在整个系统的实现过程中, 嵌入式Web 服务器起着十分重要的作用, 因此, 在嵌入式网络视频监控系转载 2010-01-22 16:04:00 · 1911 阅读 · 0 评论 -
HTTP协议简介
什么是HTTP协议HTTP 协议定义服务器端和客户端之间文件传输的沟通方式。目前HTTP协议的版本是Http1.1。RFC 2616描述了HTTP协议的具体信息。 这个协议已经成为浏览器和Web站点之间的标准。当我上网的时候底层是如何进行交互的?当访问者点击一个超链接的时候,将会给浏览器提交一个URL地址。通过这个URL地址,浏览器便知道去链接那个网站并去取得具体的页面文件(也转载 2010-01-22 16:37:00 · 767 阅读 · 0 评论 -
DMA模式
DMA的英文拼写是“Direct Memory Access”,汉语的意思就是直接内存访问,是一种不经过CPU而直接从内存存取数据的数据交换模式。PIO模式下硬盘和内存之间的数据传输是由CPU来控制的;而在DMA模式下,CPU只须向DMA控制器下达指令,让DMA控制器来处理数据的传送,数据传送完毕再把信息反馈给CPU,这样就很大程度上减轻了CPU资源占有率。DMA模式与PIO模式的区别转载 2010-01-21 10:33:00 · 891 阅读 · 0 评论 -
WWW的核心——HTTP协议(转)
众所周知,Internet的基本协议是TCP/IP协议,目前广泛采用的FTP、ArchieGopher等是建立在TCP/IP协议之上的应用层协议,不同的协议对应着不同的应用。 WWW服务器使用的主要协议是HTTP协议,即超文体传输协议。由于HTTP协议支持的服务不限于WWW,还可以是其它服务,因而HTTP协议允许用户在统一的界面下,采用不同的协议访问不同的服务,如FTP、Arch转载 2010-01-22 16:09:00 · 751 阅读 · 0 评论 -
Windows2003下搭建FTP服务器教程
Windows2003下搭建FTP服务器教程 Windows 2003Standard Edition、Windows 2003 Enterprise Edition、Windows XPProfessional 、Windows 2000 Server、Windows 2000 Advanced Server 以及Windows 2000 Profe转载 2010-01-26 11:30:00 · 1255 阅读 · 0 评论 -
UPnP协议
统一即插即用英文是Universal Plug and Play,缩写为UPnP。要说计算机外设的即插即用(Plug andPlay(缩写PnP)),大家可能很熟悉,但对统一即插即用,多数人会感到是一头雾水。由于windowsxp加入对UPnP的支持,并且被查出存在很严重的安全问题,所以,一时间,使得UPnP名声大噪。巧的是,本人原来查阅过关于UPnP的技术白皮书,而且也较为详细地看了转载 2010-01-28 11:16:00 · 667 阅读 · 0 评论 -
头文件的用途和结构
头文件的用途和结构早期的编程语言如BASIC、Fortran没有头文件的概念,C++/C语言的初学者虽然会使用头文件,但常常不明其理。这里对头文件的作用略做解释。【提示10-2】: (1)通过头文件来调用库功能。在很多场合,源代码不便(或不准)向用户公布,只要向用户提供头文件和二进制的库即可。用户只需按照头文件中的接口声明来调用库函数,而不必关心接口是怎么实现的。连接器会从库转载 2010-02-02 10:20:00 · 752 阅读 · 0 评论 -
typedef struct 用法详解
document.body.oncopy = function() { if (window.clipboardData) { s转载 2010-02-02 11:00:00 · 883 阅读 · 0 评论 -
块设备驱动分析
块设备驱动分析块设备驱动分析,基于sbull开始之前先来了解这个块设备中的核心数据结构:struct sbull_dev { int size; /* Device size in sectors */转载 2010-02-04 09:36:00 · 905 阅读 · 0 评论 -
rtsp简介(ZT)
rtsp简介(ZT)Real Time Streaming Protocol或者RTSP(实时流媒体协议),是由Real network 和Netscape共同提出的如何有效地在IP网络上传输流媒体数据的应用层协议。RTSP提供一种可扩展的框架,使能够提供能控制的,按需传输实时数据,比如音频和视频文件。源数据可以包括现场数据的反馈和存贮的文件。rtsp对流媒体提供了诸如暂停,快进等转载 2010-02-04 11:41:00 · 948 阅读 · 0 评论 -
C语言中的联合体union
在C/C++程序的编写中,当多个基本数据类型或复合数据结构要占用同一片内存时,我们要使用联合体;当多种类型,多个对象,多个事物只取其一时(我们姑且通俗地称其为“n 选1”),我们也可以使用联合体来发挥其长处。首先看一段代码:union myun { struct { int x; int y; int z; }u; int k; }a; int main() {转载 2010-02-09 15:55:00 · 626 阅读 · 0 评论 -
C语言中volatile的用法
<!-- if (typeof addblog != "undefined"){ document.write(addblog); } // --> 嵌入式编程中经常用到 volatile这个关键字,在网上查了下他的用法可以归结为以下两点:一:告诉compiler不能做任何优化转载 2010-02-21 16:37:00 · 642 阅读 · 0 评论 -
在linux中 应用程序如何调用模块内的函数
在bbs上发了个如题所示的大土帖,结果没一个回复,哎,真丢人~~~,蒙师兄指点,才初步搞清楚linux模块函数的调用机制:首先,应用程序是无法直接访问模块中的函数的(即使是你自编自挂的模块--实际上它也是内核模块),用户空间与内核空间之间只有通过一些特定的系统函数来进行通讯(如什么user_to_kernel),而绝对不可能通过“直接调用模块里的函数”这种形式来通讯。那转载 2009-12-29 16:52:00 · 863 阅读 · 2 评论 -
ar和nm命令的使用
ar和nm命令的使用当我们的程序中有经常使用的模块,而且这种模块在其他程序中也会用到,这时按照软件重用的思想,我们应该将它们生成库,使得以后编程可以减少开发代码量。这里介绍两个命令ar和nm,用来对库操作。 By Wing, 出处:only_you 当我们的程序中有经常使用的模块,而且这种模块在其他程序中也会用到,这时按照软件重用的思想,我们应该将它们生成库,使转载 2010-01-04 16:19:00 · 508 阅读 · 0 评论 -
ar和nm命令的对库的使用
当我们的程序中有经常使用的模块,而且这种模块在其他程序中也会用到,这时按照软件重用的思想,我们应该将它们生成库,使得以后编程可以减少开发代码量。这里介绍两个命令ar和nm,用来对库操作。1.ar基本用法 ar命令可以用来创建、修改库,也可以从库中提出单个模块。库是一单独的文件,里面包含了按照特定的结构组织起来的其它的一些文件(称做此库文件的member)。原始文件的内容、模式、时间戳原创 2010-01-06 14:08:00 · 700 阅读 · 0 评论 -
UBOOT 的 lowlevel_init.S,代码分析,底层分析,底层初始化
这个文件主要是设置系统时钟,初始化flash,以及SDRAM。。。 ../u-boot-1.3.1/cpu/arm920t/at91rm9200/lowlevel_init.S#include #include //CONFIG_SKIP_LOWLEVEL_INIT定义见../u-boot-1.3.1/include/configs/at91rm9200dk.h #ifnd原创 2010-04-22 15:04:00 · 914 阅读 · 0 评论 -
U-Boot源代码阅读笔记(二) —— 对lowlevel_init.S的分析
本文主要分析与U-Boot启动过程相关的汇编代码lowlevel_init.S,目标平台以PXA270为例。文件位于board/myboard/lowlevel_init.S,主要执行内存相关的初始化 * 把链接寄存器LR(即R14)的值转存到寄存器R10中,以便lowlevel_init完成后恢复执行 .globl lowlevel_init lowle原创 2010-04-22 15:32:00 · 843 阅读 · 0 评论 -
U-BOOT源码分析及移植
本文从以下几个方面粗浅地分析u-boot并移植到FS2410板上:1、u-boot工程的总体结构2、u-boot的流程、主要的数据结构、内存分配。3、u-boot的重要细节,主要分析流程中各函数的功能。4、基于FS2410板子的u-boot移植。实现了NOR Flash和NAND Flash启动,网络功能。 这些认识源于自己移植u-boot过程中查找的资料和对源码的简单阅读。下转载 2010-04-23 14:51:00 · 600 阅读 · 1 评论 -
U-Boot源代码阅读笔记(一) —— 对start.S的分析
本文主要分析与U-Boot启动过程相关的汇编代码cpu/pxa/start.S,目标平台以PXA270为例。系统启动执行的第一条指令/* armboot - Startup Code for XScale */.globl _start_start: b reset /*跳转到reset标号执行*/设置cpu为superviser模式rese转载 2010-04-22 15:35:00 · 839 阅读 · 0 评论 -
基于MTD的NAND驱动开发
大约用了两个礼拜不到的时间为公司的IPcamera系统写了基于MTD的NAND驱动(linux-2.6.22.10内核),目前已可以在该驱动的支持下跑cramfs和jffs2文件系统,另外,该驱动也可以同时支持small page(每页512 Byte)和big page(每页2048 Byte)两种NAND芯片。在此整理一下与NAND驱动相关的转载 2010-04-23 09:14:00 · 719 阅读 · 0 评论 -
嵌入式Http服务器BOA移植经验总结(qiang)
<br /> <!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } --><br />经过2天的时间,终于将BOA服务器移植到了我的DM365的IPCam上了!现将个人经验于大家一起分享!<br />环境:<br />主机:ubuntu9.10<br />交叉编译工具:arm_v5t_le<br />目标板:TI公司的DM365<br />详细过程如下:<br原创 2010-07-01 16:16:00 · 3228 阅读 · 2 评论 -
boa嵌入式移植
<br />下面给大家介绍一下Boa服务器移植的具体操作步骤,希望能够有帮助。<br />环境<br /> 主机:ubuntu8.10<br /> 交叉工具链:gcc-3.4.5-glibc-2.3.6<br /> 目标:s3c2410开发板<br />结合网上一些文档,整理了一个比较完整的文档。<br />1.下载Boa源码<br />下载地址: http://www.boa.org/<br />最新发行版本: 0.94.13<br />下载 boa-0.9转载 2010-06-30 18:25:00 · 1690 阅读 · 0 评论 -
-bin/sh ./hello not found错误
1、我现在挂上文件系统了。编了个helloworld小程序想测试一下:hello.c,很简单一句话:printf("hello world/n");但是当我用armgcc编译好,放到文件系统上时,执行 ./hello,提示:-bin/sh ./hello not found这是什么原因?我在内核配置里面已经选上 ELF格式支持,但是a.out 和MISC binaries没有选。现在晚上手上没板也试不了。大侠们觉得是哪里的问题呢?会是busybox问题么?但是我拿到3星的原创 2010-07-01 10:52:00 · 11037 阅读 · 2 评论 -
boa配置文件解析
<br />随着Internet技术的兴起,在嵌入式设备的管理与交互中,基于Web方式的应用成为目前的主流,这种程序结构也就是大家非常熟悉的B/S结构,即在嵌入式设备上运行一个支持脚本或CGI功能的Web服务器,能够生成动态页面,在用户端只需要通过Web浏览器就可以对嵌入式设备进行管理和监控,非常方便实用。本节主要介绍这种应用的开发和移植工作。<br />用户首先需要在嵌入式设备上成功移植支持脚本或CGI功能的Web服务器,然后才能进行应用程序的开发。<br /> 1、嵌入式Web服务器移原创 2010-06-30 18:26:00 · 1582 阅读 · 0 评论 -
使用Crosstool 0.43 在ubuntu上制作arm交叉编译器arm-linux-gcc
<br />一。 保证ubuntu 上安装如下软件包<br />Bison<br />flex<br />build-essential<br />patch<br />libncurses5-dev<br />查看该软件包的依赖关系,可以看到以下内容:<br />$ apt-cache depends build-essential<br />安装软件包使用 $sudo apt-get install 软件包名<br />二。 Crosstool<br />Crosstool是一组脚本转载 2010-07-01 11:38:00 · 2005 阅读 · 0 评论 -
BOA编译配置FAQ
BOA编译配置FAQuClinux中boa web server的配置:<br />http://www.mcuos.com/viewthread.php?tid=60&extra=page%3D2<br /><br />boa 文件上传问题:<br />http://www.mcuos.com/viewthread.php?tid=834&extra=page%3D1<br /><br />uclinux的boa配置问题:<br />http://www.mcuos.com/viewthread.原创 2010-07-01 17:34:00 · 3439 阅读 · 0 评论 -
CGI编程入门--GET与POST示例
CGI编程入门--GET与POST示例<br />关于CGI的编程,我也还是新手!但只要懂C,则基于C的CGI编程就不会很难!<br />下面就GET和POST方法的应用,做一个小小的demo,给刚学习CGI编程的新手提供一点感性认识!<br /><br />GET方法:做一个加法运算,需要接收两个参数<br /><br />文件get.c如下:<br />-------------------------------<br />#include <stdio.h><br />#in转载 2010-07-01 17:53:00 · 4154 阅读 · 0 评论 -
Linux --boa--cgi
<br />最近在做一个IP-CAM系统,需要用到boa,以及cgi,先了解下<br />摘要:在详细介绍一种嵌入式Web服务器BOA的实现与配置方法的基础上,以一个Web在线远程监控GPIO(通用输入/输出)的程序为实例,介绍嵌入式Linux系统下CPU程序设计技术。<br />关键词:嵌入式系统Linux BOA CGI GPIO<br />1概述<br />随着互联网应用的普及,越来越多的信息化产品需要接入互联网通过Web页面进行远程访问。嵌入式Web系统提供了一种经济、实用的互联网嵌入式接入方案转载 2010-07-02 16:23:00 · 1514 阅读 · 0 评论 -
Linux计划任务crond命令用法
<br />[导读]crond是Linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,如果有 要执行的工作便会自动执行该工作。<br /> crond是Linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,如果有 要执行的工作便会自动执行该工作。而Linux任务调度的工作主要分为以下两类:<br /> 1、系统执行的工作:系统周期性所转载 2010-07-02 11:50:00 · 695 阅读 · 0 评论 -
数字压缩编码技术
<br />数字信号有很多优点,但当模拟信号数字化后其频带大大加宽,一路6MHz的普通电视信号数字化后,其数码率将高达167Mbps,对储存器容量要求很大,占有的带宽将达80MHz左右,这 样将使数字信号失去实用价值。数字压缩技术很好地解决了上述困难,压缩后信号所占用的频带大大低于原模拟信号的频带。因此说,数字压缩编码技术是使数字信号走向实用化的关键技术之一,表4-1列出了各种应用的码率。<br /><br />表4-1 各种应用的码率<br />应用种类<br />比特数/转载 2010-07-08 09:35:00 · 2401 阅读 · 0 评论 -
嵌入式Linux操作系统学习规划
嵌入式Linux操作系统学习规划ARM+LINUX路线,主攻嵌入式Linux操作系统及其上应用软件开发目标: (1) 掌握主流嵌入式微处理器的结构与原理(初步定为arm9) (2) 必须掌握一个嵌入式操作系统 (初步定为uclinux或linux,版本待定) (3) 必须熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目。 从事嵌入式软件开发的好处是: (1)目前国内外这方面的人都很稀缺。这一领域入转载 2010-05-12 16:01:00 · 993 阅读 · 0 评论 -
HTML学习教程
一、表格的基本构架 表格是在论坛做帖的重要武器。因为论坛提供给用户操作的区域是非常有限的,用户只能在论坛程序框架好的body区域里的某个区域施展身手,不能修改body的背景色,更不能介入head的定义,因此,诸如让自己的帖子有底色、底图之类的修饰,用户只能通过表格来实现。表格是一个可自定义的容器,因而它就是我们用以实现帖子构设的利器。<br /> 把表格称作容器源于表格的装载特性。表格是用于装载数据的,与我们现实中所看到和理解的表格非常一致。我们在Word和Excel里都接触过转载 2010-07-06 10:05:00 · 1134 阅读 · 0 评论 -
如何配置DAVINCI内存
如何配置DAVINCI内存在DVEVM上,内存是256M,所以Codec中的例程都是按照256M内存进行配置的。而在,其他一些具体应用中,目标板的内存不一定为256M。所以,内存配置是Davinci开发板上一项重要的技术。笔者公司的开发板是128M,根据相关的文档,重新配置,编译了程序。在128M开发板上成功运行了Video_copy例程。具体步骤如下:DDR内存是ARM和DSP共享的,从Ox80000000到0x90000000。内存分为了如下几部分:1:Linux Partition:在转载 2010-07-08 16:26:00 · 1092 阅读 · 0 评论