一、实验楼实验
下载并解压缩后生成的目录是gcc-3.4.6-glibc-2.3.6
进入gcc-3.4.6-glibc-2.3.6/bin目录,执行pwd命令确定所在目录,然后执行ls命令查看当前目录下是否有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;
}