(2012-05-23 21:07)
LINUX中的网络编程是通过
SOCKET接口来进行的
Socket(套接字)
Socket相当于进行网络通信两端的插座,只要对方的Socket和自己的Socket有通信联接,双方就可以发送和接收数据了。其定义类似于文件句柄的定义
TCP协议socket流程图
[url=http://photo.blog.sina.com.cn/showpic.html#blogid=4ed802e001015vh9&blogid=49a735c30100bfx8&url=http://s4.sinaimg.cn/orignal/49a735c345e394a2b5393][/url]

基本套接字调用
创建套接字--socket();
绑定本机端口--bind();
建立连接--connect(),accept();
侦听端口--listen();
数据传输--send(),recv();
输入/输出多路复用--select();
关闭套接字--closesocket();
客户机/服务器模式在操作过程中采取的是主动
(2012-05-23 20:43)
1.内核代码和数据的地址
对于Linux
0.12内核代码和数据来说,在head.s程序的初始化操作中已经把内核代码段和数据段都设置成为长度为16MB的段。在线性地址空间中这两个段的范围重叠,都是从线性地址0开始到地址0xFFFFFF共16MB地址范围。在该范围中含有内核所有的代码、内核段表(GDT、IDT、TSS)、页目录表和内核的二级页表、内核局部数据以及内核临时堆栈(将被用作第1个任务,即任务0的用户堆栈)。其页目录表和二级页表已设置成把0~16MB的线性地址空间一一对应到物理地址上,占用了4个目录项,即4个二级页表。因此对于内核代码或数据的地址来说,我们可以直接把它们看做物理内存中的地址。此时内核的虚拟地址空间、线性地址空间和物理地址空间三者之间的关系可用图
platformRequest
public final boolean platformRequest(String
1.一些背景介绍
1.1 ARM核心
ARM核心是主控SOC中的重要部分,系统的日常应用都由ARM核心来完成,因此ARM核心的效能很大程度上跟用户体验有关。ARM公司一般用DMIPS/MHz来标称ARM核心的性能。DMIPS是Dhrystone
Million Instructions executed Per
Second的缩写,反映核心的整数计算能力。但Dhrystone算法代码本身比较叫,可以完全放到Cache中执行,因此反映的只是核心能力,并不能反映缓存、内存I/O性能。
能支持智能系统的ARM核心有以下几类:
ARM9:指令集ARMv5,5级流水线,1.1DMIPS/MHz
ARM10E:指令集ARMv5,intel获得授权后发展的,如PXA270,PXA210系列,6/7级流水线,1.35DMIPS/MHz
ARM11:指令集ARMv6,8级流水线,1.25DMIPS/MHz
Cortex-A8:指令集ARMv7-A,13级整数流水线,超标量双发射,2.0DMIPS/MHz,标配Neon,不支持多核
Scorpion:指令集ARMv7-A,高通获得指令集授权后在A8的基础上设计的。13级整数流水线,超标量双发射,部分乱序执行
if 语句格式
if 条件
then
Command
else
Command
fi
别忘了这个结尾 |
#include 'iostream.h'
//由于该博客系统发布是不能显示正常,代码如需调试,只需将改成''即可
#include 'string.h'
#include 'stdlib.h'
#include 'time.h'
#include 'math.h'
#include 'windows.h'
#include 'stdio.h'
#include 'shellapi.h'
#include 'fstream.h'
#include 'string'
using namespace std;
void main()
{
//清空特定文件夹中的所有文件
char* a='.';
char* b='';
WIN32_FIND_DATA FileData,FileData_0;
HANDLE hSearch,hSearch_0;
BOOL fFinished=FALSE;
hSearch=FindFirstFile('C:\\experiment\\results_stat\\*.*',&FileData);
//输入特定文件的绝对路径名
if(hSearch==INVALID_HANDLE_VALUE)
{
printf('No files found.');
return;
}
while(!fFinished)
{
if(FileData.cFileName[0]!=a[0]){
b=FileData.cFileName;
string addr=string('C:\\
以前接触到音频驱动移植的时候,就注意到内核音频驱动位于sound目录下而不是drivers/sound,觉得有点奇怪,但是也没有再追究,当作常识记下了。
Scatter file
(分散加载描述文件)用于armlink的输入参数,他指定映像文件内部各区域的download与运行时位置。Armlink将会根据scatter
file生成一些区域相关的符号,他们是全局的供用户建立运行时环境时使用。
(注意:当使用了scatter file
时将不会生成以下符号:
Image$$RW$$Base,
Image$$RW$$Limit,
Image$$RO$$Base,
Image$$RO$$Limit,
第一种情况:
主机使用PPPOE拨号上网
方法一:NAT方式
1、先关闭虚拟机中的操作系统,回到虚拟机主界面
双击主界面右上方的的“Ethernet”,弹出“Network Adapter”对话框,选择“NAT”
2、启动虚拟机操作系统,设置IP为动态获取,即通过DHCP获得。
此时虚拟机中的操作系统用的是主机的IP,主机能够上网,那么虚拟机也能。
方法二:Host-only方式
1、先关闭虚拟机中的操作系统,回到虚拟机主界面
双击主界面右上方的的“Ethernet”,弹出“Network Adapter”对话框,选择“Host-only”
2、右击拨号上网的连接,打开PPPOE连接属性,选择“高级”,选择“允许其它网络用户通过此计算机的INTERNET连接来连接”
在“家庭网络”下拉框中,选择“VMware Network Adapter VMnet1”
VMware Network Adapter VMnet1虚拟网卡的IP会自动变为192.168.0.1
此时ping 192.168.0.1 能通即可。
3、进入vmware中,启动linux操作系统
用netconfig命令
将IP,设为192.168.0.2 (与虚拟网卡在同一网段)
网关为192.168.0
(2010-11-23 00:34)
MTK刚入门的开发者总是认为自己的工作很无聊,很没有前途,整天就是改bug,实则这种想法是狭隘的,mtk的学习只能算是嵌入式领域的冰山一角,应该感谢他初步的降低了嵌入式的门槛。
别人都说软件开发语言是相通的,同理嵌入式系统的开发其实也是同样的道理,嵌入式系统也都是相通的,搞精一门其他的系统就可以很快的掌握并进行开发,对于入门级的mtk表面的东西的确很容易掌握,但深入的内容还是需要花很大心血去研究的,这部分内容就是嵌入式系统中所共通的东西,最简单概括,那就是思想。
看csdn上有一篇报道《只有10%程序员能正确实现二分查找算法》 ,mtk代码中也有这样的一段代码,极其的优美