易截截图软件、单文件、免安装、纯绿色、仅160KB

嵌入式 linux 下 通用 console(控制台) 的实现

前言:
        当我们使用嵌入式linux 进行开发时,kernel 跑起来之后,我们希望能通过串口(标准输入、输出),在应用程序正在运行的过程中,进行一些调试工作,例如,对CPU一些寄存进行调整,以观测调整以后的结果,并且,当我们无法把我们的应用程序放在后台运行,那么我们就需要实现一个基础的控制台。
        下文中的控制台,虽然简单,但完备的支持 上 下 左 右 backspace del 常用控制台操作,使用 上 下 键可以浏览已经输入过的命令(类似 doskey 这样的功能),支持 光标 左右移动 修改命令
        一般我们在 main 函数最后 都会做 while(TRUE) sleep(1000) 这样 阻塞住主线程,用这个控制台的实现,替换这个过程,则应用程序可增加控制台应用功能,各部分的具体实现如下:
调用代码(main.c):
#include <stdio.h>
#include "app_console.h"
int main(int argc, char *argv[])
{
// 之前的应用代码
....
....
....
App_Console_Start();
return 0;
}
控制台头文件(app_console.h)
 #ifndef __APP_CONSOLE_H__
#define __APP_CONSOLE_H__
#ifdef __cplusplus
extern "C"
{
#endif
#include "type_def.h"
void App_Console_Start();
#ifdef __cplusplus
}
#endif
#endif
控制台C文件(app_console.c)
#include "app_console.h"
#include "ctype.h"
#include "unistd.h"
#include "app_test.h"
// 说明
// read write 使用的是 POSIX 的标准文件读写函数
// unistd.h 包含了 STDIN_FILENO 等文件描述符的定义
// ctype.h 包含了 isprint 函数的声明
// 经过仔细考虑,决定不支持 ESC 键,因为ESC 键的键值为 0x1b 与 上下左右的键值重复
// 但可以考虑按2下ESC清除本行输入
// 对不可打印字符的处理仅限于以下已经列出的宏定义
// change:
// 放弃对 double ESC 的支持,因为可能出现按了 ESC 又按了 方向键 的情况
// 则用户输入编码为 '\x1b' '\x1b' '[' 'A' (按了ESC 又按了上键)
// change:
// 为了将应用与控制台应用剥离,则将 #define MAX_CMD_LEN 512 房到 app_test.h 中定义
// 二维数组作为参数进行传递时,需要明确第二个维度的大小,否则编译器无法正确定位地址
#define KEY_BACKSPACE '\x08' // back space
#define KEY_DEL


相关文档:

Linux文件压缩与解压


压缩解压文件很常用,经常会忘记。最好的方法是每次用的时候都去查一下,用多了相信就会熟悉了。列举下面常用的压缩和解压命令,以备查询:
 
1.         几种压缩文件格式
*.z:compress 程序压缩的文件。
*.bz2:bzip2程序压缩的文件。
*.gz:gzip程序压缩的文件。
......

linux 库的理解

 
一.库的分类
    有两种说法,如果熟悉WIN平台下的DLL,相信不难理解:
   
库可以有三种使用的形式:静态、共享和动态。静态库的代码在编译时就已连接到开发人员开发的应用程序中,而共享库只是在程序开始运行时才载入,在编译时,
只是简单地指定需要使用的库函数。动态库则是 ......

Linux 串口设备

 
在Linux中用ttySx的形式来表示串口设备名,如 COM1被表示为ttyS0,COM2被表示为ttyS1,以此类推。下面这个命令显示系统中被检测到的串口:
# dmesg | grep ttyS
[   25.942157] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[   25.942840] 00:08: ttyS0 at I/O 0x3f8 (irq = 4) ......

小记VMWare下给linux添加新硬盘(备忘)

之前在VMWare下装的linux系统的可用硬盘空间越来越少,已经严重影响正常的使用了,于是就给它在VMWare下加了块硬盘,步骤如下: 1、通过VMWare给linux系统添加一个新硬盘 2、重启linux系统,键入 fdisk –l 命令查看新增硬盘的盘符(通常会有 “doesn't contain a valid partion table”的提示信息),假设为 /dev/s ......

linux修改字符集

 可以通过下面命令查看当前编码方式:  
  h@debian-server:~/$   locale   -a  
  C  
  en_US  
  en_US.iso88591  
  en_US.iso885915  
  en_US.utf8  
  POSIX  
  zh_CN  
  zh_CN.gb1 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号