实验二固件设计报告
北京电子科技学院(BESTI)
实 验 报 告
课程:深入理解计算机系统 班级: 1352
姓名:莫凡 潘俊洋
学号:20135225 20135230
成绩: 指导教师:娄嘉鹏 实验日期:2015/11/17
实验密级: 预习程度: 实验时间:3:30~6:00
仪器组次: 必修/选修:必修 实验序号:2
实验名称: 固件设计
实验目的:
1.掌握程序的烧写方法;
2.能够实现Bootloader;
3.实现密码学中常见算法的固化。
实验仪器:
名称 |
型号 |
数量 |
实验箱 |
UP-NETARM2410嵌入式 |
1 |
PC |
WinXP |
1 |
实验内容、步骤与体会:
实验内容:
1.开发环境的配置同实验一。
2.将实验代码拷贝到共享文件夹中。
3.在虚拟机中编译代码。
对于多线程相关的代码,编译时需要加-lpthread 的库。
4.下载调试
在超级终端中运行可执行文件pthread,运行可执行文件term。
线程相关函数
-
线程创建函数:
int pthread_create (pthread_t * thread_id, __const pthread_attr_t * __attr,void *(*__start_routine) (void *),void *__restrict __arg)
-
获得父进程 ID:
pthread_t pthread_self (void)
-
测试两个线程号是否相同:
int pthread_equal (pthread_t __thread1, pthread_t __thread2)
-
线程退出:
void pthread_exit (void *__retval)
-
等待指定的线程结束:
int pthread_join (pthread_t __th, void **__thread_return)
-
互斥量初始化:
pthread_mutex_init (pthread_mutex_t *,__const pthread_mutexattr_t *)
-
销毁互斥量:
int pthread_mutex_destroy (pthread_mutex_t *__mutex)
-
再试一次获得对互斥量的锁定(非阻塞) :
int pthread_mutex_trylock (pthread_mutex_t *__mutex)
-
锁定互斥量(阻塞) :
int pthread_mutex_lock (pthread_mutex_t *__mutex)
-
解锁互斥量:
int pthread_mutex_unlock (pthread_mutex_t *__mutex)
-
条件变量初始化:
int pthread_cond_init (pthread_cond_t *__restrict __cond,__const pthread_condattr_t *__restrict __cond_attr)
-
销毁条件变量 COND:
int pthread_cond_destroy (pthread_cond_t *__cond)
-
唤醒线程等待条件变量:
int pthread_cond_signal (pthread_cond_t *__cond)
-
等待条件变量(阻塞) :
int pthread_cond_wait (pthread_cond_t *__restrict __cond, pthread_mutex_t *__restrict __mutex)
-
在指定的时间到达前等待条件变量:
int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,pthread_mutex_t *__restrict __mutex, __const struct timespec *__restrict __abstime)
遇到的问题及解决方法:
1.执行./term 时出错
在 Linux 下串口文件位于/dev 下,一般在老版本的内核中串口一为/dev/ttyS0 ,串口二为 /dev/ttyS1,
在我们的开发板中串口设备位于/dev/tts/下, 因为开发板中没有ttyS0这个设备, 所以我们要建立一个连接。
首先在超级终端中进入/dev文件夹中。输入命令“ln –sf /dev/tts/0 /dev/ttyS0”
注意:输入指令时中间的空格以及区分大小写