大家好,又见面了,我是你们的朋友全栈君。
在学习嵌入式的路上,我们可能会接触到这两个比较典型的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.cn/132489.html原文链接:https://javaforall.cn