大地资源网视频在线观看新浪,日本春药精油按摩系列,成人av骚妻潮喷,国产xxxx搡xxxxx搡麻豆

您現(xiàn)在的位置:智能制造網(wǎng)>技術(shù)中心>2X86嵌入式處理器開發(fā)

直播推薦

更多>

企業(yè)動態(tài)

更多>

推薦展會

更多>

2X86嵌入式處理器開發(fā)

2009年03月19日 17:35:57人氣:1464來源:浙江啟揚(yáng)智能科技有限公司

x86 cpu 原來是用于個人計算機(jī)的,大家都知道的如 8086/88,80186/188,80286,80386,80486,petium,celeon,pentium ii……,隨著個人計算機(jī)的發(fā)展,許多原來的cpu紛紛被淘汰,但這些處理器并未退出歷史舞臺,繼續(xù)在各個領(lǐng)域發(fā)揮著作用,在工業(yè)控制領(lǐng)域,80x186/188ea,80x186/188eb,80x186/188ec,80386ex等得到廣泛的應(yīng)用。 

    主要型號有:in 80186/188, 80186/188ea, 80186/188eb, 80186/188ec, 80386ex ……, in的站點(diǎn)。 

    amd 80186/188,80186/188ed,80186/188em,80186/188es,elan300,elan400,zui近還推出了用于網(wǎng)絡(luò)的80186/188ch,型號我記不清了,有興趣的可以到去找。 

    比較而言我自己覺得amd的產(chǎn)品要好一些,設(shè)計簡單,提供的外部資源(時器、中斷控制器、i/o口、地址譯碼、dma控制器、dram控制器……)要多一些,另外elan300,elan400簡直就是一臺個人計算機(jī),它集成了pc機(jī)除了dram和磁盤控制器之外幾乎所有的電路(把lcd顯示器接口也集成到里面了,包括rtm,tmr,int controller,dma,dram controller,sio,keyboard……)。若用diskonchip作為硬盤的話加上dram,lcd顯示器,鍵盤,網(wǎng)卡就是一臺pc機(jī)了。 

    為了適應(yīng)工業(yè)領(lǐng)域的應(yīng)用,簡化用戶的開發(fā)難度,in和amd兩大公司推出了自己各有特色的產(chǎn)品,特別值得一提的是amd公司的產(chǎn)品,應(yīng)用起來特別是硬件設(shè)計非常簡單,但amd公司沒有推出象 in  appbuilder一樣的工具,編程還是要困難一點(diǎn)。另外x86系列的一個缺點(diǎn)就是仿真器非常昂貴,我們可以在pc機(jī)上作軟件調(diào)試,編譯器用 msc,tc,bc 均可。但生成的是 .exe 文件需要操作系統(tǒng)加載運(yùn)行,無法寫入rom里,我們需要一個定位工具,把 .exe 文件的重定位段定位.另外由于沒有了操作系統(tǒng)的支持,所以需要重寫 c 語言的啟動文件,在tc下有一個 c0x.obj的文件(x=t,s,m,l,h為tiny, small, medium, large,huge模式,對應(yīng)的有一個c0.asm的匯編源程序),完成 c 語言的初始化,設(shè)置堆棧,與操作系統(tǒng)接口……,我們重寫 c 語言的啟動文件就是重寫c0.asm. 當(dāng)然若能買一個嵌入實(shí)時操作系統(tǒng)就不要這樣麻煩了,可悲的是嵌入實(shí)時操作系統(tǒng)太貴,也有免費(fèi)的,或者學(xué)習(xí)起來太難,因?yàn)闆]有資料,用戶又太少。 


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

    本人在用80c188eb開發(fā)過一個通訊控制器,配有8個串口,其中有兩個為同步/異步,6個異步。配有512k rom,512k ram,rtm,8k串行eeprom。用tc作開發(fā)工具,除了應(yīng)用程序外,主要的難點(diǎn)在于:c語言的啟動代碼;定位工具;串行eeprom的接口庫。這里僅介紹c語言的啟動代碼。 

    本來,各種c語言編譯器都提供啟動代碼,以x86為例,無論是tc、msc、bc都有。tc在不同模式下啟動代碼不一樣,為c0x.obj.一般編程,用不著去修改啟動代碼。但有的場合就有必要了。筆者為一套系統(tǒng)開發(fā)軟件時發(fā)現(xiàn):一套系統(tǒng)當(dāng)沒有操作系統(tǒng)時,要想使得系統(tǒng)正常運(yùn)行是相當(dāng)困難的。筆者開發(fā)的系統(tǒng)cpu為80c188eb,無操作系統(tǒng),開發(fā)工具為tc2.0。為了能使得系統(tǒng)運(yùn)行,又不能用太低級的語言如匯編,可謂歷盡辛苦(當(dāng)然可以買現(xiàn)成的開發(fā)工具和仿真工具,太貴)。 
    筆者重寫了tc的啟動代碼,另外還改寫了一個重定位工具(把exe文件變?yōu)榭芍苯訉懭雛om去的文件)。因?yàn)楹苌僖姷筋愃莆恼隆O旅姘阎饕獌?nèi)容寫出來,以饗讀者。以后我準(zhǔn)備把這個工具完善以下,做成一個重新定位的工具。  

   c語言的啟動代碼如下: 
; tcstart.asm 
; for d000 code only, external eprom on memory card 
; for pc rom  
extrn  _main:far;  

/*  說明外部的c語言的main() 函數(shù),這也是 c 語言為什么非要從main()開始的原因 */ 
_text segment byte public "code" ; /* c語言生成的代碼段 */ 
_text ends 
_textend segment para public "codeend";  /* 代碼段的結(jié)束段 */ 
_textend ends 
_data segment para public "data"; /* c語言生成的初始化數(shù)據(jù)段 */ 
_data ends 
_dataend segment para public "dataend"; /* 初始化數(shù)據(jù)段的結(jié)束段 */ 
_dataend ends 
_bss segment para public "bss"  ;/* c語言生成的非初始化數(shù)據(jù)段 */ 
_bss ends 
_bssend  segment byte public "bssend";/* c語言生成的非初始化數(shù)據(jù)結(jié)束段 */ 
_bssend  ends 
_stack segment para stack  "stack" ; /* 堆棧段 */ 
_stack ends 
dgroup group _data, _dataend, _bss, _bssend /* 把數(shù)據(jù)的段構(gòu)成一個組,代碼連在一起 */ 
cgroup group _text, _textend /* 把代碼的段構(gòu)成一個組,代碼連在一起 */ 
_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ù)留的堆棧空間 */ 
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 工具,本人無源代碼。
全年征稿/資訊合作 聯(lián)系郵箱:1271141964@qq.com

免責(zé)聲明

  • 凡本網(wǎng)注明"來源:智能制造網(wǎng)"的所有作品,版權(quán)均屬于智能制造網(wǎng),轉(zhuǎn)載請必須注明智能制造網(wǎng),http://www.xashilian.com。違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
  • 企業(yè)發(fā)布的公司新聞、技術(shù)文章、資料下載等內(nèi)容,如涉及侵權(quán)、違規(guī)遭投訴的,一律由發(fā)布企業(yè)自行承擔(dān)責(zé)任,本網(wǎng)有權(quán)刪除內(nèi)容并追溯責(zé)任。
  • 本網(wǎng)轉(zhuǎn)載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品來源,并自負(fù)版權(quán)等法律責(zé)任。
  • 如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

<
更多 >

工控網(wǎng)機(jī)器人儀器儀表物聯(lián)網(wǎng)3D打印工業(yè)軟件金屬加工機(jī)械包裝機(jī)械印刷機(jī)械農(nóng)業(yè)機(jī)械食品加工設(shè)備制藥設(shè)備倉儲物流環(huán)保設(shè)備造紙機(jī)械工程機(jī)械紡織機(jī)械化工設(shè)備電子加工設(shè)備水泥設(shè)備海洋水利裝備礦冶設(shè)備新能源設(shè)備服裝機(jī)械印染機(jī)械制鞋機(jī)械玻璃機(jī)械陶瓷設(shè)備橡塑設(shè)備船舶設(shè)備電子元器件電氣設(shè)備


我要投稿
  • 投稿請發(fā)送郵件至:(郵件標(biāo)題請備注“投稿”)1271141964.qq.com
  • 聯(lián)系電話0571-89719789
工業(yè)4.0時代智能制造領(lǐng)域“互聯(lián)網(wǎng)+”服務(wù)平臺
智能制造網(wǎng)APP

功能豐富 實(shí)時交流

智能制造網(wǎng)小程序

訂閱獲取更多服務(wù)

微信公眾號

關(guān)注我們

抖音

智能制造網(wǎng)

抖音號:gkzhan

打開抖音 搜索頁掃一掃

視頻號

智能制造網(wǎng)

公眾號:智能制造網(wǎng)

打開微信掃碼關(guān)注視頻號

快手

智能制造網(wǎng)

快手ID:gkzhan2006

打開快手 掃一掃關(guān)注
意見反饋
關(guān)閉
企業(yè)未開通此功能
詳詢客服 : 0571-87858618
主站蜘蛛池模板: 广东省| 保康县| 岱山县| 济阳县| 宣城市| 郯城县| 明星| 宁陵县| 玛曲县| 南宁市| 灵武市| 西乌珠穆沁旗| 黎平县| 遵化市| 同江市| 保靖县| 孝感市| 南丰县| 罗定市| 余干县| 三明市| 宁阳县| 荔浦县| 柘荣县| 巫山县| 合江县| 阿拉尔市| 平遥县| 东乌珠穆沁旗| 凤凰县| 霞浦县| 行唐县| 蓬安县| 雷州市| 灌云县| 依安县| 大宁县| 临城县| 汽车| 梅州市| 义马市|