浅谈手机软件开发 1 手机软件的运行环境1.1 概述手机可以被看作袖珍的计算机。它有CPU、存储器(flash、RAM)、输入输出设备(键盘、显示屏、USB和串口)。它还有一个更重要的I/O设备, 那就是空中接口。手机通过空中接口协议(例如GSM、CDMA、PHS等)和基站通信,既可以传输语音、也可以传输数据。手机的CPU一般不是独立的芯片,而是基带处理芯片的一个单元,也称作CPU核。基带处理芯片是手机的核
利用实时内核开发嵌入式多任务程序 Computer Systems A programers Perspective(深入理解计算机系统)真是一本打基础的好书。今天阅读了其第七章--链接。算是对源文件生成目标可执行文件又有了更深层次的认识。在此总结一下。一、从 源文件 到 目标可执行文件 所需要的步骤: 1、首先运行c预处理器(cpp),将*.c文件翻译成ASCII码的中间文件*.i 2、 再
广播和多播 1.单播,多播,广播的介绍1.1.单播(unicast)单播是说,对特定的主机进行数据传送。例如给某一个主机发送IP数据包。这时候,数据链路层给出的数据头里面是非常具体的目的地址,对于以太网来 说,就是网卡的MAC地址(不是FF-FF-FF-FF-FF-FF这样的地址)。现在的具有路由功能的主机应该可以将单播数据定向转发,而目的主机的网 络接口则可以过滤掉和自己MAC地址不一致的数据
TCP/IP的三次握手 TCP是面向连接的,所谓面向连接,就是当计算机双方通信时必需先建立连接,然后数据传送,最后拆除连接三个过程并且TCP在建立连接时又分三步走:第一步是请求端(客户端)发送一个包含SYN即同步(Synchronize)标志的TCP报文,SYN同步报文会指明客户端使用的端口以及TCP连接的初始序号; 第二步,服务器在收到客户端的SYN报文后,将返回一个SYN+ACK的报文,表示客户端的请求被接受
几种开源的TCP/IP协议栈分析 1、BSD TCP/IP协议栈,BSD栈历史上是其他商业栈的起点,大多数专业TCP/IP栈(VxWorks内嵌的TCP/IP栈)是BSD栈派生的。这是因为BSD栈在BSD许可协议下提供了这些专业栈的雏形,BSD许用证允许BSD栈以修改或未修改的形式结合这些专业栈的代码而无须向创建者付版税。同时,BSD也是许多TCP/IP协议中的创新(如广域网中饿拥塞控制和避免)的开始点。ftp://ftp.Fre
绿色和平:不想做转基因食品的白老鼠? 亲爱的朋友,你好! 绿色和平连续4年出版《避免转基因食品指南》,让消费者知道哪些食品商已经承诺不再销售转基因食品。立即下载最新版《避免转基因食品指南》吧!俗话说“民以食为天”。食品问题自古以来就跟老百姓的日常生活息息相关。当转基因还在“高科技福音”与“健康与环境隐患”的激辩中徘徊,它便已悄
考查嵌入式C开发人员的最好的0x10道题 对于大多数人,我们预期你可能答错 3) 4) 15)题,所以答错3道以内的,我们认为你很棒答错5道题以内,我们认为你还不错(你还可能答错第9题)如果你有6道以上的题目不能答对,基本上我们都不好说什么了....约定: 1) 下面的测试题中,认为所有必须的头文件都已经正确的包含了 2)数据类型 char 一个字节 1 byte int 两个字节 2
轻型web server比较 Lightweight web servers are Web servers which have been designed to run with very small resource overhead because of hardware, environment, or simply for the challenge of it.Many of these systems ha
关于const的用法 const在C语言中算是一个比较新的描述符,我们称之为常量修饰符,意即其所修饰的对象为常量(immutable)。我们来分情况看语法上它该如何被使用。1、函数体内修饰局部变量。例:void func(){const int a=0;}首先,我们先把const这个单词忽略不看,那么a是一个int类型的局部自动变量,我们给它赋予初始值0。然后再看const.const作为一个类型限定词,和int有相同
C/C++语言误区之:void main() C/C++语言误区之:void main( )作者:antigloss 很多人甚至市面上的一些书籍,都使用了void main( ) ,其实这是错误的。C/C++ 中从来没有定义过void main( ) 。C++ 之父 Bjarne Stroustrup 在他的主页上的 FAQ 中明确地写着 The definition void main( ) { /* ... */ } is
C语言void及void指针深层探索 1.概述 本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。 2.void的含义 void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。 void几乎只有“注释”和限制程序的作用,因为从来没有人会定义一个void变量,让我们试着来定义:void a; 这行语句编译时会出错,提示“illeg
Linux内核代码树概述 首先研究 Linux 源代码树的顶层目录,它通常(但不总是)位于 /usr/src/linux-。我们不会研究得过于详细,因为 Linux 源代码经常会发生变化,但是,我们将尝试让给出的信息足以找出特定驱动程序或函数的位置。Makefile:这个文件是整个源代码树的顶层 makefile。它定义了很多实用的变量和规则,比如默认的 gcc 编译标记。Documentation/
绿色和平:筷行动,森林需要你的帮助! 亲爱的朋友,你好! 你是否曾以为一个人的行为对环境无足轻重?事实并非如此。只要你的举手之劳——不再使用一次性筷,就能帮助一起拯救森林。绿色和平正在发起“拯救森林,筷行动”,现在急需你一起加入。♠你可以如何帮助拯救森林?→马上开始监督餐馆,前往大众点评网、饭统网、
Google Earth 著名地点 布达拉宫: 29°3922.46"N 91° 658.82"E珠峰 27°5849N 86°5514E 三峡 30°5045"N 111°0127"E 三门峡 34°50N 111°2121"E 造船厂38 5629.92"N 121 3837.72"E 机场41°4215.70" N, 86°0823.20" E 北塔山边防站45.367370,90.573400巴黎
SVN使用技巧 程序员编写程序的过程中,每个程序都会有很多不同的版本,这就需要程序员很好的管理代码,在需要的时间可以取出需要的版本,并且每个版本都有一个完整的说明。我们使用Sub Version(简称SVN)作为版本管理工具。这里着重介绍SVN作为跨平台的多人协作使用方法。在多个程序员管理同一段代码的过程中,版本的管理显得尤为重要,使用SVN可以方便的进行分支、合并,记录下所有的版本。基本配置 在开始
Montavista linux DevRocket集成开发环境 高性能嵌入式Linux软件的流畅开发结合工业标准的Eclipse技术可移植性与MontaVista公司的嵌入式系统的专家,MontaVista DevRocket图形开发环境可以通过OEM的方式加速基于Linux的系统软件和应用程序的开发,同时优化系统资源的性能和使用。 显著特点:- 基于Eclipse的图形开发环境可以提高代码开发效率而且降低开发成本。 - 灵活全面的工具集能够支持驱