嵌入式 Linux 应用级实验指导书
适用于创维特 CVT2410-1 嵌入式实验箱
校内试用版
2.00 版
南京大学计算机系嵌入式教学组整理编写
2010 年 1 月 4 日
目 录
- I -
目 录
第 1 章 嵌入式Linux实验环境概述 ...................................... 1
1.1 在VMware虚拟化平台上进行Linux实验....................................................1
1.2 嵌入式实验箱CVTARM9-2410 ...................................................................3
1.3 实验箱加电之前的PC软件配置...................................................................3
1.3.1 超级终端的设置...................................................................................................4
1.3.2 Tftp32 的设置.......................................................................................................4
1.3.3 加电之后超级终端的显示...................................................................................5
第 2 章 选择运行四个操作系统的操作步骤 ........................ 6
2.1 运行Linux......................................................................................................6
2.2 运行uC/OS-II demo程序...............................................................................6
2.3 运行VxWorks程序 ........................................................................................6
2.4 运行Windows CE程序 ..................................................................................6
第 3 章 嵌入式Linux开发基础知识 ...................................... 7
3.1 DNW和Tftpd32. ............................................................................................7
3.2 嵌入式Linux开发环境搭建..........................................................................8
3.3 嵌入式Linux应用程序开发模式..................................................................8
3.4 gcc命令详解..................................................................................................8
3.5 Makefile文件详解 .......................................................................................10
3.6 Linux设备驱动简介....................................................................................12
第 4 章 基于WMware 4.0 的实验前整备 ........................... 13
4.1 加电启动程序U-Boot界面下的操作..........................................................13
4.2 VMware4.5.2 的RedHat Linux虚拟机操作................................................20
第 5 章 Linux常规实验步骤 ................................................ 28
5.1 加电启动......................................................................................................28
5.2 运行Bootlinux..............................................................................................28
5.3 挂载主机文件系统/tftpboot........................................................................29
5.4 进入可执行文件目录..................................................................................29
第 6 章 Linux应用程序实验 ................................................ 31
6.1 Linux基本应用程序实验helloworld...........................................................31
6.1.1 实验概述.............................................................................................................31
6.1.2 实验源代码.........................................................................................................31
6.1.3 运行命令和运行结果.........................................................................................32
6.1.4 替换练习.............................................................................................................33
目 录
- II -
6.2 Linux看门狗实验watchdog ........................................................................37
6.2.1 实验概述.............................................................................................................37
6.2.2 实验源代码.........................................................................................................37
6.2.3 操作步骤和实验结果.........................................................................................40
6.2.4 替换练习.............................................................................................................42
6.3 Linux驱动程序实验drvtest........................................................................43
6.3.1 实验概述.............................................................................................................43
6.3.2 实验源代码.........................................................................................................43
6.3.3 本实验补充的Linux命令介绍 ...........................................................................51
6.3.4 实验步骤及实验结果截图.................................................................................52
6.3.5 替换练习.............................................................................................................53
6.4 Linux LCD显示实验framebuffer................................................................54
6.4.1 实验概述.............................................................................................................54
6.4.2 实验源代码.........................................................................................................54
6.4.3 操作步骤和实验结果.........................................................................................59
6.4.4 替换练习.............................................................................................................60
6.5 Linux串口通信实验serial ...........................................................................61
6.5.1 实验概述.............................................................................................................61
6.5.2 实验源代码.........................................................................................................61
6.5.3 操作步骤和实验结果.........................................................................................65
6.5.4 替换练习.............................................................................................................66
6.6 Linux中断处理实验interrupt ......................................................................67
6.6.1 实验概述.............................................................................................................67
6.6.2 实验源代码.........................................................................................................67
6.6.3 操作步骤和实验结果.........................................................................................74
6.6.4 替换练习.............................................................................................................75
6.7 Linux定时器实验........................................................................................76
6.7.1 实验概述.............................................................................................................76
6.7.2 实验源代码.........................................................................................................76
6.7.3 操作步骤和实验结果.........................................................................................78
6.7.4 替换练习.............................................................................................................79
6.8 Linux的Socket通信实验 .............................................................................80
6.8.1 实验概述.............................................................................................................80
6.8.2 实验源代码.........................................................................................................80
6.8.3 操作步骤和实验结果.........................................................................................88
6.8.4 替换练习.............................................................................................................90
6.9 Linux触摸屏实验touch ...............................................................................91
6.9.1 实验概述.............................................................................................................91
6.9.2 实验源代码.........................................................................................................91
6.9.3 操作步骤和实验结果.........................................................................................92
6.9.4 替换练习.............................................................................................................93
6.10 Linux多线程实验thread............................................................................95
6.10.1 实验概述...........................................................................................................95
6.10.2 实验源代码.......................................................................................................95
目 录
- III -
6.10.3 操作步骤和实验结果.......................................................................................96
6.10.4 替换练习...........................................................................................................98
6.11 Linux内存映射mmap ................................................................................99
6.11.1 实验概述...........................................................................................................99
6.11.2 实验源代码.......................................................................................................99
6.11.3 操作步骤和实验结果.....................................................................................101
6.11.4 替换练习.........................................................................................................102
6.12 Linux C++程序开发cpptest ....................................................................103
6.12.1 实验概述.........................................................................................................103
6.12.2 实验源代码.....................................................................................................103
6.12.3 操作步骤和实验结果.....................................................................................104
6.12.4 替换练习.........................................................................................................105
6.13 Linux获取时间实验gmtime....................................................................116
6.13.1 实验概述.........................................................................................................116
6.13.2 实验源代码.....................................................................................................116
6.13.3 操作步骤和实验结果.....................................................................................117
6.13.4 替换练习.........................................................................................................118
6.14 Linux目录实验pwd .................................................................................119
6.14.1 实验概述.........................................................................................................119
6.14.2 实验源代码.....................................................................................................119
6.14.3 操作步骤和实验结果.....................................................................................119
6.14.4 替换练习.........................................................................................................120
6.15 Linux随机数实验rand.............................................................................121
6.15.1 实验概述.........................................................................................................121
6.15.2 实验源代码.....................................................................................................121
6.15.3 操作步骤和实验结果.....................................................................................121
6.15.4 替换练习.........................................................................................................122
6.16 Linux信号实验signal ..............................................................................123
6.16.1 实验概述.........................................................................................................123
6.16.2 实验源代码.....................................................................................................123
6.16.3 操作步骤和实验结果.....................................................................................125
6.16.4 替换练习.........................................................................................................126
6.17 Linux 新建子进程实验fork ...................................................................127
6.17.1 实验概述.........................................................................................................127
6.17.2 实验源代码.....................................................................................................127
6.17.3 操作步骤和实验结果.....................................................................................128
6.17.4 替换练习.........................................................................................................128
6.18 Linux exec实验........................................................................................130
6.18.1 实验概述.........................................................................................................130
6.18.2 实验源代码.....................................................................................................130
6.18.3 操作步骤和实验结果.....................................................................................131
6.18.4 替换练习.........................................................................................................132
6.19 Linux共享内存通信实验shareMemory..................................................133
6.19.1 实验概述.........................................................................................................133
目 录
- IV -
6.19.2 实验源代码.....................................................................................................133
6.19.3 操作步骤和实验结果.....................................................................................137
6.19.4 替换练习.........................................................................................................139
6.20 Linux守护进程实验daemon ...................................................................140
6.20.1 实验概述.........................................................................................................140
6.20.2 实验源代码.....................................................................................................140
6.20.3 操作步骤和实验结果.....................................................................................141
6.20.4 替换练习.........................................................................................................142
6.21 Linux管道通信实验pipe .........................................................................143
6.21.1 实验概述.........................................................................................................143
6.21.2 实验源代码.....................................................................................................143
6.21.3 操作步骤和实验结果.....................................................................................146
6.21.4 替换练习.........................................................................................................147
6.22 Linux程序执行时间实验........................................................................148
6.22.1 实验概述.........................................................................................................148
6.22.2 实验源代码.....................................................................................................148
6.22.3 操作步骤和实验结果.....................................................................................150
6.22.4 替换练习.........................................................................................................151
6.23 Linux文件时间属性实验........................................................................152
6.23.1 实验概述.........................................................................................................152
6.23.2 实验源代码.....................................................................................................152
6.23.3 操作步骤和实验结果.....................................................................................154
6.23.4 替换练习.........................................................................................................155
6.24 Linux协同进程实验................................................................................156
6.24.1 实验概述.........................................................................................................156
6.24.2 实验源代码.....................................................................................................156
6.24.3 操作步骤和实验结果.....................................................................................160
6.24.4 替换练习.........................................................................................................161
6.25 Linux信号量实验....................................................................................162
6.25.1 实验概述.........................................................................................................162
6.25.2 实验源代码.....................................................................................................162
6.25.3 操作步骤和实验结果.....................................................................................164
6.25.4 替换练习.........................................................................................................165
6.26 Linux消息队列实验................................................................................166
6.26.1 实验概述.........................................................................................................166
6.26.2 实验源代码.....................................................................................................166
6.26.3 操作步骤和实验结果.....................................................................................171
6.26.4 替换练习.........................................................................................................174
6.27 Linux多路I/O实验...................................................................................175
6.27.1 实验概述.........................................................................................................175
6.27.2 实验源代码.....................................................................................................175
6.27.3 操作步骤和实验结果.....................................................................................177
6.27.4 替换练习.........................................................................................................179
6.28 Linux终端编程实验................................................................................180