博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LINUX学习笔记:(1)编写应用程序
阅读量:4087 次
发布时间:2019-05-25

本文共 1661 字,大约阅读时间需要 5 分钟。

LINUX学习笔记:(1)编写应用程序

宿主机 : 虚拟机 Ubuntu 16.04 LTS / X64

目标板[底板]: Tiny4412SDK - 1506
目标板[核心板]: Tiny4412 - 1412
LINUX内核: 4.12.0
交叉编译器: arm-none-linux-gnueabi-gcc(gcc version 4.8.3 20140320)
日期: 2018-2-28 19:23:15
作者: SY

简介

本章节主要介绍如何编写应用程序运行在基于 ARMLinux 上。对于 Linux 来说一切设备皆文件,比如开发板上的 LED ,在驱动程序中可以设定文件名为 LED ,存放在 /dev 目录中。可以使用 openioctl 等函数读写。

APP

led.c

#include 
#include
#include
#include
#include
#include
#include
#include
#define CMD_LED_ON (0)#define CMD_LED_OFF (1)#define DEVICE_PATH "/dev/LED"static void usage( const char *module_name ){ printf("usage:\n"); printf("%s
\n",module_name); printf("led_num = 1, 2, 3, 4\n");}enum{ DEVICE_OFF = 0, DEVICE_ON, DEVICE_ERR,};int main(int argc, char **argv){ int fd; int led_num; int device_status = DEVICE_ERR; if (argc != 3) { goto exception; } sscanf(argv[1],"%d",&led_num); led_num -= 1; if (strcmp(argv[2],"on") == 0) { device_status = DEVICE_ON; } else if (strcmp(argv[2],"off") == 0) { device_status = DEVICE_OFF; } if ( (led_num < 0) || (led_num > 3) || (device_status == DEVICE_ERR) ) { goto exception; } fd = open(DEVICE_PATH,O_WRONLY); if (fd < 0) { printf("open %s error!\n",DEVICE_PATH); return 1; } if (device_status == DEVICE_ON) { ioctl(fd, CMD_LED_ON, led_num); } else { ioctl(fd, CMD_LED_OFF, led_num); } close(fd); return 0;exception:{ usage(argv[0]); return 1;}}

Makefile

Makefile

CC          = arm-linux-gccCFLAGS      = -WallTARGET      = ledSOURCE      = led.c$(TARGET) : $(SOURCE)    $(CC) $(CFLAGS) -o $@ $

编译

在当前目录下使用:

$ make

即可生成可执行文件 led

测试

将文件拷贝到开发板中:

$ ./led 1 on

LED1 打开。

$ ./led 2 off

LED2 关闭。

转载地址:http://fizii.baihongyu.com/

你可能感兴趣的文章
在mc中直接加aswing组件,该组件还需最后用validate()方法
查看>>
移植Vim配色方案到Eclipse
查看>>
从超链接调用ActionScript
查看>>
谈谈加密和混淆吧[转]
查看>>
TCP的几个状态对于我们分析所起的作用SYN, FIN, ACK, PSH,
查看>>
网络游戏客户端的日志输出
查看>>
关于按钮的mouseOver和rollOver
查看>>
Netty框架
查看>>
Socket经验记录
查看>>
对RTMP视频流进行BitmapData.draw()出错的解决办法
查看>>
FMS 客户端带宽计算、带宽限制
查看>>
在线视频聊天(客服)系统开发那点事儿
查看>>
SecurityError Error 2148 SWF 不能访问本地资源
查看>>
Flex:自定义滚动条样式/隐藏上下箭头
查看>>
烈焰SWF解密
查看>>
Qt 静态编译后的exe太大, 可以这样压缩.
查看>>
3D游戏常用技巧Normal Mapping (法线贴图)原理解析——基础篇
查看>>
乘法逆元
查看>>
STL源码分析----神奇的 list 的 sort 算法实现
查看>>
Linux下用math.h头文件
查看>>