当前位置:文档之家› ARM的串行口驱动程序设计

ARM的串行口驱动程序设计


2
嵌入式系统学习方向
嵌入式硬件平台-硬件电路PCB设计 嵌入式协处理器-FPGA/DSP 嵌入式CPU开发-ARM/MIPS/PowerPC/X86 嵌入式OS-uC/OS/Linux/WinCE/VxWorks/Symbian 嵌入式应用开发-bootloader/文件系统/数据库系统/图形系统 软 件 开 发 嵌入式系统开发-系统功能调用/进线程高级编程 /客户端/服务器端编程 /socket网络高级编程/web服务器编程 嵌入式驱动开发 嵌入式手机开发-智能手机图形界面/通讯模块/GPS开发
18
基于ARM7TDMI结构的应用程序源码
#include"..\ucos-ii\includes.h" /* uC/OS interface */ ///******************任务定义***************/// OS_STK Main_Stack[STACKSIZE*8]={0, }; void Main_Task(void *Id); #define Main_Task_Prio 12 /**************已经定义的OS任务************* #define SYS_Task_prio 1 //系统任务 #define Touch_Screen_Task_Prio 9 //触摸屏任务 #define Key_Scan_Task_Prio 58 //键盘扫描任务 #define Lcd_Fresh_prio 59 //液晶屏刷新任务 *******************************************/ OS_EVENT *Nand_Rw_Sem; //Nand_Flash读写控制权旗语 OS_EVENT *Uart_Rw_Sem; //Uart读写控制权旗语 void initOSGUI() //初始化操作系统的图形界面 { initOSMessage(); initOSList(); initOSDC(); initOSCtrl(); initOSFile(); }
19
int Main(int argc, char **argv) { ARMTargetInit(); // 开发板初始化 OSInit(); // uC/OS-II 初始化 uHALr_ResetMMU(); //初始化内存管理单元 LCD_Init(); //初始化LCD模块 LCD_printf("LCD initialization is OK\n"); LCD_printf("320 x 240 Text Mode\n"); LoadFont(); //调用字库 LoadConfigSys(); //调用系统配置文件 LCD_printf("Create task on uCOS-II...\n"); OSTaskCreate(Main_Task, (void *)0, (OS_STK *)&Main_Stack[STACKSIZE*81], Main_Task_Prio);// 创建Main_Task任务 OSAddTask_Init(); //创建系统附件任务 LCD_printf("Starting uCOS-II...\n"); LCD_printf("Entering graph mode...\n"); LCD_ChangeMode(DspGraMode); initOSGUI(); //初始化图形界面 InitRtc(); //初始化时钟 Nand_Rw_Sem=OSSemCreate(1); //创建Nand-Flash读写控制权旗语,初值 //为1满足互斥条件 OSStart(); // 启动多任务调度 return 0; //程序不会执行到这里 }
USB.h Flash.h 驱动 程序 Keyboard16.h Rtc.h drv.hLCD240.h
LCD刷新 系统任务
硬 件
LCD
USB
键盘
海量 存储器
时钟 日历
信号量
邮箱
消息 队列
任务调 度模块
动态内 存管理的RTOS内核
基于uCOS-II
8
典型嵌入式系统基本组成-硬件
外围电路 微处理器
时钟 RAM
23
第一章 ARM的串行口驱动程序设计 1、了解ARM的串行口通讯工作原理 2、 掌握ARM串行口的寄存器操作 3、编程实现ARM UART (Universal Asynchronous Receiver and Transmitter)通讯
24
串行通信概述
串行数据传送模式:
单工 半双工 全双工
嵌入式组件设计
总学时32课时,16课时上课,16课时实验
•考查课考核
•内容
ARM的串行口驱动程序设计 键盘驱动程序设计 I/O驱动程序设计 ARM的A/D接口驱动程序设计 LCD的驱动程序设计 触摸屏驱动程序设计
第1章 平时考勤(20分) 第2章 实验(30分) 第3章 1、平时实验(20分) 第4章 第5章 2、实验报告(10分) 第6章
21
USB下载 超级终端
ARM SDT
22
在uC/OS-II系统上运行的应用程序的结构
操作系统启动过程:
嵌入式控制器 硬件初始化 操作系统 初始化 LCD初始化 启动多任务 调度 初始化用户界面、 时钟、网络 创建任务 调用系统配 置文件 主任务 用户程序 任 务 1

任 务 n
装载字库
消息处理
串行通信方式:
异步通信 同步通信
异步通信必须遵循的3项规定为: 1、字符的格式 2、波特率 3、校验位 初始化:设置波特率、停止位、奇偶校验、数据位等参数 设置是否启用中断方式,包括接收数据中断和发送数据中断
25
ARM如何实现串口功能
1. 熟悉串口通讯原理 2. 查阅ARM串口寄存器文档(um_s3c44box.pdf第10章, 包括控制、状态和数据寄存器) 3. 4. 5. 查阅电平转换芯片资料(max3232) 设计硬件电路图 设计串口驱动(包括串口寄存器初始化,发送接收函数等)
ARM300开发板资源: 核心板资源 CPU,FLASH,SDRAM 键盘模块 LCD & 触摸屏 LED & 数码管 AD接口 总线接口:USB、串口、网口
15
开发平台简介
集成开发环境运行平台
扩展板接口 扩展口2 网 卡
网口
ARM微处理 器 S3C44B0X
JTAG
JTAG仿真器
USB 串口0
ARM300开发板
16
嵌入式开发工具与开发环境
17
例1、ARM SDT 2.5开发环境及开发基本的嵌入式应用程序
编写一段程序,在屏幕上和终端上显示“Hello world”。
设计一个只有一个任务MyTask的应用程序,其每秒显示一个“M”。
void MyTask (void *pdata) #include "includes.h" {#if OS_CRITICAL_METHOD == 3 #define TASK_STK_SIZE 512 OS_CPU_SR cpu_sr; OS_STK TaskStartStk[TASK_STK_SIZE]; #endif pdata = pdata; INT16S key; OS_ENTER_CRITICAL(); INT8U x=0,y=0; PC_VectSet(0x08, OSTickISR); PC_SetTickRate(OS_TICKS_PER_SEC); void MyTask(void *pdata); OS_EXIT_CRITICAL(); /**********主函数***********/ OSStatInit(); void main (void) for (;;) { if (x>10) { char* s_M="M"; { x=0; y+=2; } OSInit(); PC_DispChar(x, y,*(char*)pdata, PC_DOSSaveReturn();//保存DOS环境 DISP_BGND_BLACK+DISP_FGND_WHITE ); x += 1; PC_VectSet(uCOS, OSCtxSw); if (PC_GetKey(&key) == TRUE) OSTaskCreate(MyTask, s_M, { if (key == 0x1B) { PC_DOSReturn(); } &TaskStartStk[TASK_STK_SIZE - 1],0); } OSStart(); OSTimeDlyHMSM(0, 0, 1, 0); } } }
6
驱动程序抽象层
操作系统只和特定的驱动抽象层通讯,无论在抽 象层下面对应的是什么类型的设备,对操作系统 和用户的应用程序来说都是统一的接口。 通过使用C语言的指针函数的方法,实现了驱动抽 象层的软件设计。通过指向不同驱动子程序的函 数指针,为同一操作系统挂载了多种驱动程序。
7
基于μCOS-II扩展RTOS的体系结构
电源 模块
Flash
MPU
复位 ROM
外设
USB LCD Keyboard Other
9
嵌入式系统的软/硬件框架
功能层 文件系统
应用程序 图形用户 接口 任务管理
软件层
实时操作系统(RTOS) 中间层 BSP/HAL 硬件抽象层/板极支持包 D/A 硬件层 A/D I/O 人机交互接口 嵌入式计算机系统 嵌入式 微处理器 通用接口 ROM SDRAM
20
void Main_Task(void *Id) { LCD_ChangeMode(DspTxtMode); LCD_Cls(); LCD_printf("Hello world!\n"); Uart_Printf("Hello world!\n"); for(;;) OSTimeDly(200); }
相关主题