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