课程列表

基本问题

开源资源

好好学习天天向上

联大大纲—通信电子 ;教师介绍; 单片机课程学习经验- 学习路线图; 1.概述 -应用 -定义 -特点 -构成; 2.嵌入式处理器 —DIY CPU处理器ARM处理器Cortex-A8S5PV210讨论; 3.汇编语言 -作业 4.Bootloader -作业 5.Linux内核移植 6.嵌入式Linux程序设计 7.图形用户接口QT 8.其他框架介绍; 9.嵌入式物联网应用系统设计

文件路径:工程源码\Linux\SRC\exp\driver\01_demo\test_demo.c

1.源码分析

#include <stdlib.h>

#include <fcntl.h>

#include <unistd.h>

#include <sys/ioctl.h>

void showbuf(char *buf);                //声明函数,先使用再定义

int MAX_LEN=32;

int main()

{

    int fd;

    int i;

    char buf[255];

    for(i=0; i<MAX_LEN; i++){           //初始化数组

        buf[i]=i;}

    fd=open("/dev/demo",O_RDWR);        //系统open打开ARM 端设备节点/dev/demo

    if(fd < 0){

        printf("####DEMO device open fail####\n");

        return (-1);}

    printf("write %d bytes data to /dev/demo \n",MAX_LEN);

    showbuf(buf);

    write(fd,buf,MAX_LEN);         //系统write,向设备节点/dev/demo 写入数组内容

    printf("Read %d bytes data from /dev/demo \n",MAX_LEN);

    read(fd,buf,MAX_LEN);               //系统read,从设备节点/dev/demo读回数组内容并显示

    showbuf(buf);

    //ioctl(fd,1,NULL);            //系统ioctl,依据测试情况是否打开

    //ioctl(fd,4,NULL);

    close(fd);                     //驱动程序定义了release,这里使用系统调用

    return 0;

}

//显示数组内容函数

void showbuf(char *buf)

{

    int i,j=0;

    for(i=0;i<MAX_LEN;i++){

    if(i%4 ==0)

    printf("\n%4d: ",j++);

    printf("%4d ",buf[i]);}

    printf("\n*****************************************************\n");}