单片机信息网:深圳市今科电子有限公司
网站地图 RSS订阅
高级搜索 收藏本站
会员中心 欢迎投稿
首页 | 业界动态 | 解决方案 | 技术文献 | 下载中心 | 单片机学习 | 单片机原理 | 单片机编程 | 单片机设计 | 单片机开发 | 技术专题 | 单片机论坛 |单片机博客| 联系我们
单片机新闻 | 单片机学习 | 单片机编程 | 单片机设计 | 单片机开发 | 单片机原理 | 单片机解密 | 芯片解密 | IC解密 | 单片机方案 | 51单片机 | AVR单片机 | PIC单片机
单片机程序实例大全 | 潜入式系统 | PCB设计 | 单片机资料下载 | 工具/软件下载 | 技术经验分享 | 单片机技术人生 | IC资料下载 | 数字电路 | 模拟电路 | 单片机空间
当前位置:主页>嵌入式系统>文章内容
X86嵌入式处理器开发
来源:单片机信息网 作者: 发布时间:2007-12-28 阅读次数: 【大 中 小】【收藏本文】 【打印

X86嵌入式处理器开发


X86 CPU  原来是用于个人计算机的,大家都知道的如 8086/88,80186/188,80286,80386,80486,Petium,Celeon, Pentium II……,随着个人计算机的发展,许多原来的CPU纷纷被淘汰,但这些处理器并未退出历史舞台,继续在各个领域发挥着作用,在工业控制领域,80x186/188EA,80x186/188EB,80x186/188EC,80386EX等得到广泛的应用。

        主要型号有:Intel 80186/188, 80186/188EA, 80186/188EB, 80186/188EC, 80386EX ……, Intel的站点http://www.intel.com。

        AMD 80186/188, 80186/188ED,80186/188EM,80186/188ES,ELAN300,ELAN400,最近还推出了用于网络的 80186/188CH,型号我记不清了,有兴趣的可以到http://www.amd.com去找。

       比较而言我自己觉得AMD的产品要好一些,设计简单,提供的外部资源(指定时器、中断控制器、I/O口、地址译码、DMA控制器、DRAM控制器……)要多一些,另外ELAN300,ELAN400简直就是一台个人计算机,它集成了PC机除了DRAM和磁盘控制器之外几乎所有的电路(把LCD显示器接口也集成到里面了,包括RTM,TMR,INT Controller,DMA,DRAM Controller,SIO,KEYBOARD……)。若用DISKONCHIP作为硬盘的话加上DRAM,LCD显示器,键盘,网卡就是一台PC机了。

         为了适应工业领域的应用,简化用户的开发难度,Intel和AMD两大公司推出了自己各有特色的产品,特别值得一提的是AMD公司的产品,应用起来特别是硬件设计非常简单,但AMD公司没有推出象 Intel  AppBuilder一样的工具,编程还是要困难一点。另外X86系列的一个缺点就是仿真器非常昂贵,我们可以在PC机上作软件调试,编译器用 MSC,TC,BC 均可。但生成的是 .EXE 文件需要操作系统加载运行,无法写入ROM里,我们需要一个定位工具,把 .EXE 文件的重定位段定位.另外由于没有了操作系统的支持,所以需要重写 C 语言的启动文件,在TC下有一个  C0X.OBJ的文件(X=T,S,M,L,H为Tiny, Small, Medium, Large,Huge模式,对应的有一个C0.ASM的汇编源程序),完成 C 语言的初始化,设置堆栈,与操作系统接口……,我们重写 C 语言的启动文件就是重写C0.ASM. 当然若能买一个嵌入实时操作系统就不要这样麻烦了,可悲的是嵌入实时操作系统太贵,也有免费的,或者学习起来太难,因为没有资料,用户又太少。

        本人在用80C188EB开发过一个通讯控制器,配有8个串口,其中有两个为同步/异步,6个异步。配有512K ROM,512K RAM,RTM,8K串行EEPROM。用TC作开发工具,除了应用程序外,主要的难点在于:C语言的启动代码;定位工具;串行EEPROM的接口库。这里仅介绍C语言的启动代码。

        本来,各种C语言编译器都提供启动代码,以X86为例,无论是TC、MSC、BC都有。TC在不同模式下启动代码不一样,为C0X.OBJ.一般编程,用不着去修改启动代码。但有的场合就有必要了。笔者为一套系统开发软件时发现:一套系统当没有操作系统时,要想使得系统正常运行是相当困难的。笔者开发的系统CPU为80C188EB,无操作系统,开发工具为TC2.0。为了能使得系统运行,又不能用太低级的语言如汇编,可谓历尽辛苦(当然可以买现成的开发工具和仿真工具,太贵)。
   

        笔者重写了TC的启动代码,另外还改写了一个重定位工具(把EXE文件变为可直接写入ROM去的文件)。因为很少见到类似文章。下面把主要内容写出来,以飨读者。以后我准备把这个工具完善以下,做成一个重新定位的工具。 

    C语言的启动代码如下:
; tcstart.asm
; for d000 code only, external eprom on memory card
; FOR PC ROM 
extrn  _main:far; 

/*  说明外部的C语言的MAIN() 函数,这也是 C 语言为什么非要从MAIN()开始的原因 */
_text segment byte public "CODE" ; /* C语言生成的代码段 */
_text ends
_textend segment para public "CODEEND";  /* 代码段的结束段 */
_textend ends
_data segment para public "DATA"; /* C语言生成的初始化数据段 */
_data ends
_dataend segment para public "DATAEND"; /* 初始化数据段的结束段 */
_dataend ends
_bss segment para public "BSS"  ;/* C语言生成的非初始化数据段 */
_bss ends
_bssend  segment byte public "BSSEND";/* C语言生成的非初始化数据结束段 */
_bssend  ends
_stack segment para stack  "STACK" ; /* 堆栈段 */
_stack ends
DGROUP group _DATA, _DATAEND, _BSS, _BSSEND /* 把数据的段构成一个组,代码连在一起 */
CGROUP group _TEXT, _TEXTEND /* 把代码的段构成一个组,代码连在一起 */
_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  ;初始化数据段
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
                             ;下面内容非PC 机可以不要
mov al, 80h      ; enable NMI
out 0a0h, al
mov al, 0bch     ; enable 8259 PIC  1011-1100 (irq0,1,6 enabled)
out 21h, al
                             ;上面内容非PC 机可以不要
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");/* 预留的堆栈空间 */
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 工具,本人无源代码。

上一篇:AD5933在电磁层析成像硬件系统中的应用   下一篇:嵌入式系统设计中的存储碎片收集策略

标签:X86 嵌入式 处理器 开发 点此搜索本站更多相关信息...搜索更多相关内容..

您可能还感兴趣的内容: 深圳今科电子单片机解密、IC解密服务 今科电子单解机、IC解密业务是怎样的流程?

此页的访问者还关注了下面这些相关资讯


·嵌入式系统设计中的存储碎片收集策略
·支持网络传感器的嵌入式操作系统设计
·用串行RapidIO交换处理高速电路板设计的信号完整性
·嵌入式实时Linux的技术研究
·基于WinCE的ARM视频监控系统
·详细定义嵌入式操作系统概念
·MOXA嵌入式计算机在变电站综合自动化中的解决方案
·两种嵌入式操作系统的比较
·利用图形化平台开发多核嵌入式系统
·详细定义嵌入式操作系统概念
·基于ARM高速闪存MCU应对广泛嵌入式需求
·浅析嵌入式程序设计中的优化问题
·基于WinCE的ARM视频监控系统
·基于AVR单片机的嵌入式“瘦服务器”系统设计思想
·嵌入式Linux系统的GDB远程调试的实现
·嵌入式Linux的GDB调试环境建立
·嵌入式LINUX系统的静/动态集成调试模式
·Linux 2.6内核嵌入式系统应用
·32位ARM嵌入式处理器的调试技术
·嵌入式操作系统的调试
·SldView嵌入式Linux集成开发环境
·模拟器开发以及嵌入式系统内核调试
·基于mClinux的嵌入式USB接口设计
·构建RTW下的嵌入式系统开发环境
·嵌入式DSP上的视频编解码与相应名词解释
·嵌入式微型主板也疯狂
·All-In-One 嵌入式系统平台概述
·使用虚拟机嵌入式Linux开发前的必要准备
·基于ARM的嵌入式网络收音机的设计
·在SoC器件中如何平衡嵌入式软件的关键作用?
·如何调试复杂的实时嵌入式系统?
·嵌入式软件测试
·嵌入式系统软件的质量保证
·嵌入式系统开发工具发展
·嵌入式数据库系统Berkeley DB的设计思想
·嵌入式数据库Berkeley DB的数据访问算法
·一套开放源码的嵌入式数据库Berkeley DB
·嵌入式数据库Berkeley DB 环境使用范例
·基于LPC2131嵌入式系统的CAN模块设计与实现
·高速嵌入式视频系统中SDRAM时序控制分析


版权声明:
( 更多版权详述 | 隐私政策 )

1、凡本网注明“来源:单片机信息网”或“单片机论坛”的文字、图片和音视频作品,版权均属深圳市今科电子有限公司所有,任何媒体、网站或个人未经本网书面授权不得转载、链接、转贴或以其他方式使用;已经本网书面授权的,在使用时必须注明“来源:单片机信息网”或“单片机论坛””。
2、本网未注明“来源:单片机信息网”或“单片机论坛”的作品均为转载稿,本网转载稿件只为传递更多信息,并不意味着认同其观点或真实性。如其他媒体、网站或个人转载使用,必须保留本网注明的“稿件来源”,并自负法律责任。
3、对于单片机信息网通过单片机论坛发布的作品,本网受著作权人委托禁止任何媒体、网站或个人在未经书面授权的情况下转载使用。
4、为维护自身权益、尊重作者版权,单片机信息网特委托深圳市律师协会为本网站法律顾问。对于违反本声明的,单片机信息网律师将依法追究其责任;对于刊载作品涉及版权等问题的,请作者在两周内与网站管理或张朝阳律师联系。
责任编辑:今科电子
双击复制本文网址,发送给您QQ/MSN上的朋友:
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。

·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为
§最新评论
今科热门解密系列
·PIC芯片DSP系列单片机解密PIC芯
·Freescale单片机解密飞思卡尔芯
·飞思卡尔(Freescale)单片机解密/
·pic18f系列单片机解密
·三星(Samsung)系列单片机极速解
·飞林Feeling芯片系列MCU单片机/I
·MICROCHIP微芯(PIC)系列单片机/M
·单片机破解的常用方法及应对策略
·IC卡预付费电度表的安全及防范技
·单片机解密 单片机解密方法 单片
·PHILIPS系列单片机解密
·独家STC单片机解密
·我对红外遥控信号的解码思路
·51系列单片机解密(数分钟搞定)
·芯片解密业务流程介绍
·单片机解密后提供什么文件?
·单片机解密后为何要提供厂家的专
·芯片是如何被解密的?
·SST系列MCU单片机/IC/芯片解密
·INTEL系列单片机/IC/芯片解密
·ISSI系列MCU单片机IC破解芯片解
·ZILOG系列MCU单片机IC破解芯片解
·MOTOROLA系列MCU单片机IC破解芯
·LG(HYUNDAI系列MCU单片机/IC破
·MCPLD/EPLD系列MCU单片机IC破解
·新茂系列MCU单片机IC破解芯片解
·PHILIPS系列MCU单片机IC破解芯片
·MXIC系列MCU单片机IC破解芯片解
·(ATMEL)51系列MCU单片机IC破解芯
·华邦芯片系列MCU单片机/IC/芯片
·(MICROCHIP)微芯(PIC)系列MCU单
·CYPRESS系列MCU单片机IC破解芯芯
·Sinowealih系列MCU单片机IC破解
·Tenx系列MCU单片机IC破解芯片解
·松翰(SONIX)系列MCU单片机IC破解
·义隆(EMC)系列MCU单片机IC破解
·合泰(HOLTEK)系列MCU单片机IC破
·麦肯(MDT)系列mcu单片机IC破解芯
·今科单片机解密服务
·单片机程序开发
热点技术文章文献
·嵌入式系统的技术特点及前景展望
·加密存储芯片AT88SC1616的原理和
·编写适合自己需要的printf()函数
·基于ARM的嵌入式网络收音机的设
·嵌入式Linux系统中I2C总线设备的
·嵌入式Linux的GDB调试环境建立
·用USB启动Windows XP Embedded
·基于ARM7的指纹考勤机设计
·HC(S)08单片机的高效C语言编程
·基于Linux和S3C2410的嵌入式图象
·基于FPGA的32 Kbit/s CVSD语音编
·嵌入式实时Linux的技术研究
·基于WinCE的ARM视频监控系统
·如何制作嵌入式Linux文件系统
·模拟器开发以及嵌入式系统内核调
·基于DM642的嵌入式网络视频服务
·嵌入式系统的发展趋势:网络互联
·嵌入式数据库Berkeley DB 环境使
·嵌入式系统中USB主机控制器的设
·基于mClinux的嵌入式USB接口设计
·54M无线网络适配器在嵌入式系统
·Keil C动态内存管理机制分析及改
·使用虚拟机嵌入式Linux开发前的
·基于AVR单片机的嵌入式“瘦服务
·用MSP430实现的嵌入式因特网终端
·Java能否主演嵌入式应用开发?
·基于TinyXml的嵌入式Linux
·嵌入式芯片同质化的对策
·32位ARM嵌入式处理器的调试技术
·利用图形化平台开发多核嵌入式系
今科推荐产品
·51系列单片机解密(数分钟搞定)
·今科单片机解密服务
·单片机程序开发
·小家电(厨卫电器)系列产品
·灯饰控制系列产品
·四键遥控器系列产品
·红外遥控器系列产品
相关技术文献资讯
·嵌入式系统设计中的存储碎片收集
·支持网络传感器的嵌入式操作系统
·用串行RapidIO交换处理高速电路
·嵌入式实时Linux的技术研究
·基于WinCE的ARM视频监控系统
·详细定义嵌入式操作系统概念
·MOXA嵌入式计算机在变电站综合自
·两种嵌入式操作系统的比较
·利用图形化平台开发多核嵌入式系
·详细定义嵌入式操作系统概念
·基于ARM高速闪存MCU应对广泛嵌入
·浅析嵌入式程序设计中的优化问题
·基于WinCE的ARM视频监控系统
·基于AVR单片机的嵌入式“瘦服务
·嵌入式Linux系统的GDB远程调试的
·嵌入式Linux的GDB调试环境建立
·嵌入式LINUX系统的静/动态集成调
·Linux 2.6内核嵌入式系统应用
·32位ARM嵌入式处理器的调试技术
·嵌入式操作系统的调试
·SldView嵌入式Linux集成开发环境
·模拟器开发以及嵌入式系统内核调
·基于mClinux的嵌入式USB接口设计
·构建RTW下的嵌入式系统开发环境
·嵌入式DSP上的视频编解码与相应
论坛最新讨论资讯
芯片解密常见问题
· 什么是单片机?
· 单片机要如何加密?
· 单片机芯片是如何被解密的?
· 单片机解密后提供什么文件?
· 芯片解密为何用专用格式文档?
· 芯片解密是怎样的业务流程?
首页 - 隐私政策 - 版权申明 - 网站地图 - 产品中心 - IC解密中心 - 企业文化 - 代理加盟 - 公司简介 - 人才招聘 - 常见问题 - 我要投稿 - 联系我们 - 返回顶部
[单片机信息网] .© 2006-2009 版权所有,严禁非法复制与建立镜像.运营商:[今科电子] 公司地址:中国.深圳/上海 E-Mail:renbangent#126.com sales#techmcu.com(换#为@)
深圳公司 电话热线:+86 0755-82964200 82964201 82964700 传真:0755-82964432 支持手机:13684994966 业务QQ: 501995683 联系人:王小姐 张小姐(工程师) 罗先生(高工)
上海公司 电话热线:+86 021-63062380 15001885509   传真:+86 021-63062380-6   技术支持:15001885509 业务QQ:xxxxxxxx   联系人:郑小姐(业务) 陆工(工程师)
Optimized for 1024x768 to Firefox,Opera and MS-IE6 or higher,Template designed by: Berlin Lee.Web Support[FuAn Network] ICP Record No.:07053756 Webmaster