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呢,当然是能完成设计有最便宜最简单的那个。

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 解决MyQL数据库中1045错误的方法——Windows系统「建议收藏」

    解决MyQL数据库中1045错误的方法——Windows系统「建议收藏」在各种各样的适用场所,MySQL会出现各种各样的问题,经过足足半年的长跑,我的数据库终于修复了Bug,可以重新使用了。数据库出问题,那可能是家常便饭了。经过这足足半年的煎熬,我决定在以后的日子里,记录下我在使用数据库时遇到的色彩缤纷的问题,以及这些问题的解决方法。由此,今天写了这篇博客。首先,给大家看看,这个问题是什么样子的。我在这里用到的MySQL可视化工具为Navicat。这个错误…

  • webservice发送短信本地部署可以但是服务器部署发送短信息中文乱码

    webservice发送短信本地部署可以但是服务器部署发送短信息中文乱码

  • Plc编程入门基础知识,在短时间内如何学会编程[通俗易懂]

    Plc编程入门基础知识,在短时间内如何学会编程[通俗易懂]Plc编程入门基础知识,在短时间内如何学会编程PLC:可编程逻辑控制器。实质是一种专用于工业控制的计算机,其硬件结构基本上与微型计算机相同,基本组成如下图所示:工业生产和科技的发展都离不开plc的自动化控制,作为一名电工,想要不被时代所抛弃,就要不断充实自己、投资自己、学习PLC。那么电工学习PLC该如何入门呢?我是一个自动化行业职业计划者。给初学者略略总结一下,希望对你有所帮助。1选择学习的类型市场的主流plc有三菱,西门子,欧姆龙等等,我推荐先学习三菱,西门子基本上了解这两种,不愁没饭吃2从基

  • 重写finalize方法_Java的finalize方法干什么

    重写finalize方法_Java的finalize方法干什么Finalize方法在未能调用Dispose方法的情况下充当防护措施来清理资源。您应该只实现Finalize方法来清理非托管资源。Object.Finalize方法的范围是受保护的。当在类中重写该方法时,您应该保持这个有限的范围。您无法从C#或C++编程语言的托管扩展中调用或重写Object.Finalize方法。C#和托管扩展提供析构函数作为编写终止代码的机制。在

  • webstorm 使用git_idea使用maven创建web项目

    webstorm 使用git_idea使用maven创建web项目JS开发神器WebStorm的使用,包括Git的配置、文件提交至Git、文件名详解等。

  • text-decoration

    text-decoration

发表回复

您的电子邮箱地址不会被公开。

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