文档介绍:--拨开迷雾--
单片机和嵌入式LINUX开发的那点事儿
主讲:韦东山
专题要点
1. 单片机与ARM等新处理器的价格比较
2. 带操作系统与不带操作系统的软件开发的区
别
. 驱动开发的区别
. 应用程序开发的区别
3. 示例演示
单片机与ARM等新处理器的价
格比较
型号架构资源价格(元)
AT89S51 8051 最高频率33MHz/4KB Flash/128B内部 4
RAM/32个可编程IO引脚/两个
16bit的计数器/一个UART口
SST89E564RD 8051 最高频率40MHz/64KB Flash/1KB内部 35
RAM/32个可编程IO引脚/三个
16bit的计数器/一个UART口
STM32F103 CORTEX-M3 最高频率72MHz/64KB或128BK 21
Flash/20KB SRAM/80个可编程IO
引脚/2个12bit的ADC/7通道DMA
控制器/标准调试口(SWD和
JTAG)/7个定时器/USB接口/2个
I2C接口/3个UART/2个SPI接口
HI3510 ARM9+DSP双最高工作频率240MHz/视频处理单元, 80
核支持多种协议的实时编解码/图形处
理单元/视音频接口/以太网接口
DDR控制器/USB、UART、IrDA、I2C
、SPI、GPIO等多种外设接口
S3C2440 ARM9 最高工作频率400MHz/SDRAM控制器 40
/LCD控制器/4通道/MA控制器/3个
UART/2个SPI/1个I2C接口/IIS音
频接口/SD HOST接口/2个USB接
口/8个10bit ADC/摄像头接口
/Camera接口
如何选择芯片?
基于不同的应用,处理器和其他外设的选择是要
统一考虑
第一规则:成本!
第二规则:员工的偏好和知识结构
第三规则:原厂的支持力度
单片机与嵌入式系统
典型的嵌入式系统组成
应用
文件系统/GUI/API
OS Linux、VxWorks、Wince…
驱动层 BSP/driver/HAL 软件
电源管理硬件
处处理器理器
Flash GPIO CAN
SDRAM USB MMU DMA 输入
SRAM
SRAM LCD 以太网输出
看门狗 LCD/触摸屏/鼠标
复位电路
单片机和嵌入式软件开发的区别
区别:
是否带操作系统
单片机软件开发:
通俗来说,一个处理芯片不运行操作系统,我们就把
它称为单片机,单片机编程就是写裸板程序,这个
程序直接在板子上运行
嵌入式开发(带OS的系统开发)
另一种程序就是基于操作系统的程序,说得简单点就
是,这种程序可以通过统一的接口调用“别人写好的代
码”,在“别人的基础上”更快更方便地实现自己的功能。
单片机和嵌入式LINUX驱动开
发步骤
单片机的驱动开发
一开始就要深入了解设备手册,从零开始为它构造运
行环境,实现各种函数以供应用程序使用。
嵌入式LINUX驱动开发步骤
基于操作系统的软件资源非常丰富,你要写一个Linux
设备驱动时,首先在网上找找,如果有直接拿来用;
其次是找到类似的,在它的基础上进行修改;如果实
在没有,就要研究设备手册,从零写起。
驱动开发的区别
总结有两点:能否借用、是否通用。
单片机LED驱动程序
void led_init(void)
{
GPBCON = GPB5_out; // 将LED对应的GPB5引脚设为输
出
}
void led_on(void)
{
GPBDAT &= ~(1<<5);
}
void led_off(void)
{
GPBDAT |= (1<<5);
}