将Shell移植到串口上(一)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
一、移植的目的
现在我的这个简单shell已经支持六个命令了,字符由智林开发板的七个按键输入,回显在160*128的液晶显示屏上面。但是按键输入相当不方便,同时,液晶能够显示的字符数太少。接下来要学习i<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />2c存储器和SD卡的操作,按键界面已经满足不了需要,因此现在准备把命令shell移植到串口上来,同时按键操作界面也保留,算是一个最简单的多用户操作系统了,呵呵!
二、程序设计的目标
1、以与按键操作同样的方式使用串口输入命令,并在串口上进行终端显示。
2、所有的命令也进行移植。
3、串口的操作与按键操作并行。
三、程序设计的思路
1、串口shell使用一个任务,与按键shell类似的方式,在任务中不断地从串口消息队列中获取字符,存入命令缓冲数组,当接受到\n时,转入命令执行态。
2、串口字符的接受使用中断来完成,且中断接受ucosii操作系统的管理。串口收到字符即发送到串口消息队列。
3、发送字符采用查询方式,写入数据寄存器后,等待发送完成标志位置位。
4、编制三个文件:uart.c主要包括uart_putchar(),uart_putstring(),uart_recchar(),uart_getchar()等函数的实现;task_uartshell.c,主要包括串口shell任务的实现;uartcmd.c,串口命令在这个文件中实现,与按键shell中cmdtable.c中的函数类似,只是输出对象为串口。以后如果能够模仿linux实现设备文件系统,这两个文件可以合二为一。
用户212008 2011-3-27 17:49