1. 哪个学哥,学姐有用过的JAVA课程设计啊~给我一份~~谢谢啦 急需~~~
Java课程设计报告
题 目: 计算器
院(系):xxx学院
年级专业: xxx班
学生姓名: xxx
指导老师: xx老师
开始时间: 200x-xx-xx
完成时间: 200x-xx-xx
目 录
1. 摘 要
2. 概要设计
3. 详细设计
4. 测试分析
5. 参考文献
一、摘 要
本计算器可以进行简单的四则运算(加、减、乘、除)但仅限于十进制下,还可以进行(八进制,十进制,十六进制)之间的相互转换,八进制最多可以输入19位数,十进制最多可以输入18位数,十六进制最多可以输入14位数,backspace表示退格, clear表示初始化,在window下直接运行(Jsp2003.bat)即可,界面为灰白对称。
二、概要设计
(1) 自定义类说明
**********************************************************
* 类名: This_number_too_big *
* 作用: 自定义的异常类,用来处理计算结果溢出 *
* 继承的父类: Exception类 *
* 实现的接口: 没有 *
**********************************************************
class This_number_too_big extends Exception
{
}//自定义的一个结果溢出异常类
**********************************************************
* 类名: Jsp2003 *
* 作用: 主类。 *
* 继承的父类: Frame类 *
* 实现的接口: ItemListener类,ActionListener类 *
**********************************************************
class Jsp2003 extends Frame implements ItemListener,ActionListener
{
public int number=0,length=18;
//number是用来记录输入的数字个数,
//length是用来设置在不同进制下允许输入的最多数字位数,默认为十进制 public char mark='n';
//设置运算符号为没有即为‘n’,它的值是‘+’‘-’‘*’‘/’
public double data=0;
//设置运算数据为零
public char ch;
//用来临时存放所按按钮的第一个字符
public boolean Refresh=false;
//设置lab是否要在输入数据的时候刷新,初始为否
主要方法说明:
------------------------------------------------------------------------------------------------
//用来处理按了运算符后的计算-
public void js() throws This_number_too_big //指定由method抛出异常
{if (mark=='n') //没有运算符
{mark=ch; //,则设置运算符为刚刚输入的字符,
data=Double.parseDouble(lab.getText());//则设置运算数据为lab的值
Refresh=true;//则设置下一次输入的时候要刷新lab
}
else //如果采用的是连续运算(即没有使用‘=’号)则运行下面的语句
{switch (mark) //根据运算符计算结果,并把结果保存到data
{ case '+': data+=Double.parseDouble(lab.getText()); break;
case '-': data-=Double.parseDouble(lab.getText()); break;
case '*': data*=Double.parseDouble(lab.getText()); break;
case '/': data/=Double.parseDouble(lab.getText()); break;}
lab.setText(Double.toString(data)); //显示运算结果
mark=ch;//设置运算符为刚刚按下的运算符
Refresh=true;//则设置下一次输入的时候要刷新lab
number=lab.getText().length();//设置输入的字符个数
// System.out.println(lab.getText());//用来调试用的
if (data>Double.MAX_VALUE)
//如果data超过double类型的最大值则抛出自定义的一个异常类
{throw new This_number_too_big(); }
}
}//end js() method
----------------------------------------------------------------------------------------------------
public void enter()//处理输入字符
{if(Refresh==true)
//如果已经设置了 运算符则在下一次输入数据的时候要把以前lab的内容清除掉
{lab.setText("0"); number=0; Refresh=false;}
if(lab.getText().charAt(0)=='0'&& lab.getText().length()==1)
//如果lab的内容为0则,lab的内容将被所输入的字符代替,
//否则直接在lab的内容后面加上所输入的字符
{lab.setText(Character.toString(ch)); number++;}
else
if(number<length)
{number++;lab.setText(lab.getText()+ch);}
}//end enter() method
--------------------------------------------------------------------------------------------------------
//八进制或十六进制转换成十进制I
public String goto_10(String s,long l)
//参数s: 是要转换的字符串,由于输入的控制,保证了字符串的合法性;
//参数l: 使用来设置是将8进制还是16进制转换成10进制,它的有效值为8或16;
{ String str=s; //用来转换的字符串
long j=l; //表示进制
long lg=0,jing=1;//lg用来记录权乘和,jing用来记录位权
char cha;//临时记录要转换的字符
for(int i=1;i<=str.length();i++)
{ cha=str.charAt(str.length()-i);
switch(cha)
{ case '1': lg=lg+1*jing;break;
case '2': lg=lg+2*jing;break;
case '3': lg=lg+3*jing;break;
case '4': lg=lg+4*jing;break;
case '5': lg=lg+5*jing;break;
case '6': lg=lg+6*jing;break;
case '7': lg=lg+7*jing;break;
case '8': lg=lg+8*jing;break;
case '9': lg=lg+9*jing;break;
case 'A': lg=lg+10*jing;break;
case 'B': lg=lg+11*jing;break;
case 'C': lg=lg+12*jing;break;
case 'D': lg=lg+13*jing;break;
case 'E': lg=lg+14*jing;break;
case 'F': lg=lg+15*jing;break;}
jing*=j; //位权升一级,为下次使用做好准备
}
return Long.toString(lg);
}//end String goto_10() method
}
(2)程序流程图
三、详细设计
import java.awt.*;
import java.awt.event.*;
class This_number_too_big extends Exception
{}//自定义的一个结果溢出异常类
class Jsp2003 extends Frame implements ItemListener,ActionListener {
public Jsp2003() {
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
System.exit(0);
}
});
}
static Jsp2003 mainFrame = new Jsp2003();
static Label lab=new Label("0");
static Panel pnl1=new Panel(new GridLayout(4,3,3,3));
static Panel pnl2=new Panel(new GridLayout(4,1,3,3));
static Panel pnl3=new Panel(new GridLayout(1,2,3,3));
static Panel pnl4=new Panel(new GridLayout(6,1,3,3));
static Button bt9=new Button("9");
static Button bt8=new Button("8");
static Button bt7=new Button("7");
static Button bt6=new Button("6");
static Button bt5=new Button("5");
static Button bt4=new Button("4");
static Button bt3=new Button("3");
static Button bt2=new Button("2");
static Button bt1=new Button("1");
static Button bt0=new Button("0");
static Button btdot=new Button(".");
static Button btequ=new Button("=");
static Button btadd=new Button("+");
static Button btsub=new Button("-");
static Button btmul=new Button("*");
static Button btdev=new Button("/");
static Button btA=new Button("A");
static Button btB=new Button("B");
static Button btC=new Button("C");
static Button btD=new Button("D");
static Button btE=new Button("E");
static Button btF=new Button("F");
static Checkbox ckb8=new Checkbox("八进制");
static Checkbox ckb10=new Checkbox("十进制");
static Checkbox ckb16=new Checkbox("十六进制");
static Button btc=new Button("clear");
static Button btt=new Button("backspace");
public int number=0,length=18;
//number是用来记录输入的数字个数,length是用来设置在不同进制下允许输入的最多数字位数,默认为十进制
public char mark='n'; //设置运算符号为没有即为‘n’,它的值是‘+’‘-’‘*’‘/’
public double data=0; //设置运算数据为零
public char ch; //用来临时存放所按按钮的第一个字符
public boolean Refresh=false;//设置lab是否要在输入数据的时候刷新,初始为否
public static void main(String args[]) {
System.out.println("Starting Jsp2003...");
lab.setAlignment(Label.RIGHT);
lab.setBackground(Color.lightGray);
lab.setForeground(Color.BLUE);
lab.setFont(new Font("Serief",Font.BOLD,18));
lab.setBounds(14,33,216,40);
mainFrame.add(lab);
CheckboxGroup grp=new CheckboxGroup();
ckb8.setCheckboxGroup(grp);
ckb10.setCheckboxGroup(grp);
ckb16.setCheckboxGroup(grp);
ckb8.setBounds(14,75,55,25);
ckb10.setBounds(69,75,55,25);
ckb16.setBounds(124,75,65,25);
ckb8.setState(false);
ckb10.setState(true);
ckb16.setState(false);
mainFrame.add(ckb8);
mainFrame.add(ckb10);
mainFrame.add(ckb16);
pnl1.setBounds(14,140,120,150);
pnl2.setBounds(144,140,40,150);
pnl3.setBounds(14,100,170,36);
pnl4.setBounds(190,100,40,190);
pnl1.add(bt7);
pnl1.add(bt8);
pnl1.add(bt9);
pnl1.add(bt4);
pnl1.add(bt5);
pnl1.add(bt6);
pnl1.add(bt1);
pnl1.add(bt2);
pnl1.add(bt3);
pnl1.add(bt0);
pnl1.add(btdot);
pnl1.add(btequ);
pnl2.add(btadd);
pnl2.add(btsub);
pnl2.add(btmul);
pnl2.add(btdev);
pnl3.add(btt);
pnl3.add(btc);
pnl4.add(btA);
pnl4.add(btB);
pnl4.add(btC);
pnl4.add(btD);
pnl4.add(btE);
pnl4.add(btF);
btA.enable(false);
btB.enable(false);
btC.enable(false);
btD.enable(false);
btE.enable(false);
btF.enable(false);
mainFrame.add(pnl1);
mainFrame.add(pnl2);
mainFrame.add(pnl3);
mainFrame.add(pnl4);
mainFrame.setResizable(false);
mainFrame.setLayout(null);
mainFrame.setSize(240,300 );
mainFrame.setTitle("计算器");
mainFrame.setVisible(true);
ckb8.addItemListener(mainFrame);
ckb10.addItemListener(mainFrame);
ckb16.addItemListener(mainFrame);
//把事件聆听者向各个组键注册
bt1.addActionListener(mainFrame);
bt2.addActionListener(mainFrame);
bt3.addActionListener(mainFrame);
bt4.addActionListener(mainFrame);
bt5.addActionListener(mainFrame);
bt6.addActionListener(mainFrame);
bt7.addActionListener(mainFrame);
bt8.addActionListener(mainFrame);
bt9.addActionListener(mainFrame);
bt0.addActionListener(mainFrame);
btadd.addActionListener(mainFrame);
btsub.addActionListener(mainFrame);
btmul.addActionListener(mainFrame);
btdev.addActionListener(mainFrame);
btt.addActionListener(mainFrame);
btc.addActionListener(mainFrame);
btdot.addActionListener(mainFrame);
btequ.addActionListener(mainFrame);
btA.addActionListener(mainFrame);
btB.addActionListener(mainFrame);
btC.addActionListener(mainFrame);
btD.addActionListener(mainFrame);
btE.addActionListener(mainFrame);
btF.addActionListener(mainFrame);
}// end main() mothed
//---------------------------------------------
//checkbox 事件的处理
public void itemStateChanged(ItemEvent e)
{ mark='n';
Refresh=false;
//规定当进制转换时以前输入的运算符失效
if (ckb8.getState()==true)
{ btA.enable(false);
btB.enable(false);
btC.enable(false);
btD.enable(false);
btE.enable(false);
btF.enable(false);
bt9.enable(false);
bt8.enable(false);
btdot.enable(false);
btadd.enable(false);
btmul.enable(false);
btsub.enable(false);
btdev.enable(false);
btequ.enable(false);
//在八进制的情况下对有些按件的管理
if(length==18) { lab.setText(goto10_8(lab.getText()));
number=lab.getText().length();
}
if(length==14) { lab.setText(goto_10(lab.getText(),16L));
lab.setText(goto10_8(lab.getText()));
number=lab.getText().length();
}
//将其他进制转换成八进制
length=19;
//在八进制下允许输入数字个数最多为19位
}
if(ckb10.getState()==true)
{ btA.enable(false);
btB.enable(false);
btC.enable(false);
btD.enable(false);
btE.enable(false);
btF.enable(false);
bt9.enable(true);
bt8.enable(true);
btdot.enable(true);
btadd.enable(true);
btmul.enable(true);
btsub.enable(true);
btdev.enable(true);
btequ.enable(true);
//在十进制的情况下对有些按件的管理
if(length==19) { lab.setText(goto_10(lab.getText(),8L));
number=lab.getText().length();}
if(length==14) { lab.setText(goto_10(lab.getText(),16L));
number=lab.getText().length();}
//进制转换成十进制
length=18;
//在十进制下允许输入数字个数最多为18位
}
if(ckb16.getState()==true)
{ btA.enable(true);
btB.enable(true);
btC.enable(true);
btD.enable(true);
btE.enable(true);
btF.enable(true);
bt9.enable(true);
bt8.enable(true);
btdot.enable(false);
btadd.enable(false);
btmul.enable(false);
btsub.enable(false);
btdev.enable(false);
btequ.enable(false);
//在十六进制的情况下对有些按件的管理
if(length==18) { lab.setText(goto10_16(lab.getText()));
number=lab.getText().length();}
if(length==19) { lab.setText(goto_10(lab.getText(),8L));
lab.setText(goto10_16(lab.getText()));
number=lab.getText().length();}
//将其他进制转换成十六进制
length=14;
//在十六进制下允许输入数字个数最多为14位
}
}//end itemStateChanged(ItemEvent e) method
//------------------------------------------------------------
//按钮事件的处理
public void actionPerformed(ActionEvent m)
{
Button btn=(Button) m.getSource();
ch=btn.getLabel().charAt(0);
switch (ch)
{ case 'c': {lab.setText("0"); number=0; mark='n'; Refresh=false;}break;//初始化
case '1': enter(); break;
case '2': enter(); break;
case '3': enter(); break;
case '4': enter(); break;
case '5': enter(); break;
case '6': enter(); break;
case '7': enter(); break;
case '8': enter(); break;
case '9': enter(); break;
case '0': {if(Refresh==true) { lab.setText("0"); number=0; Refresh=false; }
if(lab.getText().charAt(0)=='0'&& lab.getText().length()==1)
break;
if(number<length)
{number++;lab.setText(lab.getText()+ch);} else break;
} break;
case 'A': enter(); break;
case 'B': enter(); break;
case 'C': enter(); break;
case 'D': enter(); break;
case 'E': enter(); break;
case 'F': enter(); break;
case '.': {if(Refresh==true) {lab.setText("0"); number=0; Refresh=false;}
if(lab.getText().indexOf('.')== -1)
{number++;lab.setText(lab.getText()+ch);}
else
break;
}
break;
case 'b': {if(number==0) break;
else
{if(--number==0) {lab.setText("0"); number=0;}
else
{if (number!=1) lab.setText(lab.getText().substring(0,number));
else
lab.setText(Character.toString(lab.getText().charAt(0)));}
}
}break;
case '+': try
{ js();}
catch(This_number_too_big e)
{lab.setText("0"); number=0; mark='n';
Refresh=false; System.out.println("The number is too big");} break;
//如果出现异常则初始化效果如同clear键
case '-': try
{ js();}
catch(This_number_too_big e)
{lab.setText("0"); number=0; mark='n';
Refresh=false; System.out.println("The number is too big");} break;
//如果出现异常则初始化效果如同clear键
case '*': try
{ js();}
catch(This_number_too_big e)
{lab.setText("0"); number=0; mark='n';
Refresh=false; System.out.println("The number is too big");} break;
//如果出现异常则初始化效果如同clear键
case '/': try
{ js();}
catch(This_number_too_big e)
{lab.setText("0"); number=0; mark='n';
Refresh=false; System.out.println("The number is too big");} break;
//如果出现异常则初始化效果如同clear键
case '=': try
{ js();}
catch(This_number_too_big e)
{lab.setText("0"); number=0; mark='n';
Refresh=false; System.out.println("The number is too big");} break;
//如果出现异常则初始化效果如同clear键
}
2. x的-2次方图像 以2分之1为底x+1的对数的图像 x-1的绝对值的图像 2的x+1次方的图像
lz请看图片
x的-2次方图像
3. 客户机安装证书 C++
#include "stdafx.h"
#include "CertImportx.h"
#define MY_ENCODING_TYPE (PKCS_7_ASN_ENCODING | X509_ASN_ENCODING)
void CCertImport::PrintfError(DWORD err , LPCTSTR szError)
{
if( err == 0 )
{
MessageBox(NULL,_T("安装成功!"),_T("证书安装"),MB_OK);
}
else
{//
MessageBox(NULL,_T("安装失败!"),_T("证书安装"),MB_OK);
}
}
// Global function for free handles...
void CCertImport::FreeHandles(HCERTSTORE hFileStore, PCCERT_CONTEXT pctx, HCERTSTORE pfxStore, HCERTSTORE myStore )
{
if (myStore)
CertCloseStore(myStore, 0);
if (pfxStore)
CertCloseStore(pfxStore, CERT_CLOSE_STORE_FORCE_FLAG);
if(pctx)
CertFreeCertificateContext(pctx);
if (hFileStore)
CertCloseStore(hFileStore, 0);
}
int CCertImport::ImportCACert()
{
const char* pCert= "-----BEGIN CERTIFICATE-----\
\
RW50cnVzdC5uZXQxQDA+\
\
\
\
\
\
\
\
\
/lJBQe\
sYGpjX24zGtLA/\
MlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVT\
+5CFVghTAp+XtIpGmG4zU/\
/+\
\
\
\
\
/55IQ\
\
f3v/+z7pnIkPFc4YsIV4IU9rTw76NmfN\
B/L/CNDi3tm/Kq+4h4YhPATKt5Rof8886ZjXOP/swNlQ8C5LWK5Gb9Auw2DaclVy\
vUxFnmG6v4SBkgPR0ml8xQ==\
-----END CERTIFICATE-----";
BYTE pBinByte[8192]={0};
unsigned long binBytes = 4096;
CryptStringToBinaryA( pCert , strlen(pCert) ,CRYPT_STRING_BASE64HEADER , pBinByte , &binBytes ,NULL,NULL);
return ImportCACert(pBinByte , binBytes );
}
// This function imports a CA certificate...
int CCertImport::ImportCACert(LPCTSTR szFileName)
{
HANDLE hfile = INVALID_HANDLE_VALUE;
BYTE pByte[4096] = {0} , pBinByte[8192]={0};
unsigned long bytesRead = 0;
unsigned long binBytes = 4096;
// Open it...
hfile = CreateFile(szFileName, FILE_READ_DATA, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);
if (INVALID_HANDLE_VALUE == hfile)
return -1;
ReadFile( hfile , pByte, 4096, &bytesRead ,NULL );
CloseHandle(hfile);
CryptStringToBinaryA( (LPCSTR)pByte , bytesRead ,CRYPT_STRING_BASE64HEADER , pBinByte , &binBytes ,NULL,NULL);
return ImportCACert(pBinByte , binBytes );
}
int CCertImport::ImportCACert(BYTE* pBinByte , unsigned long binBytes)
{
HCERTSTORE pfxStore = 0;
HCERTSTORE myStore = 0;
HCERTSTORE hFileStore = 0;
PCCERT_CONTEXT pctx = NULL;
DWORD err = 0;
pctx = CertCreateCertificateContext(MY_ENCODING_TYPE, (BYTE*)pBinByte , binBytes );
if(pctx == NULL)
{
DWORD err = GetLastError();
FreeHandles(hFileStore,pctx, pfxStore, myStore);
PrintfError( err , _T("Error in 'CertCreateCertificateContext'") );
return err;
}
// we open the store for the CA
hFileStore = CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, 0, CERT_STORE_OPEN_EXISTING_FLAG | CERT_SYSTEM_STORE_LOCAL_MACHINE, L"Root" );
if (!hFileStore)
{
DWORD err = GetLastError();
FreeHandles(hFileStore,pctx, pfxStore, myStore);
PrintfError( err , _T("Error in 'CertOpenStore'") );
return err;
}
if( !(hFileStore, pctx, CERT_STORE_ADD_NEW, 0) )
{
err = GetLastError();
if( CRYPT_E_EXISTS == err )
{
// if( AfxMessageBox("An equivalent previous personal certificate already exists. Overwrite ? (Yes/No)", MB_YESNO) == IDYES)
{
if( !(hFileStore, pctx , CERT_STORE_ADD_REPLACE_EXISTING, 0))
{
err = GetLastError();
FreeHandles(hFileStore,pctx, pfxStore, myStore);
PrintfError( err , _T("Error in ''") );
return err;
}
}
}
else
{
FreeHandles(hFileStore, pctx , pfxStore , myStore);
PrintfError( err , _T("Error in ''") );
return err;
}
}
FreeHandles(hFileStore,pctx, pfxStore, myStore);
PrintfError(0 , NULL) ;
return 0;
}
复制的别人的,我也不懂C++。
4. java可以开发什么项目
目前来说Java的应用领域很广,可以说是现在最普及的,遍布各行各业,可见其优势所在。
1、大数据领域
Hadoop以及其他大数据处理技术普遍用的都是Java,当然其他语言也有用到,基于Java 的 HBase和Accumulo以及ElasticSearchas。但Java在此领域并未占太大空间,但只要Hadoop和ElasticSearchas能够成长壮大,Java依然有潜力占据一部分。
6、其他领域
Java依然是在科学应用中最好选择,包括自然语言处理。最主要的原因是因为Java比C++或者其他语言相对其安全性、便携性、可维护性以及其他高级语言的并发性更好。
可以说Java作为软件行业默认开发语言在各个领域均有广泛应用,相关从业者也都认为Java有着光明的未来。
希望对您有所帮助!~
5. 如何在CentOS 7中安装Git
CentOS下Git服务器搭建与客户端安装
时间:2014-05-14 来源:blog.51cto.com
大纲:
一、前言
二、搭建Git服务器
yum安装Git服务器
创建一个git用户,用来运行git服务
创建客户端登录证书
初始化Git仓库
禁用shell登录
克隆远程仓库
三、安装客户端
Windows 客户端
Linux 客户端
四、总结
注,测试机 CentOS 5.5 x86_64,Git 服务器版本:git version 1.8.2.1,客户端版本:git version 1.9.2.msysgit.0。所有软件请到这里下载:http://msysgit.github.io/。
一、前言
在上一篇博客中我们主要讲解Git是什么,Git的基本原理,讲解一些有关Git的基础知识,让我们简单的了解一下Git,当然我们还有很多问题没有搞清楚,嘿嘿!不管理怎么样,在我们弄清楚这些问题之前,我们得有台Git服务器是吧,嘿嘿!好了,下面我们就来一起搭建一台Git服务器。
二、搭建Git服务器
1.yum安装Git服务器
[root@git ~]# cd src/
[root@git src]# wget http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
[root@git src]# rpm -ivh epel-release-5-4.noarch.rpm
Preparing... ########################################### [100%]
package epel-release-5-4.noarch is already installed
[root@git ~]# yum list
[root@git ~]# yum install -y git
2.创建一个git用户,用来运行git服务
[root@git ~]# adser git
3.创建客户端登录证书
注,收集所有需要登录的用户的公钥,就是他们自己生成的id_rsa.pub文件,把所有公钥复制到/home/git/.ssh/authorized_keys文件里,一行一个。嘿嘿!
1).客户端生成id_rsa.pub文件的命令
$ ssh-keygen -t rsa
$ cat .ssh/id_rsa.pub
ssh-rsa ++N3wEAQRYDmcYo1wmnm/4NQ+CAN45tqfsRuf58Uba9QNK7/6xSUiIKXQiILz8PMGJ3MnlV+== leo@LEO-PC
注,一路回车即可,将生成的id_rsa.pub,复制给管理员,帮你在服务器上增加一下,下次你用git时就不需要输入用户名和密码了。
2).查看服务器上authorized_keys文件
[root@git ~]# cat /home/git/.ssh/authorized_keys
ssh-rsa wBVd++YmJFhqwkITNGccrO5sycROs9+Fbjgd6oBSzNuaBtCIbwNNsEyM/henTl2euI3XsnJQ/ITr6c/q0P3WoGl4E2QFQ2kZqs++/+kJzJSKUTKDVSwY3/+Q== root@CHENMINGQIAN
ssh-rsa +PSK9PSg+bwiJ2iQRa39rXck35r+//RiCiYzd3RT/+S/LD3vx2MN+FNOHwvqcE+/5yEqSgAkioa8SVMOsikYJG//RZ54Q== Administrator@WIN2003X323
ssh-rsa ++N3wEAQRYDmcYo1wmnm/4NQ+CAN45tqfsRuf58Uba9QNK7/6xSUiIKXQiILz8PMGJ3MnlV+== leo@LEO-PC
说明:我这里有三个用户登录服务器,所以我这里就有三个ssh-rsa,大家可以看一下。
4.初始化Git仓库
注,先选定一个目录作为Git仓库,这里是/data/git/project.git。
[root@git ~]# cd /data/git/
[root@git git]# git init --bare project.git
[root@git project.git]# ls
branches config description HEAD hooks index info objects refs
执行以上命令 Git命令,会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git:
[root@git git]# chown -R git.git project.git
[root@git git]# ls -l
总计 4
drwxr-xr-x 7 git git 4096 05-09 13:50 project.git
5.禁用shell登录
注,出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:
[root@git ~]# cat /etc/passwd | grep git
git:x:1001:1001:git version control:/home/git:/bin/bash
改为:
[root@git ~]# vim /etc/passwd
git:x:1001:1001:git version control:/home/git:/usr/bin/git-shell
这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
6.克隆远程仓库
注,现在可以通过git clone命令克隆远程仓库了,在各自的电脑上运行:
注,$ git clone [email protected]:/data/git/project.git,其中git用户名,git.jjhh.com服务器,/data/git/prgject.git是仓库路径。好了,到这里服务器的搭建到这里就完成了,下面我们来安装一下客户端。
三、安装客户端
1.Windows 客户端
1).下载客户端
注,大家到这里下载http://msysgit.github.io/。下面简单演示一下安装过程,比较简单:
好了,到这里就安装完成了,安装好以后会在桌面上有个图标,你双击打开即可。如下图:
2.Linux 客户端
注,Linux客户端安装就比较简单了,直接用yum安装一下就好!
1
[root@test ~]# yum install -y git
到这里git就安装完成了,下面我们查看一下版本:
1
2
[root@test ~]# git --version
git version 1.8.2.
下面我们生成公钥并复制到服务器上:
[root@test ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
48:3c:22:76:02:f1:a2:e5:27:22:cb:4f:a7:a0:98:9d [email protected]
[root@test ~]# cat .ssh/id_rsa.pub
ssh-rsa ++U7zP/hr6HzfqeZU09Ccis4yK3RMwip2f+/ug2M68Z0jQk5DVG8w5+/V7eOkrvBMDh9nDdwvDhPhuhBDSfE++B18MQ== [email protected]
下面我们复制id_rsa.pub里的公钥到服务器的authorized_keys文件中。
[root@git ~]# su git
bash-3.2$ cd
bash-3.2$ vim .ssh/authorized_keys
ssh-rsa wBVd++YmJFhqwkITNGccrO5sycROs9+Fbjgd6oBSzNuaBtCIbwNNsEyM/henTl2euI3XsnJQ/ITr6c/q0P3WoGl4E2QFQ2kZqs++/+kJzJSKUTKDVSwY3/+Q== root@CHENMINGQIAN
ssh-rsa +PSK9PSg+bwiJ2iQRa39rXck35r+//RiCiYzd3RT/+S/LD3vx2MN+FNOHwvqcE+/5yEqSgAkioa8SVMOsikYJG//RZ54Q== Administrator@WIN2003X323
ssh-rsa ++N3wEAQRYDmcYo1wmnm/4NQ+CAN45tqfsRuf58Uba9QNK7/6xSUiIKXQiILz8PMGJ3MnlV+== leo@LEO-PC
ssh-rsa ++U7zP/hr6HzfqeZU09Ccis4yK3RMwip2f+/ug2M68Z0jQk5DVG8w5+/V7eOkrvBMDh9nDdwvDhPhuhBDSfE++B18MQ== [email protected]
下面我们clone一个仓库到本地的目录中。
[root@test ~]# cd /data/dev
[root@test dev]# git clone [email protected]:/data/git/project.git
Cloning into 'project'...
The authenticity of host 'git.jjhh.com (114.112.173.150)' can't be established.
RSA key fingerprint is ca:ec:a2:7e:e6:89:ca:19:d3:93:7f:4b:c3:c0:c7:fd.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'git.jjhh.com,114.112.173.150' (RSA) to the list of known hosts.
remote: Counting objects: 50, done.
remote: Compressing objects: 100% (42/42), done.
remote: Total 50 (delta 21), reused 0 (delta 0)
Receiving objects: 100% (50/50), 4.02 KiB, done.
Resolving deltas: 100% (21/21), done.
[root@test dev]# ls
project
[root@test dev]# cd project/
[root@test project]# ls
index.html
好了,到这里我们的git客户端到这里就全部安装完成了。
6. [ABAP]请教Function: BP_JOB_READ 中的OPCODE 的含义
OPCODE 是Operation Code 的缩写,意识是通过这个参数来控制FM:BP_JOB_READ所返回的信息是什么信息.你设定成20,那意味着所有的关于JOB的信息都将被读出来.如果是19,那么意思是只将Job的header信息读取出来.
7. IPv6|Filecoin主网代码将于9月30日冻结
中国工商银行宣布发行数字信用卡
中国工商银行官方宣布发行数字信用卡:无界白金数字卡,并且在官方APP“工银e生活”中开设数字卡专区,用户现在可以进入选择数字卡启用并完成“一键绑卡”。
Roger Ver:Bitcoin ABC将于11月15日分叉脱离BCH
金色 财经 报道,BCH支持者、Bitcoin.com创始人Roger Ver推文称:“Bitcoin ABC和Deadalnix宣布将于11月15日分叉脱离BCH,祝他们的新代币好运,并感谢他们免费空投给所有BCH持有者。”据悉,BCH网络将在11月15日按计划进行两年一次的升级。Bitcoin ABC团队计划在升级引入IFP Coinbase规则,即将8%区块奖励分配给ABC相关地址,用于支持团队开发。昨日,Roger Ver发推反对Bitcoin ABC团队的IFP Coinbase规则。
◇政策
韩国央行推进数字货币外部咨询方案
8月30日,韩国银行为建立“中央银行数字货币(CBDC)示范系统”接受外部咨询。韩国银行30日表示,截至上月结束CBDC基础业务(设计、定义条件、研究体现技术),并以此为基础推进第二阶段事业—“CBDC业务程序分析及外部咨询”。通过咨询设计CBDC业务程序和系统架构(计算机系统结构、动作方式、组成要素关系、数据管理、安全等),并制定明年推进构建“CBDC运行系统”的具体执行计划。
俄罗斯拟议法案,加密矿场需向政府报告
8月31日消息,俄罗斯政府部门发布了一份征求公众意见的草案,该草案首先给出了数据中心(data center)的精确定义。如果该法案获得通过,该国的数据中心将有义务向互联网审查机构Roskomnadzor汇报它们的运营情况。数据中心被定义为“拥有自己的基础设施,用于托管提供存储、处理和访问数据的硬件,并保证可访问性、安全性和管理水平。”俄罗斯最大的矿场之一Bitriver的首席执行官Igor Runets表示,新规定将适用于矿商,他们很可能必须每季度提交一份报告。政府已经了解了所有的大型矿商,因为任何耗电量超过1到2兆瓦的农场都可以被电网运营商检测到。
接近监管人士:数字人民币目前试点场景没有变化
广州出台66条措施支持粤港澳大湾区金融发展 其中多项与区块链有关
9月2日,广州市政府15届117次常务会议审议通过了《关于贯彻落实金融支持粤港澳大湾区建设意见的行动方案》(以下简称《方案》)。《方案》指出,利用金融 科技 加强金融风险防控,利用区块链、人工智能、大数据、互联网等金融 科技 手段提升开展金融监管和维护金融稳定工作的能力和水平,及时发现、化解金融风险隐患,打造粤港澳大湾区金融运行安全区。《方案》还强调,大力发展金融 科技 ,扩大跨境金融区块链服务平台试点范围,持续推动移动支付在智慧交通、智慧生活、智慧医疗、智慧养老等大湾区城乡重点领域深度应用,稳妥推进大湾区公共交通等领域跨境支付的便利化措施,不断为粤港澳大湾区提供更专业、更优质、更安全的金融产品和金融服务。支持在广州推进境外人员境内移动支付试点。
英国央行行长贝利:英国央行正在考虑发行央行数字货币
英国央行行长贝利表示,英国央行正在考虑发行央行数字货币,央行推出任何数字货币都需要经过慎重考虑。他还称,加密资产不适合支付领域,加密资产与金钱没有关系。贝利同时表示,稳定币可以在支付方面提供一些有用的好处。(加密货币)可能在私营和公共部门的支付方面发挥作用,需要制定(加密货币)标准,避免在支付领域追赶创新,具有系统重要性的支付公司应该遵守标准,以反映(加密货币)所构成的风险。贝利认为,任何规模的标准纯度零售稳定币发行都应该在英国。
◇区块链
比特股将于9月10日执行分叉,分叉出新币新比特股NBS
比特股宣布将于北京时间9月10日21:55分执行分叉,分叉出新币新比特股NBS,英文全称New BitShares。此次分叉是因BTS4.0版本升级中,发生了部分开发人员未经社区投票便修改投票系统代码的事件,造成社区巨大争议。 NBS将遵守DPOS共识,本次分叉仅将未经DPOS批准的篡改功能进行回退,其余部分均继续沿用BTS4.0版本功能。
中银协:明确以区块链作为平台底层技术 分阶段进行建设
8月31日消息,中银协和中注协携手推动第三方电子函证金融服务平台的建设,目前已完成多项重点工作。一是明确以区块链技术作为平台底层技术,分阶段进行平台建设的系统框架,即第一期选择 科技 程度较高、数字化程度相对集中的大中型商业银行和会计师事务所上线运行,第二期逐步向地方法人中小银行和中小会计师事务所推广使用,并以平台建设为契机,推动部分中小银行实现数据集中,进一步完善数据治理。
邮政EMS采用蚂蚁链技术溯源录取通知书 已面向全国考生
邮政EMS采用蚂蚁链技术溯源录取通知书,已面向全国考生,旨在进一步提高数字化水平,消除考生录取信息在招、投、寄等环节中的安全风险,促进招生办、高校、中国邮政和考生之间的信息共享。蚂蚁链与邮政EMS此前推出了区块链溯源解决方案。该平台于2019年开始试运行,今年起正式在全国范围内提供服务。注,EMS溯源平台采用多方主体信任背书,其一是高校招生办,将录取通知书信息导入系统,同时完成信息上链,确保了高校端的录取通知书信息及时上链,确保了信息从源头就不可篡改;其二是邮政EMS,录取通知书邮件在揽收、中转、投递各作业环节处理的同时完成信息上链,确保了邮政端的录取通知书寄递各环节处理信息及时上链,确保了信息在各作业环节不可篡改;其三是考生,可通过EMS官方渠道查询链上的录取通知溯源信息。
我国首个金融区块链国际标准通过立项
6月22日至7月3日,国际电信联盟电信标准化部门(ITU-T)第十六研究组(SG16)全会在线上召开。在该次会议上,由中国人民银行数字货币研究所牵头提出,并与中国信息通信研究院、华为等单位联合发起的国际标准《金融分布式账本技术应用指南》(Financial Distributed Ledger Technology Application Guideline)在ITU-T SG16成功立项。 目前,全球主要国家和国际组织纷纷加快布局区块链的技术创新和应用 探索 。我国在区块链领域具备良好基础,正在加快推动区块链技术和产业的创新发展,促进区块链在 社会 经济中发挥作用。在金融行业,区块链已应用于贸易金融、票据交易、供应链金融、存证、对账、资产证券化等多个领域。 一直以来,数研所高度重视并积极开展法定数字货币和区块链的标准化工作,以全国金融标准化技术委员会法定数字货币标准工作组为基础开展分布式账本技术等金融 科技 标准的研究与编制工作,以规范分布式账本的技术与应用。
Filecoin主网代码将于9月30日冻结 主网或于10月上线
9月3日,Filecoin官方进行了全球社区成员线上电话会议。官方表示,主网代码即将冻结。而在会议前一天,官方已经在GitHub发布主网正式版本的进展时间:自9月4日起,主网代码将不再新增功能,在此期间,各矿商将最后对设备与测试的契合度进行测试及最终的优化,9月30日代码冻结。这或意味着Filecoin主网可能将于10月上线。
阿里巴巴发布国内首个公益区块链标准
9月5日消息,在今天召开的阿里巴巴95公益周线下论坛上,由阿里巴巴公益基金会提出并联合起草的《公益链技术和应用规范》团体标准(以下简称标准)正式发布,这是国内首个公益区块链行业标准。
◇加密货币
嘉楠 科技 二季度净收入1.78亿元人民币,环比增长1.6倍
北京时间8月31日,嘉楠 科技 (“Canaan Inc.”或“公司”)公布2020年第二季度(“当季”)合并报表后财务数据(下同),公司当季总净收入达1.781亿元人民币,环比增长160.9%。这主要得益于当季售出的算力总额(售出的算力总额=∑售出的矿机数量×每台矿机的设计算力值)增长198.5%,以及售出的矿机数量增长153.5%。 同时,公司的盈利能力也得到了改善,公司毛利润从2020年第一季度的240万元人民币增长至第二季度的4,330万元人民币,环比增长1,711.5%。二季度毛利率也从2019年同期的4.5%和2020年第一季度的3.5%扩大到24.3%。 嘉楠 科技 董事长兼首席执行官张楠赓表示,2020年5月,比特币平稳完成了减半,比特币价格也逐渐企稳并缓慢上涨,由此促进公司售出的比特币矿机数量和对应售出的算力总额大幅上涨,推动公司财务状况和运营业绩的表现持续改善。
百慕大政府宣布启动数字刺激性代币试点计划
百慕大政府宣布,已与当地私人支付平台Stablehouse合作启动了数字刺激性代币(Stimulus Token)的试点计划,预计该计划将对数字代币在促进购买基本产品和服务方面的可行性提供初步反馈。2019年,百慕大开始开发基于区块链的数字身份识别系统,并宣布公众可以使用稳定币USDC支付税款。刺激性代币的开发将于今年晚些时候启动,作为政府在岛上创建一个支持数字货币的综合加密生态系统举措的一部分。
维也纳证券交易所列出首个加密货币产品
中欧最大的证券交易所之一维也纳证券交易所(Wiener Börse AG)列出了其首个针对比特币和以太坊的交易所交易产品(ETP)。该地区的专家表示,这似乎是一个强烈的采用信号。据悉,该产品由瑞士金融 科技 公司21 Shares AG发行,股票代码为ABTC,旨在追踪比特币和以太坊的走势。
韩国加密货币交易所Bithumb因涉嫌欺诈被首尔警方搜查
9月2日,首尔警方对韩国规模最大的加密货币交易所Bithumb进行搜查。Bithumb韩国理事会议长李政勋正因欺诈和财产逃逸接受警方调查。根据首尔公安厅的说法,搜查缉获与发行BXA代币有关的投资欺诈有关。BXA受害者表示,李等人以上市BXA为名预售300亿韩元代币,但实际上并未上市,造成损失。
数据:以太坊矿工手续费收入1700万美元 刷新 历史 记录
The Block Research数据显示,9月1日,以太坊矿工创造了 历史 最高的1700万美元手续费收入。该数字是2017年12月和2018年1月加密货币价格飙升时记录的最高金额的3.7倍。另一方面,比特币矿商昨天产生了150万美元的交易费用,仅为Ethereum矿商费用的9%。The Block研究总监Larry Cermak表示,以太坊交易费的飙升以及矿工的收入激增,可能导致二级市场中以太坊矿机的价格上涨。Cermak说,这种趋势对于AMD和Nvidia等采矿芯片制造商来说有利。
ETC计划引入执法部门监管算力出租 防止51%攻击再次发生
9月2日消息,在9月1日文章中,Ethereum Classic Labs指出加密货币挖矿市场NiceHash涉嫌参与对该网络的多次攻击。据称,恶意攻击者多次从Nice Hash市场购买算力,以执行所谓的51%的攻击。该公司表示,将采取一切必要措施保护以太坊经典网络,包括对实施或协助恶意攻击的人采取法律行动。它还计划引入执法部门,并与全球监管机构合作,为算力出租提供“问责制”和“透明度”。
OKB最新季度销毁381万枚 价值2100万美元
OKEx发布公告称,2020年6月1日至2020年8月31日,OKB启动了新一季度的回购销毁。这是OKB的第9次回购销毁,共面向二级市场回购销毁OKB 3,816,358.49枚,价值约2100万美金,目前已转入黑洞地址。目前已累计销毁24,487,942.07枚OKB,现有流通量为275,512,057.93枚。
印度总理莫迪推特账号疑被入侵 要求追随者捐赠加密货币
推特官方3日证实,印度总理莫迪个人网站的推特账户遭到黑客攻击,已采取措施进行保护。3日早些时候,莫迪个人网站的推特帐户@narendramodi_in似乎被黑客入侵,其账户出现一系列神秘推文,要求粉丝通过加密货币向救济基金捐款,推文随后被删除。其中一条推文写道,“我呼吁大家慷慨地向新冠病毒国际救济基金捐款,现在,印度开始使用加密货币。”推文还附上一个地址。
Filecoin官方:大矿工测试奖励涨至460万枚FIL
北京时间9月2日,Filecoin核心人员ian在slack发布公告,其要点如下: 1.全球奖励升级,当全网总算力达到200PiB时,即解锁150万枚FIL奖励,奖励总额高达460万枚FIL奖励; 2.新增小矿工支持,对于在9月2日之前注册并提交扇区的矿工,如果完成1TiB算力,可申请500枚FIL奖励,如果有效算力大于10TiB,可最多申请1000枚FIL奖励; 3.矿工们必须完成存储和检索订单功率达到80%以上并完成扇区升级才能申请奖励; 4.交易机器人已经开源,矿工们可让它更完善;5.官方正研究奖励最佳社区成员。
Kleiman诉CSW一案已推迟至2021年1月4日开庭审理
9月4日消息,佛罗里达州南部地区法院已批准推迟CSW和Dave Kleiman诉讼案的动议,该诉讼案将于2021年1月4日开庭审理。
SushiSwap 创始人回应套现:仅造成5%滑点,将继续参与社区工作
9月5日,多名推特网友发现SushiSwap的匿名创始人已售出其钱包内所有的SUSHI代币,但创始人回应称将继续为项目贡献,包括多签、迁移以及开发。该创始人共售出约256万SUSHI,换得约1.8万ETH(约600多万美元),他补充说到售出SUSHI只对价格产生了约5%的滑点。 据此前报道,SushiSwap创始人Chef Nomi表示,已经采取必要措施消除外界关于流动性迁移的FUD(恐惧、不确定和怀疑),其中包括将devpool中所有的$SUSHI代币转换为SUSHI-ETH Uniswap LP的LP代币。所有转换的LP将与每个将LP代币放入MasterChef合约的人一起经历迁移。
8. 鍐呭瓨鐨勫簭鍒楃殑闂棰
鍐呭瓨搴忓垪鍙
浠嶱C100鏍囧噯寮濮嬪唴瀛樻潯涓婂甫鏈塖PD鑺鐗囷紝SPD鑺鐗囨槸鍐呭瓨鏉℃i潰鍙充晶鐨勪竴鍧8绠¤剼灏忚姱鐗囷紝閲岄潰淇濆瓨鐫鍐呭瓨鏉$殑閫熷害銆佸伐浣滈戠巼銆佸归噺銆佸伐浣滅數鍘嬨丆AS銆乼RCD銆乼RP銆乼AC銆丼PD鐗堟湰绛変俊鎭銆傚綋寮鏈烘椂锛屾敮鎸丼PD鍔熻兘鐨勪富鏉緽IOS灏变細璇诲彇SPD涓鐨勪俊鎭锛屾寜鐓ц诲彇鐨勫兼潵璁剧疆鍐呭瓨鐨勫瓨鍙栨椂闂淬傛垜浠鍙浠ュ熷姪SiSoft Sandra2001杩欑被宸ュ叿杞浠舵潵鏌ョ湅SPD鑺鐗囦腑鐨勪俊鎭锛屼緥濡傝蒋浠朵腑鏄剧ず鐨凷DRAM PC133U-333-542灏辫〃绀鸿娴嬪唴瀛樼殑鎶鏈瑙勮寖銆
鍐呭瓨鎶鏈瑙勮寖缁熶竴鐨勬爣娉ㄦ牸寮忥紝涓鑸涓篜Cx-xxx-xxx锛屼絾鏄涓嶅悓鐨勫唴瀛樿勮寖锛屽叾鏍煎紡涔熸湁鎵涓嶅悓銆
1銆丳C66/100 SDRAM鍐呭瓨鏍囨敞鏍煎紡
锛1锛1.0---1.2鐗堟湰
杩欑被鐗堟湰鍐呭瓨鏍囨敞鏍煎紡涓猴細PCa-bcd-efgh锛屼緥濡侾C100-322-622R锛屽叾涓璦琛ㄧず鏍囧噯宸ヤ綔棰戠巼锛岀敤MHZ琛ㄧず锛堝66MHZ銆100MHZ銆133MHZ绛夛級锛沚琛ㄧず鏈灏忕殑CL锛堝嵆CAS绾靛垪瀛樺彇绛夊緟鏃堕棿锛夛紝鐢ㄦ椂閽熷懆鏈熸暟琛ㄧず锛屼竴鑸涓2鎴3锛沜琛ㄧず鏈灏戠殑Trcd锛圧AS鐩稿笴AS鐨勫欢鏃讹級锛岀敤鏃堕挓鍛ㄦ湡鏁拌〃绀猴紝涓鑸涓2锛沝琛ㄧずTRP锛圧AS鐨勯勫厖鐢垫椂闂达級锛岀敤鏃堕挓鍛ㄦ湡鏁拌〃绀猴紝涓鑸涓2锛沞琛ㄧず鏈澶х殑tAC锛堢浉瀵逛簬鏃堕挓涓嬫部鐨勬暟鎹璇诲彇鏃堕棿锛夛紝涓鑸涓6锛坣s锛夋垨6銆5锛岃秺鐭瓒婂ソ锛沠琛ㄧずSPD鐗堟湰鍙凤紝鎵鏈夌殑PC100鍐呭瓨鏉′笂閮芥湁EEPROM锛岀敤鏉ヨ板綍姝ゅ唴瀛樻潯鐨勭浉鍏充俊鎭锛岀﹀悎Intel PC100瑙勮寖鐨勪负1銆2鐗堟湰浠ヤ笂锛沢浠h〃淇璁㈢増鏈锛沨浠h〃妯″潡绫诲瀷锛汻浠h〃DIMM宸叉敞鍐岋紝256MB浠ヤ笂鐨勫唴瀛樺繀椤荤粡杩囨敞鍐屻
锛2锛1.2b+鐗堟湰
鍏舵牸寮忎负锛歅Ca-bcd-eeffghR锛屼緥濡侾C100-322-54122R锛屽叾涓璦琛ㄧず鏍囧噯宸ヤ綔棰戠巼锛岀敤MHZ琛ㄧず锛沚琛ㄧず鏈灏忕殑CL锛堝嵆CAS绾靛垪瀛樺彇绛夊緟鏃堕棿锛夛紝鐢ㄦ椂閽熷懆鏈熸暟琛ㄧず锛屼竴鑸涓2鎴3锛沜琛ㄧず鏈灏戠殑Trcd锛圧AS鐩稿笴AS鐨勫欢鏃讹級锛岀敤鏃堕挓鍛ㄦ湡鏁拌〃绀猴紱d琛ㄧずTRP锛圧AS鐨勯勫厖鐢垫椂闂达級锛岀敤鏃堕挓鍛ㄦ湡鏁拌〃绀猴紱ee浠h〃鐩稿逛簬鏃堕挓涓嬫部鐨勬暟鎹璇诲彇鏃堕棿锛岃〃杈炬椂涓嶅甫灏忔暟鐐癸紝濡54浠h〃5.4ns tAC锛沠f浠h〃SPD鐗堟湰锛屽12浠h〃SPD鐗堟湰涓1.2锛沢浠h〃淇璁㈢増鏈锛屽2浠h〃淇璁㈢増鏈涓1.2锛沨浠h〃妯″潡绫诲瀷锛汻浠h〃DIMM宸叉敞鍐岋紝256MB浠ヤ笂鐨勫唴瀛樺繀椤荤粡杩囨敞鍐屻
2銆丳C133 SDRAM锛堢増鏈涓2.0锛夊唴瀛樻爣娉ㄦ牸寮
濞佺洓鍜岃嫳鐗瑰皵閮芥彁鍑轰簡PC133 SDRAM鏍囧噯锛屽▉鐩涘姏鎺ㄧ殑PC133瑙勮寖鏄疨C133 CAS=3锛屽欢鐢ㄤ簡PC100鐨勫ぇ閮ㄥ垎瑙勮寖锛屼緥濡168绾跨殑SDRAM銆3.3V鐨勫伐浣滅數鍘嬩互鍙奡PD锛涜嫳鐗瑰皵鐨凱C133瑙勮寖瑕佷弗鏍间竴浜涳紝鏄疨C133 CAS=2锛岃佹眰鍐呭瓨鑺鐗囪嚦灏7.5ns锛屽湪133MHz鏃舵渶濂借兘杈惧埌CAS=2銆
PC133 SDRAM鏍囨敞鏍煎紡涓猴細PCab-cde-ffg锛屼緥濡侾C133U-333-542锛屽叾涓璦琛ㄧず鏍囧噯宸ヤ綔棰戠巼锛屽崟浣峂HZ锛沚浠h〃妯″潡绫诲瀷(R浠h〃DIMM宸叉敞鍐岋紝U浠h〃DIMM涓嶅惈缂撳啿鍖猴紱c琛ㄧず鏈灏忕殑CL锛堝嵆CAS鐨勫欢杩熸椂闂达級锛岀敤鏃堕挓鍛ㄦ湡鏁拌〃绀猴紝涓鑸涓2鎴3锛沝琛ㄧずRAS鐩稿笴AS鐨勫欢鏃讹紝鐢ㄦ椂閽熷懆鏈熸暟琛ㄧず锛沞琛ㄧずRAS棰勫厖鐢垫椂闂达紝鐢ㄦ椂閽熷懆鏈熸暟琛ㄧず锛沠f浠h〃鐩稿逛簬鏃堕挓涓嬫部鐨勬暟鎹璇诲彇鏃堕棿锛岃〃杈炬椂涓嶅甫灏忔暟鐐癸紝濡54浠h〃5.4ns tAC锛沢浠h〃SPD鐗堟湰锛屽2浠h〃SPD鐗堟湰涓2.0銆
3銆丳C1600/2100 DDR SDRAM锛堢増鏈涓1.0锛夊唴瀛樻爣娉ㄦ牸寮
鍏舵牸寮忎负锛歅Cab-ccde-ffg锛屼緥濡侾C2100R-2533-750锛屽叾涓璦琛ㄧず鍐呭瓨甯﹀斤紝鍗曚綅涓篗B/s锛沘*1/16=鍐呭瓨鐨勬爣鍑嗗伐浣滈戠巼锛屼緥濡2100浠h〃鍐呭瓨甯﹀戒负2100MB/s锛屽瑰簲鐨勬爣鍑嗗伐浣滈戠巼涓2100*1/16=133MHZ锛沚浠h〃妯″潡绫诲瀷(R浠h〃DIMM宸叉敞鍐岋紝U浠h〃DIMM涓嶅惈缂撳啿鍖猴紱cc琛ㄧずCAS寤惰繜鏃堕棿锛岀敤鏃堕挓鍛ㄦ湡鏁拌〃绀猴紝琛ㄨ揪鏃朵笉甯﹀皬鏁扮偣锛屽25浠h〃CL=2.5锛沝琛ㄧずRAS鐩稿笴AS鐨勫欢鏃讹紝鐢ㄦ椂閽熷懆鏈熸暟琛ㄧず锛沞琛ㄧずRAS棰勫厖鐢垫椂闂达紝鐢ㄦ椂閽熷懆鏈熸暟琛ㄧず锛沠f浠h〃鐩稿逛簬鏃堕挓涓嬫部鐨勬暟鎹璇诲彇鏃堕棿锛岃〃杈炬椂涓嶅甫灏忔暟鐐癸紝濡75浠h〃7.5ns tAC锛沢浠h〃SPD鐗堟湰锛屽0浠h〃SPD鐗堟湰涓1.0銆
4銆丷DRAM 鍐呭瓨鏍囨敞鏍煎紡
鍏舵牸寮忎负锛歛MB/b c d PCe锛屼緥濡256MB/16 ECC PC800锛屽叾涓璦琛ㄧず鍐呭瓨瀹归噺锛沚浠h〃鍐呭瓨鏉′笂鐨勫唴瀛橀楃矑鏁伴噺锛沜浠h〃鍐呭瓨鏀鎸丒CC锛沝淇濈暀锛沞浠h〃鍐呭瓨鐨勬暟鎹浼犺緭鐜囷紝e*1/2=鍐呭瓨鐨勬爣鍑嗗伐浣滈戠巼锛屼緥濡800浠h〃鍐呭瓨鐨勬暟鎹浼犺緭鐜囦负800Mt/s锛屽瑰簲鐨勬爣鍑嗗伐浣滈戠巼涓800*1/2=400MHZ銆
5銆佸悇鍘傚晢鍐呭瓨鑺鐗囩紪鍙
鍐呭瓨鎵撳亣鐨勬柟娉曢櫎浜嗚瘑鍒鍐呭瓨鏍囨敞鏍煎紡澶栵紝杩樺彲浠ュ埄鐢ㄥ埢鍦ㄥ唴瀛樿姱鐗囦笂鐨勭紪鍙枫傚唴瀛樻潯涓婁竴鑸鏈夊氶楀唴瀛樿姱鐗囷紝鍐呭瓨鑺鐗囧洜涓虹敓浜у巶瀹剁殑涓嶅悓锛屽叾涓婄殑缂栧彿涔熸湁鎵涓嶅悓銆
鐢变簬闊╁浗HY鍜孲EC鍗犳嵁浜嗕笘鐣屽唴瀛樹骇閲忕殑澶氬崐浠介濓紝瀹冧滑浜х殑鍐呭瓨鑺鐗囪川閲忕ǔ瀹氾紝浠锋牸涓嶉珮锛屽彟澶栧競闈涓婅繕娴佽孡GS銆並ingmax銆侀噾閭﹂噾鏉$瓑鍐呭瓨锛屽厛鏉ョ湅鐪嬪畠浠鐨勫唴瀛樿姱鐗囩紪鍙枫
锛1锛塇YUNDAI锛堢幇浠o級
鐜颁唬鐨凷DRAM鍐呭瓨鍏煎规ч潪甯稿ソ锛屾敮鎸丏IMM鐨勪富鏉夸竴鑸閮藉彲浠ラ『鍒╃殑浣跨敤瀹冿紝鍏禨DRAM鑺鐗囩紪鍙锋牸寮忎负锛欻Y 5a b cde fg h i j k lm-no
鍏朵腑HY浠h〃鐜颁唬鐨勪骇鍝侊紱5a琛ㄧず鑺鐗囩被鍨(57=SDRAM锛5D=DDRSDRAM)锛沚浠h〃宸ヤ綔鐢靛帇(绌虹櫧=5V锛孷=3.3V,U=2.5V)锛沜de浠h〃瀹归噺鍜屽埛鏂伴熷害锛16=16Mbits銆4K Ref锛64=64Mbits銆8K Ref锛65=64Mbits銆4K Ref锛128=128Mbits銆8K Ref锛129=128Mbits銆4K Ref锛256=256Mbits銆16K Ref锛257=256Mbits銆8K Ref锛夛紱fg浠
琛ㄨ姱鐗囪緭鍑虹殑鏁版嵁浣嶅斤紙40銆80銆16銆32鍒嗗埆浠h〃4浣嶃8浣嶃16浣嶅拰32浣嶏級锛沨浠h〃鍐呭瓨鑺鐗囧唴閮ㄧ敱鍑犱釜Bank缁勬垚锛1銆2銆3鍒嗗埆浠h〃2涓銆4涓鍜8涓狟ank锛屾槸2鐨勫箓娆″叧绯伙級锛汭浠h〃鎺ュ彛锛0=LVTTL銆擫ow Voltage TTL銆曟帴鍙o級锛沯浠h〃鍐呮牳鐗堟湰锛堝彲浠ヤ负绌虹櫧鎴朅銆丅銆丆銆丏绛夊瓧姣嶏紝瓒婂線鍚庝唬琛ㄥ唴鏍歌秺鏂帮級锛沰浠h〃鍔熻楋紙L=浣庡姛鑰楄姱鐗囷紝绌虹櫧=鏅閫氳姱鐗囷級锛沴m浠h〃灏佽呭舰寮忥紙JC=400mil SOJ锛孴C=400mil TSOP-II锛孴D=13mm TSOP-II锛孴G=16mm
TSOP-II锛夛紱no浠h〃閫熷害锛7=7ns銆143MHz銆曪紝8=8ns銆125MHz銆曪紝10p=10ns銆擯C-100 CL2鎴3銆曪紝10s=10ns銆擯C-100 CL3銆曪紝10=10ns銆100MHz銆曪紝12=12ns銆83MHz銆曪紝15=5ns銆66MHz銆曪級銆
渚嬪侶Y57V658010CTC-10s锛孒Y琛ㄧず鐜颁唬鐨勮姱鐗囷紝57浠h〃SDRAM锛65鏄64Mbit鍜4K refresh cycles/64ms锛8鏄8浣嶈緭鍑猴紝10鏄2涓狟ank锛孋鏄绗4涓鐗堟湰鐨勫唴鏍革紝TC鏄400mil TSOP-鈪″皝瑁咃紝10S浠h〃CL=3鐨凱C-100銆
甯傞潰涓奌Y甯歌佺殑缂栧彿杩樻湁HY57V65XXXXXTCXX銆丠Y57V651XXXXXATC10锛屽叾涓瑼TC10缂栧彿鐨凷DRAM涓133MHz鐩稿綋鍥伴毦锛涚紪鍙稟TC8鐨勫彲瓒呭埌124MHz锛屼絾涓133MHz涔熶笉琛岋紱缂栧彿BTC鎴-7銆-10p鐨凷DRAM涓133MHz寰堢ǔ瀹氥備竴鑸鏉ヨ诧紝缂栧彿鏈鍚庝袱浣嶆槸7K鐨勪唬琛ㄨュ唴瀛樺栭戞槸PC100锛75鐨勬槸PC133鐨勶紝浣嗙幇浠e唴瀛樼洰鍓嶅熬鍙蜂负75鐨勬棭宸插仠浜э紝鏀
鎹涓篢-H杩欐牱鐨勫熬鍙凤紝鍙甯傚満涓奝C133鐨勭幇浠e唴瀛樺熬鍙蜂负75鐨勮繕鏈夊緢澶氾紝杩欏彲鑳芥槸浠ュ墠鐨勫悲璐э紝浣嗗彲鑳芥у緢灏忥紝鍋囪揣鐨勫彲鑳芥ц緝澶э紝鎵浠ユ渶濂借喘涔癟-H灏惧彿鐨凱C133鐜颁唬鍐呭瓨銆
锛2锛塋GS銆擫G Semicon銆
LGs濡備粖宸茶獺Y鍏煎苟锛屽競闈涓奓Gs鐨勫唴瀛樿姱鐗囦篃寰堝父瑙併
LGS SDRAM鍐呭瓨鑺鐗囩紪鍙锋牸寮忎负锛欸M72V ab cd e 1 f g T hi
鍏朵腑GM浠h〃LGS鐨勪骇鍝侊紱72浠h〃SDRAM锛沘b浠h〃瀹归噺(16=16Mbits锛66=64Mbits)锛沜d琛ㄧず鏁版嵁浣嶅(涓鑸涓4銆8銆16绛)锛沞浠h〃Bank锛2=2涓狟ank锛4=4涓狟ank锛夛紱f琛ㄧず鍐呮牳鐗堟湰锛岃嚦灏戝凡鎺掑埌E锛沢浠h〃鍔熻楋紙L=浣庡姛鑰楋紝绌虹櫧=鏅閫氾級锛汿浠h〃灏佽咃紙T=甯歌佺殑TSOP鈪″皝瑁咃紝I=BLP灏佽咃級锛沨i浠h〃閫熷害锛7.5=7.5ns銆133MHz銆曪紝8=8ns銆125MHz銆曪紝7K=10ns銆擯C-100 CL2鎴3銆 锛7J=10ns銆100MHz銆曪紝10K=10ns銆100MHz銆曪紝12=12ns銆83MHz銆曪紝15=15ns銆66MHz銆曪級銆
渚嬪侴M72V661641CT7K锛岃〃绀篖Gs SDRAM锛64Mbit锛16浣嶈緭鍑猴紝4涓狟ank锛7K閫熷害鍗砅C-100銆丆L=3銆
LGS缂栧彿鍚庣紑涓锛7.5鏄疨C133鍐呭瓨锛8鏄鐪熸g殑8ns PC 100鍐呭瓨锛岄熷害蹇浜7K/7J锛7K鍜7J灞炰簬PC 100鐨凷DRAM锛屼袱鑰呬富瑕佸尯鍒鏄绗涓変釜鍙嶅簲閫熷害鐨勫弬鏁颁笂锛7K姣7J鐨勮佸揩锛屼笂133MHz鏃7K姣7J鏇寸ǔ瀹氾紱10K灞炰簬闈濸C100瑙勬牸鐨勶紝閫熷害鏋佹參锛岀敱浜庝笌7J/7K澶栧瀷鐩镐技锛屼笉灏戝ジ鍟嗘妸瀹冧滑鍐掑厖7J/7K鐨勬潵鍗栥
锛3锛塊ingmax(鑳滃垱)
Kingmax鐨勫唴瀛橀噰鐢ㄥ厛杩涚殑TinyBGA灏佽呮柟寮忥紝鑰屼竴鑸琒DRAM鍐呭瓨閮介噰鐢═SOP灏佽呫傞噰鐢═inyBGA灏佽呯殑鍐呭瓨锛屽叾澶у皬鏄疶SOP灏佽呭唴瀛樼殑涓夊垎涔嬩竴锛屽湪鍚岀瓑绌洪棿涓婽inyBGA灏佽呭彲浠ュ皢瀛樺偍瀹归噺鎻愰珮涓夊嶏紝鑰屼笖浣撶Н瑕佸皬銆佹洿钖勶紝鍏堕噾灞炲熀鏉垮埌鏁g儹浣撶殑鏈鏈夋晥鏁g儹璺寰勪粎鏈0.36mm锛岀嚎璺闃绘姉涔熷皬锛屽洜姝ゅ叿鏈夎壇濂界殑瓒呴戞ц兘鍜岀ǔ瀹氭э紝涓嶈繃Kingmax鍐呭瓨涓庝富鏉胯姱鐗囩粍鐨勫吋瀹规т笉澶濂斤紝渚嬪侹ingmax PC150鍐呭瓨鍦ㄦ煇浜汯T133涓绘澘涓婄珶鐒舵棤娉曞紑鏈恒
Kingmax SDRAM鍐呭瓨鐩鍓嶆湁PC150銆丳C133銆丳C100涓夌嶃傚叾涓璓C150鍐呭瓨(涓嬪浘)瀹為檯涓婃槸鑳戒笂150澶栭戜笖鑳界ǔ瀹氬湪CL=3锛堟湁浜涜兘涓奀L=2锛夌殑鏋佸搧PC133鍐呭瓨鏉★紝璇ョ被鍨嬪唴瀛樼殑REV1.2鐗堟湰涓昏佽В鍐充簡涓嶸IA 694X鑺鐗囩粍涓绘澘鍏煎归棶棰橈紝鍥犳よ佸ソ浜嶳EV1.1鐗堟湰銆傝喘涔癒ingmax鍐呭瓨鏃讹紝浣犺佹敞鎰忓埆涔颁簡鎵撶(鏉★紝甯傞潰涓奐S甯告妸鍘熸湰鏄8ns鐨
Kingmax PC100鍐呭瓨鎵撶(鎴7ns鐨凱C133鎴朠C150鍐呭瓨锛屾墍浠ヤ綘鏈濂界敤SISOFT SANDRA2001绛夎蒋浠舵祴璇曚竴涓嬪唴瀛樼殑閫熷害锛屾敞鎰忚傚療鍐呭瓨涓婂瓧杩规槸鍚︽竻鏅帮紝鏄鍚︽湁瑙勫垯鐨勫埉鐥曪紝鑺鐗囪〃闈㈡槸鍚﹀彂鐧界瓑锛岀湅鐪嬭姱鐗囦笂鐨勭紪鍙枫
KINGMAX PC150鍐呭瓨閲囩敤浜6绾崇掔殑棰楃矑锛岃繖浣垮畠鐨勯熷害寰楀埌浜嗗緢澶х▼搴︾殑鎻愬崌锛屽嵆浣夸綘鐢ㄥ畠宸ヤ綔鍦≒C133锛屽叾閫熷害涔熶細姣斾竴鑸鐨凱C133鍐呭瓨鏉ョ殑蹇锛汯ingmax鐨凱C133鍐呭瓨鑺鐗囨槸-7鐨勶紝渚嬪傜紪鍙稫SV884T4A1A-07锛涜孭C100鍐呭瓨鑺鐗囨湁涓ょ嶆儏鍐碉細閮ㄥ垎鏄-8鐨勶紙渚嬪傜紪鍙稫SV884T4A0-08锛夛紝閮ㄥ垎鏄-7鐨勶紙渚嬪傜紪鍙稫SV884T4A0-07锛夈傚叾涓璌INGMAXPC133涓嶱C100鐨勫尯鍒鍦ㄤ簬锛歅C100鐨勫唴瀛樻湁鐩稿綋涓閮ㄥ垎鍙浠ヨ秴棰戝埌133锛屼絾涓嶆槸鍏ㄩ儴锛涜孭C133鐨勫唴瀛樺嵈鍙浠ヤ繚璇100%绋冲畾宸ヤ綔鍦≒C133澶栭戜笅锛圕L=2锛夈
锛4锛塆eil(閲戦偊銆佸師妯甸庨噾鏉)
閲戦偊閲戞潯鍒嗕负"閲戙佺孩銆佺豢銆侀摱銆佽摑"浜旂嶅唴瀛樻潯锛屽悇绉嶉噾閭﹂噾
鏉$殑SPD鍧囨槸纭瀹氱殑锛屽瑰簲涓嶅悓鐨勪富鏉裤傚叾涓绾㈣壊閲戞潯鏄疨C133鍐呭瓨锛涢噾鑹查噾鏉P閽堝筆C133鏈嶅姟鍣ㄧ郴缁燂紝閫傚悎鍙屽勭悊鍣ㄤ富鏉匡紱缁胯壊閲戞潯鏄疨C100鍐呭瓨锛涜摑A鑹查噾鏉¢拡瀵笰MD750/760 K7绯讳富鏉匡紝闈㈠悜瓒呴戠帺瀹讹紱钃漋鑹查噾鏉¢拡瀵筀X133涓绘澘锛涜摑T鑹查噾鏉¢拡瀵筀T-133涓绘澘锛涢摱鑹查噾鏉℃槸闈㈠悜绗旇版湰鐢佃剳鐨凱C133鍐呭瓨銆
閲戦偊鍐呭瓨鑺鐗囩紪鍙蜂緥濡侴L2000 GP 6 LC 16M8 4 TG -7 AMIR 00 32
鍏朵腑GL2000浠h〃鑺鐗囩被鍨嬶紙GL2000=鍗冪Η鏉TSOPs鍗冲皬鍨嬭杽鍨嬪皝瑁咃紝閲慡DRAM=BLP锛夛紱GP浠h〃閲戦偊绉戞妧鐨勪骇鍝侊紱6浠h〃浜у搧瀹舵棌锛6=SDRAM锛夛紱LC浠h〃澶勭悊宸ヨ壓锛圕=5V Vcc CMOS锛孡C=0.2寰绫3.3V Vdd CMOS锛孷=2.5V Vdd CMOS锛夛紱16M8鏄璁惧囧彿鐮侊紙娣卞害*瀹藉害锛屽唴瀛樿姱鐗囧归噺 = 鍐呭瓨鍩虹矑瀹归噺 * 鍩虹矑鏁扮洰 = 16 * 8 =128Mbit锛屽叾涓16 = 鍐呭瓨鍩虹矑瀹归噺锛8 = 鍩虹矑鏁扮洰锛汳 = 瀹归噺鍗曚綅锛屾棤瀛楁瘝=Bits锛孠=KB锛孧=MB锛孏=GB锛夛紱4琛ㄧず鐗堟湰锛汿G鏄灏佽呬唬鐮侊紙DJ=SOJ锛孌W=瀹藉瀷SOJ锛孎=54閽4琛孎BGA锛孎B=60閽8*16 FBGA锛孎C=60閽11*13 FBGA锛孎P=鍙嶈浆鑺鐗囧皝瑁咃紝FQ=鍙嶈浆鑺鐗囧瘑灏侊紝F1=62閽2琛孎BGA锛孎2=84閽堬紝2琛孎BGA锛孡F=90閽團BGA锛孡G=TQFP锛孯1=62閽2琛屽井鍨婩BGA锛孯2=84閽2琛屽井鍨婩BGA锛孴G=TSOP锛堢浜屼唬锛夛紝U=渭 BGA锛夛紱-7鏄瀛樺彇鏃堕棿锛7=7ns锛143MHz锛夛級锛汚MIR鏄鍐呴儴鏍
璇嗗彿銆備互涓婄紪鍙疯〃绀洪噾閭﹀崈绂ф潯锛128MB锛孴SOP锛堢浜屼唬锛夊皝瑁咃紝0.2寰绫3.3V Vdd CMOS鍒堕犲伐鑹猴紝7ns銆143MHz閫熷害銆
锛5锛塖EC锛圫amsung Electronics锛屼笁鏄燂級
涓夋槦EDO DRAM鍐呭瓨鑺鐗囩紪鍙蜂緥濡侹M416C254D琛ㄧず锛欿M琛ㄧず涓夋槦鍐呭瓨锛4浠h〃RAM绉嶇被锛4=DRAM锛夛紱16浠h〃鍐呭瓨鑺鐗囩粍鎴恱16锛1=x1[浠1鐨勫嶆暟涓哄崟浣峕銆4=x4銆8=x8銆16=x16锛夛紱C浠h〃鐢靛帇锛圕=5V銆乂=3.3V锛夛紱254浠h〃鍐呭瓨瀵嗗害256Kbit锛256[254] =256Kx銆512(514) = 512Kx銆1 = 1Mx銆4 = 4Mx銆8 = 8Mx銆16 =16Mx锛夛紱D浠h〃鍐呭瓨鐗堟湰锛堢┖鐧=绗1浠c丄=绗2浠c丅=绗3浠c丆=绗4浠c丏=绗5浠o級鍗充笁鏄256Kbit*16=4Mb鍐呭瓨銆
涓夋槦SDRAM鍐呭瓨鑺鐗囩紪鍙蜂緥濡侹M416S16230A-G10琛ㄧず锛欿M琛ㄧず涓
鏄熷唴瀛橈紱4浠h〃RAM绉嶇被锛4=DRAM锛夛紱16浠h〃鍐呭瓨鑺鐗囩粍鎴恱16锛4 = x4銆8 = x8銆16 =x16锛夛紱S浠h〃SDRAM锛16浠h〃鍐呭瓨鑺鐗囧瘑搴16Mbit锛1 = 1M銆2 = 2M銆4 = 4M銆8 =8M銆16 = 16M锛夛紱2浠h〃鍒锋柊锛0 = 4K銆1 = 2K銆2 = 8K锛夛紱3琛ㄧず鍐呭瓨鎺掓暟锛2=2鎺掋3=4鎺掞級锛0浠h〃鍐呭瓨鎺ュ彛锛0=LVTTL銆1=SSTL锛夛紱A浠h〃鍐呭瓨鐗堟湰锛堢┖鐧=绗1浠c丄=绗2浠c丅=绗3浠o級锛汫浠h〃鐢垫簮渚涘簲锛圙=鑷鍔ㄥ埛鏂般丗=浣庣數鍘嬭嚜鍔ㄥ埛鏂帮級锛10浠h〃鏈楂橀戠巼锛7 =7ns[143MHz]銆8 = 8ns[125 MHz]銆10 = 10ns[100 MHz]銆丠 = 100MHz @ CAS鍊间负2銆丩=100 MHz @ CAS鍊间负3 锛夈備笁鏄熺殑瀹归噺闇瑕佽嚜宸辫$畻涓涓嬶紝鏂规硶鏄鐢"S"鍚庣殑鏁板瓧涔楽鍓嶇殑鏁板瓧锛屽緱鍒扮殑缁撴灉鍗充负瀹归噺锛屽嵆涓夋槦16M*16=256Mbit SDRAM鍐呭瓨鑺鐗囷紝鍒锋柊涓8K锛屽唴瀛楤anks涓3锛屽唴瀛樻帴鍙LVTTL锛岀2浠e唴瀛橈紝鑷鍔ㄥ埛鏂帮紝閫熷害鏄
10ns(100 MHz)銆
涓夋槦PC133鏍囧噯SDRAM鍐呭瓨鑺鐗囨牸寮忓備笅锛
Unbuffered鍨嬶細KMM3 xx s xxxx BT/BTS/ATS-GA
Registered鍨嬶細KMM3 90 s xxxx BTI/ATI-GA
涓夋槦DDR鍚屾DRAM鍐呭瓨鑺鐗囩紪鍙蜂緥濡侹M416H4030T琛ㄧず锛欿M琛ㄧず涓夋槦鍐呭瓨锛4浠h〃RAM绉嶇被锛4=DRAM锛夛紱16琛ㄧず鍐呭瓨鑺鐗囩粍鎴恱16锛4=x4銆8=x8銆16=x16銆32=x32锛夛紱H浠h〃鍐呭瓨鐢靛帇锛圚=DDR SDRAM[3.3V]銆丩=DDR SDRAM[2.5V]锛夛紱4浠h〃鍐呭瓨瀵嗗害4Mbit锛4=4M銆8 = 8M銆16 = 16M銆32 = 32M銆64 = 64M銆12 = 128M銆25 =
256M銆51 = 512M銆1G = 1G銆2G = 2G銆4G = 4G锛夛紱0浠h〃鍒锋柊锛0 = 64m/4K [15.6渭s]銆1 = 32m/2K
[15.6渭s]銆2 = 128m/8K[15.6渭s]銆3 = 64m/8K[7.8渭s]銆4 =128m/16K[7.8渭s]锛夛紱3琛ㄧず鍐呭瓨鎺掓暟锛3=4鎺掋4=8鎺掞級锛0浠h〃鎺ュ彛鐢靛帇锛0=娣峰悎鎺ュ彛LVTTL+SSTL_3(3.3V)銆1=SSTL_2(2.5V)锛夛紱T琛ㄧず灏佽呯被鍨嬶紙T=66閽
TSOP II銆丅=BGA銆丆=寰鍨婤GA(CSP)锛夛紱Z浠h〃閫熷害133MHz锛5 = 5ns, 200MHz (400Mbps)銆6 = 6ns,166MHz (333Mbps)銆乊 = 6.7ns, 150MHz (300Mbps)銆乑 = 7.5ns,133MHz (266Mbps)銆8 = 8ns, 125MHz (250Mbps)銆0 = 10ns, 100MHz (200Mbps)锛夈傚嵆涓夋槦4Mbit*16=64Mbit鍐呭瓨鑺鐗囷紝3.3V DDR SDRAM锛屽埛鏂版椂闂0 = 64m/4K
(15.6渭s)锛屽唴瀛樿姱鐗囨帓鏁颁负4鎺掞紙涓ら潰鍚勪袱鎺掞級锛屾帴鍙g數鍘婰VTTL+SSTL_3(3.3V)锛屽皝瑁呯被鍨66閽圱SOP II锛岄熷害133MHZ銆
涓夋槦RAMBUS DRAM鍐呭瓨鑺鐗囩紪鍙蜂緥濡侹M418RD8C琛ㄧず锛欿M琛ㄧず涓夋槦鍐呭瓨锛4浠h〃RAM绉嶇被锛4=DRAM锛夛紱18浠h〃鍐呭瓨鑺鐗囩粍鎴恱18锛16 = x16銆18 = x18锛夛紱RD琛ㄧず浜у搧绫诲瀷锛圧D=Direct RAMBUS DRAM锛夛紱8浠h〃鍐呭瓨鑺鐗囧瘑搴8M锛4 = 4M銆8 =8M銆16 = 16M锛夛紱C浠h〃灏佽呯被鍨嬶紙C = 寰鍨婤GA銆丏 =寰鍨婤GA [閫嗚浆CSP]銆乄 = WL-CSP锛夛紱80浠h〃閫熷害锛60 = 600Mbps銆80 = 800Mbps锛夈傚嵆涓夋槦8M*18bit=144M锛孊GA灏佽咃紝閫熷害800Mbps銆
锛6锛塎icron锛堢編鍏夛級
Micron鍏鍙告槸涓栫晫涓婄煡鍚嶅唴瀛樼敓浜у晢涔嬩竴锛堝傚彸鍥綧icron PC143 SDRAM鍐呭瓨鏉★級锛屽叾SDRAM鑺鐗囩紪鍙锋牸寮忎负锛歁T48 ab cdMef Ag TG-hi j
鍏朵腑MT浠h〃Micron鐨勪骇鍝侊紱48浠h〃浜у搧瀹舵棌锛48=SDRAM銆4=DRAM銆46=DDR SDRAM銆6=Rambus锛夛紱ab浠h〃澶勭悊宸ヨ壓锛圕=5V Vcc CMOS锛孡C=3.3V Vdd CMOS锛孷=2.5V Vdd CMOS锛夛紱cdMef璁惧囧彿鐮侊紙娣卞害*瀹藉害锛夛紝鏃犲瓧姣=Bits锛孠=Kilobits锛圞B锛夛紝M=Megabits锛圡B锛夛紝G=Gigabits锛圙B锛塎ricron鐨勫归噺=cd*ef锛沞f琛ㄧず鏁版嵁浣嶅(4銆8銆16銆32鍒嗗埆浠h〃4浣嶃8浣嶃16浣嶅拰32浣)锛汚g浠h〃Write Recovery銆擳wr銆(A2=Twr=2clk)锛汿G浠h〃灏佽咃紙TG=TSOPII灏佽咃紝DJ=SOJ锛孌W=瀹藉瀷SOJ锛孎=54閽4琛孎BGA锛孎B=60閽8*16 FBGA锛孎C=60閽11*13 FBGA锛孎P=鍙嶈浆鑺鐗囧皝瑁咃紝FQ=鍙嶈浆鑺鐗囧瘑灏侊紝F1=62閽2琛孎BGA锛孎2=84閽2琛孎BGA锛孡F=90閽團BGA锛孡G=TQFP锛孯1=62閽2琛屽井鍨
FBGA锛孯2=84閽2琛屽井鍨婩BGA锛孶=渭 BGA锛夛紱j浠h〃鍔熻楋紙L=浣庤楋紝绌虹櫧=鏅閫氾級锛沨j浠h〃閫熷害锛屽垎鎴愪互涓嬪洓绫伙細
锛圓锛夈丏RAM-4=40ns锛-5=50ns锛-6=60ns锛-7=70ns SDRAM锛寈32 DDR SDRAM锛堟椂閽熺巼 @ CL3锛-15=66MHz锛-12=83MHz锛-10+=100MHz锛-8x+=125MHz锛-75+=133MHz锛-7x+=143MHz锛-65=150MHz锛-6=167MHz锛-55=183MHz锛-5=200MHzDDR SDRAM锛坸4锛寈8锛寈16锛夋椂閽熺巼 @ CL=2.5锛-8+=125MHz锛-75+=133MHz锛-7+=143MHz
锛圔锛夈丷ambus锛堟椂閽熺巼锛
-4D=400MHz 40ns锛-4C=400MHz 45ns锛-4B=400MHz 50ns锛-3C=356MHz 45ns锛-3B=356MHz 50ns锛-3M=300MHz 53ns+鐨勫惈涔-8E鏀鎸丳C66鍜孭C100锛圕L2鍜孋L3锛-75鏀鎸丳C66銆丳C100锛圕L2鍜孋L3锛夈丳C133锛圕L=3锛夈-7鏀鎸丳C66銆丳C100锛圕L2鍜孋L3锛夈丳C133锛圕L2鍜孋L3锛-7E鏀鎸丳C66銆丳C100锛圕L2鍜孋L3锛夈丳C133锛圕L2+鍜孋L3锛
锛圕锛夈丏DR SDRAM
-8鏀鎸丳C200锛圕L2锛-75鏀鎸丳C200锛圕L2锛夊拰PC266B锛圕L=2.5锛-7鏀鎸丳C200锛圕L2锛夛紝PC266B锛圕L2锛夛紝PC266A锛圕L=2.5锛夈備緥濡侻T 48 LC 16M8 A2 TG -75 L _ ES琛ㄧず缇庡厜鐨凷DRAM锛16M8=16*8MB=128MB锛133MHz
锛7锛夊叾瀹冨唴瀛樿姱鐗囩紪鍙
NEC鐨勫唴瀛樿姱鐗囩紪鍙蜂緥濡偽糚D4564841G5-A80-9JF琛ㄧず锛毼糚D4浠h〃NEC鐨勪骇鍝侊紱5浠h〃SDRAM锛64浠h〃瀹归噺64MB锛8琛ㄧず鏁版嵁浣嶅斤紙4銆8銆16銆32鍒嗗埆浠h〃4浣嶃8浣嶃16浣嶃32浣嶏紝褰撴暟鎹浣嶅戒负16浣嶅拰32浣嶆椂锛屼娇鐢ㄤ袱浣嶏級锛4浠h〃Bank鏁帮紙3鎴4浠h〃4涓狟ank锛屽湪16浣嶅拰32浣嶆椂浠h〃2涓狟ank锛2浠h〃2涓狟ank锛夛紱1浠h〃LVTTL锛堝備负16
浣嶅拰32浣嶇殑鑺鐗囷紝鍒欎负涓や綅锛岀2浣嶅弻閲嶅惈涔夛紝濡1浠h〃2涓狟ank鍜孡VTTL锛3浠h〃4涓狟ank鍜孡VTTL锛夛紱G5涓篢SOPII灏佽咃紱-A80浠h〃閫熷害锛氬湪CL=3鏃跺彲宸ヤ綔鍦125MHZ涓嬶紝鍦100MHZ鏃禖L鍙璁句负2锛80=8ns銆125MHz CL 3銆曪紝10=10ns銆擯C100 CL 3銆曪紝10B=10ns杈10鎱锛孴ac涓7锛屼笉瀹屽叏绗﹀悎PC100瑙勮寖锛12=12ns锛70=[PC133]锛75=[PC133]锛夛紱JF浠h〃灏佽呭栧瀷锛圢F=44-pinTSOP-II锛汮F=54-pin TSOPII锛汮H=86-pin TSOP-II锛夈
HITACHI鐨勫唴瀛樿姱鐗囩紪鍙蜂緥濡侶M5264805F -B60琛ㄧず锛欻M浠h〃鏃ョ珛鐨勪骇鍝侊紱52鏄疭DRAM绫诲瀷锛51=EDO DRAM锛52=SDRAM锛夛紱64浠h〃瀹归噺64MB锛80琛ㄧず鏁版嵁浣嶅斤紙40銆80銆16鍒嗗埆浠h〃4浣嶃8浣嶃16浣嶏級锛5F琛ㄧず鏄绗鍑犱釜鐗堟湰鐨勫唴鏍革紙鐜板湪鑷冲皯宸叉帓鍒"F"浜嗭級锛涚┖鐧借〃绀哄姛鑰楋紙L=浣庡姛鑰楋紝绌虹櫧=鏅閫氾級锛汿T涓篢SOII灏佽咃紱B60浠h〃閫熷害锛75=7.5ns銆133MHz銆曪紝80=8ns銆125MHz銆曪紝A60=10ns銆擯C-100 CL2鎴3銆曪紝B60=10ns銆擯C-100 CL3銆曞嵆100MHZ鏃禖L鏄3锛夈
SIEMENS锛堣タ闂ㄥ瓙锛夊唴瀛樿姱鐗囩紪鍙锋牸寮忎负锛欻YB39S ab cd0 e T f -gh 鍏朵腑ab涓哄归噺锛実h鏄閫熷害锛6=166MHz锛7=143MHz锛7.5=133MHz锛8=125MHz锛8B=100MHz銆擟L3銆曪紝10=100MHz銆擯C66瑙勬牸銆曪級銆
TOSHIBA鐨勫唴瀛樿姱鐗囩紪鍙蜂緥濡俆C59S6408BFTL-80琛ㄧず锛歍C浠h〃鏄涓滆姖鐨勪骇鍝侊紱59浠h〃SDRAM锛堝叾鍚庣殑S=鏅閫歋DRAM锛孯=Rambus SDRAM锛學=DDR SDRAM锛夛紱64浠h〃瀹归噺锛64=64Mb锛孧7=128Mb锛夛紱08琛ㄧず鏁版嵁浣嶅斤紙04銆08銆16銆32鍒嗗埆浠h〃4浣嶃8浣嶃16浣嶅拰32浣嶏級锛汢琛ㄧず鍐呮牳鐨勭増鏈锛汧T涓篢SOPII灏佽咃紙FT鍚庡傛湁瀛楁瘝L=浣庡姛鑰楋紝绌虹櫧=鏅閫氾級锛80浠h〃閫熷害锛75=7.5ns銆133MHz銆曪紝80=8ns銆125MHz銆曪紝10=10ns銆100MHz CL=3銆曪級銆
IBM鐨勫唴瀛樿姱鐗囩紪鍙蜂緥濡侷BM0316809CT3D-10锛屽叾涓璉BM浠h〃IBM鐨勪骇鍝侊紱03浠h〃SDRAM锛16浠h〃瀹归噺16MB锛80琛ㄧず鏁版嵁浣嶅斤紙40銆80銆16鍒嗗埆浠h〃4銆8銆16浣嶏級锛汣浠h〃鍔熻楋紙P=浣庡姛鑰楋紝C=鏅閫氾級锛汥琛ㄧず鍐呮牳鐨勭増鏈锛10浠h〃閫熷害锛68=6.8ns銆147MHz銆曪紝75A=7.5NS銆133MHz銆曪紝 260鎴222=10ns銆擯C100 CL2鎴3銆曪紝360鎴322=10ns銆擯C100 CL3銆曪紝B鐗堢殑64Mbit鑺鐗囦腑锛260鍜360鍦–L=3鏃剁殑鏍囧畾閫熷害涓猴細135MHZ锛10=10NS銆100MHz銆曘
9. editplus怎么写汇编程序
新建一个makeasm.bat文件,内容如下:
@echooff
setfile=%1
"D:ProgramFilesEditPlus3masm.exe"%file%.asm;
"D:ProgramFilesEditPlus3link.exe"%file%.obj;
debug%file%.exe
然后添加一个用户工具,
命令设置为:D:Program FilesEditPlus 3makeasm.bat
参数设置为:$(FileNameNoExt)
起始目录设置为:$(FileDir)
新建一个语法文件asm.stx,内容如下:
#TITLE=ASM
;
#DELIMITER=,(){}[]-+*%/="''''~!&|<>?:;.#
#QUOTATION1=''''
#QUOTATION2="
#CONTINUE_QUOTE=n
#LINECOMMENT=;
#LINECOMMENT2=
#COMMENTON=
#COMMENTOFF=
#COMMENTON2=
#COMMENTOFF2=
#ESCAPE=/
#CASE=n
#PREFIX1=
#PREFIX2=
#PREFIX3=
#PREFIX4=
#PREFIX5=
#SUFFIX1=
#SUFFIX2=
#SUFFIX3=
#SUFFIX4=
#SUFFIX5=
#KEYWORD=Compilerdirectives
include
includelib
define
286
386
486
586
model
data
segment
code
const
begin
ends
end
proc
endp
local
option
proto
struct
stack
start
#KEYWORD=Assume&Macro
if
elseif
else
endif
repeat
until
untilcxz
while
endw
break
continue
macro
endm
exitm
for
forc
goto
word
byte
dword
qword
real4
real8
real10
tbyte
db
dw
dd
dq
ptr
near
far
short
extrn
equ
offset
addr
invoke
flat
stdcall
casemap
none
uses
popup
menuitem
font
caption
style
exstyle
discardable
icon
bitmap
cursor
menu
stringtable
dialog
dialogex
edittext
defpushbutton
pushbutton
ltext
control
lib
assume
nothing
#KEYWORD=instruction
aaa
aad
aam
aas
adc
add
and
arpl
bound
call
cbw
clc
cld
cli
clts
cmc
cmp
cmpsb
cmpsw
cwd
daa
das
dec
div
enter
esc
hlt
idiv
imul
in
inc
insb
insw
int
into
iret
ja
jae
jb
jbe
jcxz
je
jg
jge
jl
jle
jmp
jnb
jnbe
jne
jnle
jno
jnp
jnz
jpo
jz
jo
jp
js
jns
lahf
lar
lds
lea
leave
les
lgdt
lidt
lldt
lmsw
lock
lodsb
lodsw
loop
loopnz
loopz
lsl
ltr
mov
movsb
movsw
mul
neg
nop
not
or
out
outsb
outsw
pop
popa
popf
push
pusha
pushf
rcl
rep
repnz
repz
ret
reft
rol
ror
sahf
sar
sbb
scasb
scasw
sgdt
shl
shr
sldt
smsw
stc
std
sti
stosb
stosw
str
sub
test
wait
verr
verw
xchg
xlat
xor
bsf
bsr
bt
btc
btr
bts
cdq
cwde
iretd
lfs
lgs
lss
movsx
movzx
popad
popfd
pushad
pushfd
seta
setb
setbe
sete
setg
setl
setle
setnb
setne
setnl
setno
setnp
setns
seto
setp
sets
shld
shrd
cmpsd
stosd
lodsd
movsd
scasd
insd
outsd
jecxz
bswap
cmpxchg
invd
invlpg
wbinvd
xadd
fabs
fadd
faddp
fbld
fbstp
fchs
fclex
fcom
fcomp
fcompp
fdecstp
fdisi
fdiv
fdivp
fdivr
fdivrp
feni
ffree
fiadd
fiacom
fiacomp
fidiv
fidivr
fild
fimul
fincstp
finit
fist
fistp
fisub
fisubr
fld
fldcwr
fldenv
fldlg2
fldln2
fldl2e
fldl2t
fldpi
fldz
fld1
fldcw
fmul
fmulp
fnop
fnsts
fpatan
fprem
fptan
frndint
fsavent
fscale
fsetpm
fsqrt
fst
fstcw
fstenv
fstp
fstsw
fsub
fsubp
fsubr
fsubrp
ftst
fwait
fxam
fxch
fxtract
fyl2x
fyl2xpi
f2xm1
fcos
fsin
fprem1
fsincos
fucom
fucomp
fucompp
#KEYWORD=CPURegisters
eax
ax
ah
al
ebx
bx
bh
bl
ecx
cx
ch
cl
edx
dx
dh
dl
esi
si
edi
di
esp
sp
ebp
bp
eflags
flags
cs
ds
es
ss
fs
gs
st
cr
dr
tr
gdtr
ldtr
idtr
cr0
cr2
cr3
cr4
dr0
dr1
dr2
dr3
dr6
dr7
tr3
tr4
tr5
tr6
tr7
st0
st1
st2
st3
st4
st5
st6
st7
mm0
mm1
mm2
mm3
mm4
mm5
mm6
mm7
xmm0
xmm1
xmm2
xmm3
xmm4
xmm5
xmm6
xmm7