<ol id="glfvi"></ol>

    <fieldset id="glfvi"></fieldset>

    1. <mark id="glfvi"></mark>
        <var id="glfvi"></var>

        <big id="glfvi"></big>

        天堂8在线天堂资源BT_一区二区在线 | 国_天堂SV在线最新版在线_97在线观看视频_欧美成人影院在线观看

        機(jī)電之家資源網(wǎng)
        單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
        培訓(xùn)信息
        贊助商
        X86嵌入式處理器開發(fā)
        X86嵌入式處理器開發(fā)
         更新時(shí)間:2010-1-8 17:02:44  點(diǎn)擊數(shù):0
        【字體: 字體顏色
        X86 CPU 原來(lái)是用于個(gè)人計(jì)算機(jī)的 , 大家都知道的如 8086/88,80186/188,80286,80386,80486,Petium,Celeon,Pentium II……,隨著個(gè)人計(jì)算機(jī)的發(fā)展,許多原來(lái)的CPU紛紛被淘汰,但這些處理器并未退出歷史舞臺(tái),繼續(xù)在各個(gè)領(lǐng)域發(fā)揮著作用,在工業(yè)控制領(lǐng)域,80x186/188EA,80x186/188EB,80x186/188EC,80386EX等得到廣泛的應(yīng)用。 

            主要型號(hào)有:Intel 80186/188, 80186/188EA, 80186/188EB, 80186/188EC, 80386EX ……, Intel的站點(diǎn)http://www.intel.com。 

            AMD 80186/188,80186/188ED,80186/188EM,80186/188ES,ELAN300,ELAN400,最近還推出了用于網(wǎng)絡(luò)的80186/188CH,型號(hào)我記不清了,有興趣的可以到http://www.amd.com去找。 

            比較而言我自己覺得AMD的產(chǎn)品要好一些,設(shè)計(jì)簡(jiǎn)單,提供的外部資源(指定時(shí)器、中斷控制器、I/O口、地址譯碼、DMA控制器、DRAM控制器……)要多一些,另外ELAN300,ELAN400簡(jiǎn)直就是一臺(tái)個(gè)人計(jì)算機(jī),它集成了PC機(jī)除了DRAM和磁盤控制器之外幾乎所有的電路(把LCD顯示器接口也集成到里面了,包括RTM,TMR,INT Controller,DMA,DRAM Controller,SIO,KEYBOARD……)。若用DISKONCHIP作為硬盤的話加上DRAM,LCD顯示器,鍵盤,網(wǎng)卡就是一臺(tái)PC機(jī)了。 

            為了適應(yīng)工業(yè)領(lǐng)域的應(yīng)用,簡(jiǎn)化用戶的開發(fā)難度,Intel和AMD兩大公司推出了自己各有特色的產(chǎn)品,特別值得一提的是AMD公司的產(chǎn)品,應(yīng)用起來(lái)特別是硬件設(shè)計(jì)非常簡(jiǎn)單,但AMD公司沒有推出象 Intel  AppBuilder一樣的工具,編程還是要困難一點(diǎn)。另外X86系列的一個(gè)缺點(diǎn)就是仿真器非常昂貴,我們可以在PC機(jī)上作軟件調(diào)試,編譯器用 MSC,TC,BC 均可。但生成的是 .EXE 文件需要操作系統(tǒng)加載運(yùn)行,無(wú)法寫入ROM里,我們需要一個(gè)定位工具,把 .EXE 文件的重定位段定位.另外由于沒有了操作系統(tǒng)的支持,所以需要重寫 C 語(yǔ)言的啟動(dòng)文件,在TC下有一個(gè) C0X.OBJ的文件(X=T,S,M,L,H為Tiny, Small, Medium, Large,Huge模式,對(duì)應(yīng)的有一個(gè)C0.ASM的匯編源程序),完成 C 語(yǔ)言的初始化,設(shè)置堆棧,與操作系統(tǒng)接口……,我們重寫 C 語(yǔ)言的啟動(dòng)文件就是重寫C0.ASM. 當(dāng)然若能買一個(gè)嵌入實(shí)時(shí)操作系統(tǒng)就不要這樣麻煩了,可悲的是嵌入實(shí)時(shí)操作系統(tǒng)太貴,也有免費(fèi)的,或者學(xué)習(xí)起來(lái)太難,因?yàn)闆]有資料,用戶又太少。 


        -------------------------------------------------------------------------------- 

            本人在用80C188EB開發(fā)過(guò)一個(gè)通訊控制器,配有8個(gè)串口,其中有兩個(gè)為同步/異步,6個(gè)異步。配有512K ROM,512K RAM,RTM,8K串行EEPROM。用TC作開發(fā)工具,除了應(yīng)用程序外,主要的難點(diǎn)在于:C語(yǔ)言的啟動(dòng)代碼;定位工具;串行EEPROM的接口庫(kù)。這里僅介紹C語(yǔ)言的啟動(dòng)代碼。 

            本來(lái),各種C語(yǔ)言編譯器都提供啟動(dòng)代碼,以X86為例,無(wú)論是TC、MSC、BC都有。TC在不同模式下啟動(dòng)代碼不一樣,為C0X.OBJ.一般編程,用不著去修改啟動(dòng)代碼。但有的場(chǎng)合就有必要了。筆者為一套系統(tǒng)開發(fā)軟件時(shí)發(fā)現(xiàn):一套系統(tǒng)當(dāng)沒有操作系統(tǒng)時(shí),要想使得系統(tǒng)正常運(yùn)行是相當(dāng)困難的。筆者開發(fā)的系統(tǒng)CPU為80C188EB,無(wú)操作系統(tǒng),開發(fā)工具為TC2.0。為了能使得系統(tǒng)運(yùn)行,又不能用太低級(jí)的語(yǔ)言如匯編,可謂歷盡辛苦(當(dāng)然可以買現(xiàn)成的開發(fā)工具和仿真工具,太貴)。 
            筆者重寫了TC的啟動(dòng)代碼,另外還改寫了一個(gè)重定位工具(把EXE文件變?yōu)榭芍苯訉懭隦OM去的文件)。因?yàn)楹苌僖姷筋愃莆恼。下面把主要?nèi)容寫出來(lái),以饗讀者。以后我準(zhǔn)備把這個(gè)工具完善以下,做成一個(gè)重新定位的工具。  

           C語(yǔ)言的啟動(dòng)代碼如下: 
        ; tcstart.asm 
        ; for d000 code only, external eprom on memory card 
        ; FOR PC ROM  
        extrn  _main:far;  

        /*  說(shuō)明外部的C語(yǔ)言的MAIN() 函數(shù),這也是 C 語(yǔ)言為什么非要從MAIN()開始的原因 */ 
        _text segment byte public "CODE" ; /* C語(yǔ)言生成的代碼段 */ 
        _text ends 
        _textend segment para public "CODEEND";  /* 代碼段的結(jié)束段 */ 
        _textend ends 
        _data segment para public "DATA"; /* C語(yǔ)言生成的初始化數(shù)據(jù)段 */ 
        _data ends 
        _dataend segment para public "DATAEND"; /* 初始化數(shù)據(jù)段的結(jié)束段 */ 
        _dataend ends 
        _bss segment para public "BSS"  ;/* C語(yǔ)言生成的非初始化數(shù)據(jù)段 */ 
        _bss ends 
        _bssend  segment byte public "BSSEND";/* C語(yǔ)言生成的非初始化數(shù)據(jù)結(jié)束段 */ 
        _bssend  ends 
        _stack segment para stack  "STACK" ; /* 堆棧段 */ 
        _stack ends 
        DGROUP group _DATA, _DATAEND, _BSS, _BSSEND /* 把數(shù)據(jù)的段構(gòu)成一個(gè)組,代碼連在一起 */ 
        CGROUP group _TEXT, _TEXTEND /* 把代碼的段構(gòu)成一個(gè)組,代碼連在一起 */ 
        _TEXT segment    ; /* 代碼段 */ 
        assume CS:CGROUP, DS:DGROUP, ES:DGROUP, SS:_STACK 

        start: cli            ; disable interrupts 
        mov ax, _STACK ; initialise stack 
        mov ss, ax 
        mov ax, offset stackend 
        mov sp, ax 
        mov ax, seg _BSS ; /* BSS SEG CLEAR */ 
        mov es, ax 
        mov cx, offset DGROUP:endbss 
        mov di, 0    
        mov ax, 0 
        rep stosb ; write to ES:DI 
        mov ax, seg DGROUP  ;初始化數(shù)據(jù)段 
        mov es, ax ; point ES to _DATA 
        mov cx, offset DGROUP:enddata 
        mov si, 0 
        mov di, 0 
        assume ds:CGROUP 
        mov ax, seg _TEXTEND:codeend 
        inc ax 
        mov ds, ax ; point DS to _CONST 
        rep movsb ; copy _CONST to _DATA 
        push es ; point DS to _DATA 
        pop ds 
                                     ;下面內(nèi)容非PC 機(jī)可以不要 
        mov al, 80h      ; enable NMI 
        out 0a0h, al 
        mov al, 0bch     ; enable 8259 PIC  1011-1100 (irq0,1,6 enabled) 
        out 21h, al 
                                     ;上面內(nèi)容非PC 機(jī)可以不要 
        sti ; enable interrupts 
        call _main   ; CALL C MAIN()  
        jmp start   ; 
        _TEXT ends 
        _TEXTEND segment 
        public codeend 
        db 16 dup(?) ; a paragraph, thus _CONST is one byte more 
        codeend label byte 
        _TEXTEND ends 
        _STACK segment 
        db 1024 dup ("STACK");/* 預(yù)留的堆?臻g */ 
        stackend label word 
        _STACK ends 
        _BSSEND segment 
        public endbss 
        endbss label byte 
        _BSSEND ends 
        _DATAEND segment 
        public enddata 
        enddata label byte 
        _DATAEND ends 
                end 
        編譯連接: 
        tasm /mx tcstart 
        bcc -a- -c -f- -G- -K -B -ml -M -N- -O- -r- -v- -y- -Z- -S -O-  1.c 
        tlink /m tcstart  1 tclib,  1,  1 
        locate  1; LOCATE 工具,本人無(wú)源代碼。 
      1. 上一篇: 三種常用的嵌入式操作系統(tǒng)分析與比較
      2. 下一篇: 沒有了
      3. 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
        熱點(diǎn)文章
         
        推薦文章
         
        相關(guān)文章
        網(wǎng)友評(píng)論:(只顯示最新5條。)
        關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

        點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
        本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
        機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
        Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
        電話:0571-87774297 傳真:0571-87774298
        杭州濱興科技有限公司提供技術(shù)支持

        主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
        中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

        網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1
        黑人巨茎大战欧美白妇_一区二区在线 | 国_天堂SV在线最新版在线_97在线观看视频
          <ol id="glfvi"></ol>

          <fieldset id="glfvi"></fieldset>

          1. <mark id="glfvi"></mark>
              <var id="glfvi"></var>

              <big id="glfvi"></big>