STM32与S3C2440的区别

STM32与S3C2440的区别在学习嵌入式的路上,我们可能会接触到这两个比较典型的MCU。其中最大的区别就是S3C2440能跑linux操作系统,常常作为学习嵌入式linux的硬件平台。可能大家会问既然S3C2440能跑linux操作系统,似乎比stm32厉害多了,为什么不直接去学习S3C2440呢?下面我就大概解释一下大家遇到的困惑:1.先来说说stm32stm32是ST公司推出的基于Cortex-M3内核的

大家好,又见面了,我是你们的朋友全栈君。

在学习嵌入式的路上,我们可能会接触到这两个比较典型的MCU。其中最大的区别就是S3C2440能跑linux操作系统,常常作为学习嵌入式linux的硬件平台。可能大家会问既然S3C2440能跑linux操作系统,似乎比stm32厉害多了,为什么不直接去学习S3C2440呢?
下面我就大概解释一下大家遇到的困惑:

一、stm32(暂时不能跑linux)

stm32是ST公司推出的基于Cortex-M3内核的MCU,stm32最高工作主频为72M,STM32凭借其产品的多样化、极高的性价比、简单易用的开发方式,迅速在Cortex-M3内核MCU中脱颖而出,占领了绝大部分中高端MCU市场。对于处理一些简单的事件这种处理器完全够用,编程简单,硬件电路设计也很简单,价格也十分经济。

二、S3C2440(能跑linux系统)

S3C2440A 是三星公司推出的16/32位精简指令集(RISC)微型处理器,它基于ARM v9系列的ARM920T核心,主要为手持设备和普通应用提供了低功耗的高性能的小型芯片微型控制器的解决方案。

S3C2440A 的突出特点是其处理器核心,是一个由Advanced RISC Machines(ARM)公司设计的16/32 位ARM920T 的RISC 处理器。ARM920T 实现了MMU,AMBA 总线和哈佛结构高速缓冲体系结构。这一结构具有独立的16KB 指令高速缓存和16KB 数据高速缓存。每个都是由具有8 字长的行(line)组成。

综合对芯片的功能描述,S3C2440A 集成了的以下片上功能:

● 1.2V 内核供电, 1.8V/2.5V/3.3V 储存器供电, 3.3V 外部I/O 供电,具备16KB 的指令缓存和16KB 的数据缓存和MMU的微处理器

● 外部存储控制器(SDRAM 控制和片选逻辑)

● LCD 控制器(最大支持4K 色STN 和256K 色TFT)提供1 通道LCD 专用DMA

● 4 通道DMA 并有外部请求引脚

● 3 通道UART(IrDA1.0, 64 字节发送FIFO 和64 字节接收FIFO)

● 2 通道SPI

● 1 通道IIC 总线接口(支持多主机)

● 1 通道IIS 总线音频编码器接口

● AC’97 编解码器接口

● 兼容SD 主接口协议1.0 版和MMC 卡协议2.11 兼容版

● 2 通道USB 主机/1 通道USB 设备(1.1 版)

● 4 通道PWM 定时器和1 通道内部定时器/看门狗定时器

● 8 通道10 位ADC 和触摸屏接口

● 具有日历功能的RTC

● 摄像头接口(最大支持4096×4096 像素输入;2048×2048 像素输入支持缩放)

● 130 个通用I/O 口和24 通道外部中断源

● 具有普通,慢速,空闲和掉电模式

● 具有PLL 片上时钟发生器

三、二者的区别

1、

mcu架构不相同,stm32没有mmu只能跑uclinux之类的操作系统,而S3C2440可以跑linux系统。

嵌入式大体可以分三大部分:硬件电路、驱动程序、应用开发。电路不用说了基本就是元件pcb焊接,驱动程序处于中间部分是最难的,和硬件直接相关,内核级调试也是难点。一般的你买个开发板着两个部分都已经包括了,别人都给你做好了,其实这里面的门道很大。

有了驱动程序应用程序面对的就是操作系统级编程了,这部分和你在pc上用gcc差别不大.不然要操作系统做什么呢.
对了还有一个内核移植,其实就是把所有的内核代码按你的定制重新编译成能在你的U上运行的内核…

2、

问:
还有一个问题,希望你给我解答解答。是不是说S3C2440要比STM32功能要强?如果是这样是不是STM32能做的S3C2440也都能实现。如果我现在学好了单片机,是不是直接可以买个S3C2440开发板学习嵌入式呢?
答:
另外还有一个误区就是cpu快了就什么功能都能实现了,其实这是不对的.带mmu的可以虚拟内存,更适合多道程序运行多任务处理,但很遗憾不是用在哪里都合适的。

举个例子:嵌入式往往针对某一特殊需求而设计,比如你要设计制作一台高速存储示波器,那么前端的模拟放大和ad转换是很关键的部分,假设你希望有1G的输入带宽,没有哪个cpu会有如此高的AD采样速度(片上能到10M已经不容易了),只有使用单独的高速AD专用芯片再加上模电的一些小技巧才能实现。这个系统里cpu做什么呢,基本上就是维护界面和存储,界面不会太复杂,能在液晶上画图显示几个数就行了,基本不需要window窗口什么什么的,多任务也不需要。存储的部分你可能会想我的系统内存多能派上用场,错了,假设你希望存储10分钟的原始数据你可以算算这个数据量非常庞大,内存根本用不上,最好的办法就是通过dma直写高速sd卡。最后还剩下什么事情可做呢就是驱动几个按键和lcd,顶多再加个通讯什么的,这时候你会选哪个cpu呢,当然是能完成设计有最便宜最简单的那个。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132489.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mt4下载和安装好后如何使用呢「建议收藏」

    mt4下载和安装好后如何使用呢「建议收藏」首先要了解一些基本的功能,先来认识一下工具栏。mt4的工具栏有市场报价、导航、新订单、数据窗口以及终端,这些都是很重要的工具。在MT4的窗口上,有交易产品的展示,哪些是可以销售和购买的,以及当前对应产品的价格。另外一个还要经常用到的就是图标数据分析的功能,例如选择图标的形态,时间的管理周期,缩放功能等等。常用的分析工具是K线图的时间周期,可以根据自己需要的时间周期,在工具栏的图标上进行选择,从而对交易产品进行研究观测和分析。另外如果想更加精确,还需要十字光标、划线工具、文字及文字标签进行辅助。.

    2022年8月15日
    6
  • kafka队列模式_redis消息队列和mq

    kafka队列模式_redis消息队列和mq一、消息队列概述消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ二、消息队列应用场景以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量削锋和消息通讯四个场景。2.1异步处理场景说明:用户注册后,需要发注册邮件和注册短信。传统的做法有两种1.串行的方式;2.并行方式a、串行方式:将注册

    2022年10月9日
    3
  • Oracle中nvl()与nvl2()函数详解

    Oracle中nvl()与nvl2()函数详解Oracle 中 nvl 与 nvl2 函数详解 函数 nvl expression1 expression2 根据参数 1 是否为 null 返回参数 1 或参数 2 的值 函数 nvl2 expression1 expression2 expression3 根据参数 1 是否为 null 返回参数 2 或参数 3 的值

    2026年1月24日
    1
  • c++入门教程–-8循环控制语句

    c++入门教程–-8循环控制语句

    2021年3月12日
    145
  • secure crt中文乱码_securecrt中文乱码怎么办

    secure crt中文乱码_securecrt中文乱码怎么办20190226-SecureCRT连接linux显示中文乱码

    2022年4月21日
    64
  • c++实现个人通讯录

    c++实现个人通讯录

    2021年10月2日
    157

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号