2014025645张也《嵌入式系统程序设计》第三、四周学习总结

一、实验楼实验

下载并解压缩后生成的目录是gcc-3.4.6-glibc-2.3.6

进入gcc-3.4.6-glibc-2.3.6/bin目录,执行pwd命令确定所在目录,然后执行ls命令查看当前目录下是否有arm-linux-gcc文件,若有该文件,使用./运行该文件

安装完成后再次运行./arm-linux-gcc,提示arm-linux-gcc:no input files,意思是arm-linux-gcc命令没有输入文件,说明该文件在当前环境下可用。

下载u-boot-1.3.2.tar.bz2

如图所示是之前的操作指令

将eduk2410.c文件中的gpio->GPBCON = 0x00044555改为gpio->GPBCON = 0x0004455A:

操作指令展示

修改Makefile

实验结果展示

二、关于课堂程序

下载程序代码

实验步骤

实验成果展示

如下为代码段注释

#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
#include <stdio.h>

#define    BUFFER_SIZE    1024    /* 每次读写缓存大小,影响运行效率 */
#define    SRC_FILE_NAME    "src_file"    /* 源文件名 */
#define    DEST_FILE_NAME    "dest_file"    /* 目标文件名 */
#define    OFFSET    10240    // 指针位移量,复制的数据大小

int main()
{
    // 声明两个变量,用来判断文件是否打开成功
    int src_file, dest_file;

    // 建立缓存区
    unsigned char buff[BUFFER_SIZE];

    // 缓存区实际读取的数据长度
    int real_read_len;

    // 以只读的方式打开源文件,失败返回 -1
    src_file = open(SRC_FILE_NAME, O_RDONLY);

    // 以只写的方式打开目标文件,若指定文件不存在则创建文件,权限664,失败返回 -1
    dest_file = open(DEST_FILE_NAME, O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);

    // 打印错误信息
    if(src_file < 0 || dest_file < 0)
    {
        printf("Open file error\n");
        exit(1);
    }

    // 设置源文件指针的位置到从文件尾开始倒数第OFFSET个自己的位置
    lseek(src_file, -OFFSET, SEEK_END);

    // 从指针位置开始读取缓存区大小的数据存入缓存区,并获取实际读取的字节数
    while((real_read_len = read(src_file, buff, sizeof(buff))) > 0)
    {
        //将实际读取的数据长度的数据写入目标文件
        write(dest_file, buff, real_read_len);
    }

    // 关闭dest_file
    close(dest_file);    

    // 关闭src_file
    close(src_file);    
    return 0;
}
posted @ 2017-05-16 20:02  2014025645  阅读(184)  评论(0编辑  收藏  举报