拨开迷雾 单片机和嵌入式LINUX开发的那点事儿
作者:韦东山,华清远见嵌入式学院讲师。
随着嵌入式行业硬件平台的性能增强,项目需求和功能日益复杂,ARM公司推出的 CORTEX-M3,更是让以往做单片机的工程师在芯片和技术选型面临两难选择,本专题将从芯片价格、整个系统的硬件软件设计及维护的成本等各个方面给您提供一个参考, 并从技术角度分析单片机和带操作系统的系统的软件开发的异同点。
● 1.单片机与ARM等新处理器的价格比较
● 2.带操作系统与不带操作系统的软件开发的区别
● 2.1.驱动开发的区别
● 2.2.应用程序开发的区别
1. 单片机与ARM等新处理器的价格比较
表1
型号
架构
资源
价格(元)
AT89S51
8051
最高频率33MHz
4KB Flash
128B内部RAM
32个可编程IO引脚
两个16bit的计数器
一个UART口
4
SST89E564RD
8051
最高频率40MHz
64KB Flash
1KB内部RAM
32个可编程IO引脚
三个16bit的计数器
一个UART口
一个SPI接口
35
STM32F103
CORTEX-M3
最高频率72MHz
64KB或128BK Flash
20KB SRAM
80个可编程IO引脚
2个12bit的ADC
7通道DMA控制器
标准调试口(SWD和JTAG)
7个定时器
USB接口
2个I2C接口
3个UART
2个SPI接口
21
HI3510
ARM9+DSP双核
最高工作频率240MHz
视频处理单元,支持多种协议的实时编解码
图形处理单元
视音频接口
以太网接口
DDR控制器
USB、UART、IrDA、
I2C、SPI、GPIO等多种外设接口
80
S3C2440
ARM9
最高工作频率400MHz
SDRAM控制器
LCD控制器
4通道DMA控制器
3个UART
2个SPI
1个I2C接口
IIS音频接口
SD HOST接口
2个USB接口
8个10bit ADC
摄像头接口
Camera接口
40
从表1里面各种芯片的资源,大概就可以猜知它们的应用场合。51单片机通常被用来做一些比较简单的控制,比如采集信号、驱动一些开关。AT89S51的Flash只有4K,一个稍微复杂的程序就不止4K了。SST89E564RD是一种扩展的51单片机,它的Flash达到64KB,可以外接最多64KB的SRAM。在SST89E564RD上的程序可以写得更复杂一些,但是它对外的接口也比较少。
CORTEX-M3系列的处理器,对外接口极其丰富,这使得它的应用面更广,但是限于它的F
相关文档:
Fedora8----------VMWare6.03 build-80004
1. host(win)-guest(fedora)共享文件夹
在VMWare中设置共享文件夹
选择vmware workstation程序菜单中VM > install VMware tools...
#mkdir /mnt/cdrom
#mount -t iso9660 /dev/cdrom /mnt/cdrom(vmtools的安装文件放在vmware虚拟的cdrom中,首先要moun ......
一、提前的话
要说C语言和Linux的关系大家应该都不会陌生,Linux系统内核就是用C语言开发的,所以所有的Linux系统下面 都会有C的编译调试工具,不过这些工具都是命令式的,正式开发的话会很不方便。Fedora在安装的时候可以选择安装Fedora Eclipse,这个IDE很强大,C,C++,Java,Python等等都支持,而且编译,调试和 ......
随着Linux的应用日益广泛,特别是在网络应用方面,有大量的网络服务器使用Linux操作系统。由于Linux的桌面应用和Windows相比还有一定的差距,所以在企业应用中往往是Linux和Windows操作系统共存形成异构网络。在服务器端大多使用Linux和Unix的,目前Linux的擅长应用领域是单一应用的基础服务器应用,譬如DNS和DHCP服务器、W ......
1 安装 中文输入法
2 PDF 文件乱码
sudo apt-get install xpdf-chinese-simplified xpdf-chinese-traditional poppler-data
3 安装Flash firefox
sudo apt-get install flashplugin-nonfree
sudo update-flashplugin
opera与scim冲突的问题
sudo apt-get install scim-qtimm
sudo gedit /usr/bin/opera
添加 ......
中断处理
同处理I/O端口一样,要使用一个中断,必须先向系统登记。
int request_irq(unsigned int irq ,void(*handle)(int,void *,struct pt_regs *),
unsigned int long flags, const char *device,void *dev_id);
irq ......