好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

单片机和嵌入式系统linux的区别转自21IC电子网.doc

18页
  • 卖家[上传人]:wd****8
  • 文档编号:277401187
  • 上传时间:2022-04-14
  • 文档格式:DOC
  • 文档大小:60KB
  • / 18 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 单片机和嵌入式系统linu*的区别 随着嵌入式行业硬件平台的性能增强,工程需求和功能日益复杂,ARM公司推出的 CORTE*-M3,更是让以往做单片机的工程师在芯片和技术选型面临两难选择,本专题将从芯片价格、整个系统的硬件软件设计及维护的本钱等各个方面给您 提供一个参考, 并从技术角度分析单片机和带操作系统的系统的软件开发的异同点●    1.单片机与ARM等新处理器的价格比拟        ●    2.带操作系统与不带操作系统的软件开发的区别        ●    2.1.驱动开发的区别        ●    2.2.应用程序开发的区别1. 单片机与ARM等新处理器的价格比拟表1型号架构 资源 价格(元)AT89S518051 最高频率33MHz4KB Flash128B内部RAM32个可编程IO引脚 两个16bit的计数器 一个UART口 4SST89E564RD8051 最高频率40MHz 64KB Flash1KB内部RAM32个可编程IO引脚 三个16bit的计数器 一个UART口 一个SPI接口 35STM32F103 CORTE*-M3 最高频率72MHz64KB或128BK Flash20KB SRAM80个可编程IO引脚 2个12bit的ADC7通道DMA控制器 标准调试口(SWD和JTAG)7个定时器 USB接口 2个I2C接口 3个UART2个SPI接口 21HI3510ARM9+DSP双核 最高工作频率240MHz视频处理单元,支持多种协议的实时编解码 图形处理单元 视音频接口 以太网接口 DDR控制器 USB、UART、IrDA、 I2C、SPI、GPIO等多种外设接口 80S3C2440ARM9最高工作频率400MHzSDRAM控制器 LCD控制器 4通道DMA控制器 3个UART2个SPI1个I2C接口 IIS音频接口 SD HOST接口 2个USB接口 8个10bit ADC摄像头接口 Camera接口 40 从表 1里面各种芯片的资源,大概就可以猜知它们的应用场合。

      51单片机通常被用来做一些比拟简单的控制,比方采集信号、驱动一些开关AT89S51的 Flash只有4K,一个稍微复杂的程序就不止4K了SST89E564RD是一种扩展的51单片机,它的Flash到达64KB,可以外接最多 64KB的SRAM在SST89E564RD上的程序可以写得更复杂一些,但是它对外的接口也比拟少CORTE*-M3系列的处理器,对外接口极其丰富,这使得它的应用面更广,但是限于它的Flash、内存还是比拟小,一般不在上面运行操作系统,它算是一个性能非常突出的单片机HI3510 是海思半导体公司的一款用于监控设备的芯片,一般上面运行Linu*系统,通过摄像头采集数据、编码,然后通过网络传输另一端接收到数据之后,再解码 在上面运行的程序非常复杂,有漂亮的图片界面、触摸屏控制、数据库等等对声音图像的编解码更是用到DSP核S3C2440 是一款通用的芯片,它与“高级单片机〞STM32F103相比,多了存储控制器和NAND控制器──这使得可以外接更大的Flash、更大的内存;多了内 存管理单元(MMU)──这使得它可以进展地址映身(虚拟地址、物理地址之间的映射)可以在S3C2440上运行Linu*系统,运行更大更复杂的程 序。

      在具体工作中,怎么选择这些芯片呢.一句话:本钱!进展任何产品的开发都要考虑性价比,一切应该从“本钱〞出发本钱不仅包括芯片的价格,也包括整个系统的硬件、软件设计及维护的难易芯片价格可以在电子市场问到,也可以在.上找到有卖这种芯片的柜台,然后咨询基于不同的应用,处理器和其他外设的选择是要统一考虑的,如果要实现一个简单的U盘读写功能,则可以选择带USB控制器的CORTE*-M3芯片,也可以选择8051外接一个USB控制器比方SL811,就看哪种方案本钱更低进展芯片选型时,必须基于整个系统来考虑员工的偏好和知识构造也是一个很重要的因素,如果他对ATMEL的芯片比拟熟,他就不会倾向于三星;如果他不会Linu*等操作系统,则选型时就不会有操作系统的概念选择自己不熟悉的芯片和技术,最后的本钱也可能更高2. 带操作系统与不带操作系统的软件开发的区别用通 俗的话来说,一个处理芯片不运行操作系统,我们就把它称为单片机,而单片机编程就是写裸板程序,这个程序直接在板子上运行;相对的,另一种程序就是基于操 作系统的程序,说得简单点就是,这种程序可以通过统一的接口调用“别人写好的代码〞,在“别人的根底上〞更快更方便地实现自己的功能。

      2.1. 驱动开发的区别驱动开发的区别我总结有两点:能否借用、是否通用 能否借用基于 操作系统的软件资源非常丰富,你要写一个Linu*设备驱动时,首先在网上找找,如果有直接拿来用;其次是找到类似的,在它的根底上进展修改;如果实在没 有,就要研究设备手册,从零写起而不带操作系统的驱动开发,一开场就要深入了解设备手册,从零开场为它构造运行环境,实现各种函数以供给用程序使用 举个例子,要驱动一块LCD,在单片机上的做法是:① 首先要了解LCD的规格,弄清楚怎么设置各个存放器,比方设置LCD的时钟、分辨率、象素② 划出一块内存给LCD使用③ 编写一个函数,实现在指定坐标描点比方根据*、y坐标在这块内存里找到这个象素对应的小区域,填入数据基于操作系统时,我们首先是找到类似的驱动,弄清楚驱动构造,找到要修改的地方进展修改下面是单片机操作LCD的代码:① 初始化:void Tft_Lcd_Init(int type)        {               /*                 * 设置LCD控制器的控制存放器LCDCON1~5                * 1. LCDCON1:                * 设置VCLK的频率:VCLK(Hz) = HCLK/[(CLKVAL+1)*2]                * 选择LCD类型: TFT LCD                 * 设置显示模式: 16BPP                * 先制止LCD信号输出                * 2. LCDCON2/3/4:                * 设置控制信号的时间参数                * 设置分辨率,即行数及列数                * 现在,可以根据公式计算出显示器的频率:                * 当HCLK=100MHz时,                * Rate = 1/[{(VSPW+1)+(VBPD+1)+(LIINEVAL+1)+(VFPD+1)}*                *        {(HSPW+1)+(HBPD+1)+(HFPD+1)+(HOZVAL+1)}*                *        {2*(CLKVAL+1)/(HCLK)}]                *        = 60Hz                * 3. LCDCON5:                *        设置显示模式为16BPP时的数据格式: 5:6:5                *        设置HSYNC、VSYNC脉冲的极性(这需要参考具体LCD的接口信号): 反转                *        半字(2字节)交换使能                */                LCDCON1 = (CLKVAL_TFT_320240<<8) | (LCDTYPE_TFT<<5) | \                                        (BPPMODE_16BPP<<1) | (ENVID_DISABLE<<0);                LCDCON2 = (VBPD_320240<<24) | (LINEVAL_TFT_320240<<14) | \                                        (VFPD_320240<<6) | (VSPW_320240);                LCDCON3 = (HBPD_320240<<19) | (HOZVAL_TFT_320240<<8) | (HFPD_320240);                LCDCON4 = HSPW_320240;        //        LCDCON5 = (FORMAT8BPP_565<<11) | (HSYNC_INV<<9) | (VSYNC_INV<<8) | \        //                                (HWSWP<<1);                        LCDCON5 = (FORMAT8BPP_565<<11) | (HSYNC_INV<<9) | (VSYNC_INV<<8) | (VDEN_INV << 6) | \                                                (HWSWP<<0);        /*                * 设置LCD控制器的地址存放器LCDSADDR1~3                * 帧内存与视口(view point)完全吻合,                * 图像数据格式如下:                *        |----PAGEWIDTH----|                *        y/*    0    1    2    239                *        0    rgb rgb rgb ... rgb                *        1    rgb rgb rgb ... rgb                * 1. LCDSADDR1:                *    设置LCDBANK、LCDBASEU                * 2. LCDSADDR2:                *    设置LCDBASEL: 帧缓冲区的完毕地址A[21:1]                * 3. LCDSADDR3:                *    OFFSIZE等于0,PAGEWIDTH等于(240*2/2)                */                LCDSADDR1 = ((LCDBUFFER>>22)<<21) | LOWER21BITS(LCDBUFFER>>1);                LCDSADDR2 = LOWER21BITS((LCDBUFFER+ \                                            (LINEVAL_TFT_320240+1)*(HOZVAL_TFT_320240+1)*2)>>1);                LCDSADDR3。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.