《嵌入式系统》课程组。
申屠浩鲍可进主编。
计算机科学与通信工程学院计算机工程系。
二〇〇八年七月。
目录。实验一、 ads1.2 开发环境 3
1. 实验目的 3
2. 实验内容 3
3. 实验步骤 3
4. c程序的相关说明 13
实验二、 gnu交叉工具链的编译 17
1. 实验目的 17
2. 实验内容 17
3. 实验步骤 17
4. arm-linux-cross-2.95.3的安装 24
实验三、 bootload程序的编译、**与使用 24
1. 实验目的 24
2. 实验内容 24
3. 实验步骤 24
实验四、 vivi 自定义功能的实现 33
1. 实验目的 33
2. 实验内容 34
3. 实验步骤 34
实验五、 linux内核的编译与** 34
1. 实验目的 34
2. 实验内容 34
3. 实验步骤 34
4. patc**件更改内容说明 36
实验六、 rootfs的编译与** 38
1. 实验目的 38
2. 实验内容 38
3. 实验步骤 38
实验七、 简单驱动程序设计、测试与调试 44
1 实验目的 44
2 实验内容 44
3 实验步骤 44
实验八、 内核驱动程序加入 49
实验九、 中断处理驱动程序的设计 49
附录、linux实验环境的建立 50
1. linux开发的方法 50
2. vmware虚拟机的安装 50
3. arm cross tool的安装 60
熟悉ads1.2 开发环境,学会arm **器的使用。使用ads 编译、**、调试并跟踪一段已有的程序,了解嵌入式开发的基本思想和过程。
本次实验使用ads 1.2集成开发环境。新建一个基于操作系统的工程文件,并编译这个工程文件。
学习arm **器的使用和开发环境的设置。**已经编译好的文件到嵌入式控制器中运行,学会在程序中设置断点,观察系统内存和变量,为调试应用程序打下基础。
1) 创建简单通用项目模板。
1> 运行ads1.2 集成开发环境(codewarrior for arm developer suite)。选择file|new…菜单,在对话框中选择project,如图2-1所示,选择arm executable image 通用模板,新建一个工程文件。
图中示例的工程名为ex1。
图 2-1新建工程。
注:arm项目文件的后缀为。mcp
可使用 set… 按钮设置工程的路径,如图2-2 所示,这样可以将所有与该工程相关的文件放到该工程目录下,便于工程项目的管理。
图 2-2设置工程路径。
2> 在新建的工程中,如图2-3 所示,选择debug 版本,使用按钮,即edit\debug settings菜单进入在debug settings 对话框,对debug 版本进行参数设置。
图 2-3选择项本的版本。
3> 选择target\target settings 项,如图2-4 所示。在post-linker一栏中选择arm fromelf。
图 2-4 target setting设置。
4> 选择linker\arm linker 项,如图2-5。在output 选项卡的****** image 框中设置连接的read-only(只读)和read-write(读写)地址,分别填入地址0x0c080000和0x0c200000。这里的地址是开发平台上sdram 的真实地址,是由系统的硬件决定的。
也就是说,在0x0c0800000x0c1fffff 之间是只读区域,存放程序的**段,在0x0c200000 开始是可读写的内存地址是程序的数据段。
图 2-5 arm linker output选项设置。
5> linker\arm linker 项,如图2-6。在layout 选项卡的place at beginning of image 框中设置程序的入口模块。指定在生成的**中,程序是从 开始运行。
图 2-6 arm linker layout选项设置。
的。object 设为 设为init。(仅在******方式下工作)
6> 选择linker\arm fromelf 项,如图2-7。在output file name框中设置输出文件名为这就是要**到开发平台的嵌入式应用程序文件。
图 2-7 arm fromelf选项设置。
7> 按ok键,完成所有上述debug setting 对话框的上述设置过程,回到如图2-3 所示的工程窗口中。
8> 在下拉对话框中,选择release 版本,使用按钮,即edit\release settings菜单进入在release settings 对话框,对release版本进行参数设置。
9> 参照第<3>、<4>、<5>、<6>、<7>步,在release settings 对话框中完成release版本的post-linker、连接地址范围、入口模块和输出文件等相关项目的设置。
10> 回到如图2-3 所示的工程窗口中,选择targets 选项卡。选中debugrel 版本,按del 键将其删除,如图2-8所示。debugrel 子树是一个折衷版本,通常用不到,所以在这里删除。
图 2-8 删除debugrel子树。
11> 设置完成后,可以将该新建的工程文件作为模板保存以便以后使用。将工程文件名改为然后在ads1.2 软件安装目录下的stationery 目录下新建名为myimage 的模板目录,再将工程模板文件存放到该目录下。
这样以后新建工程的时候,就能看到以myimage 为名字的模板了。
2) 创建支持c库文件的通用模板。
前面创建的简单通用模板是不支持c库文件的,为了支持复杂程序开发必须创建一个支持c库文件的通用模板。
12> 同简单模板步骤<1>。选择file|new…菜单,在对话框中选择project,选择arm executable image 通用模板,新建一个工程文件。
13> 同简单模板步骤<2>。选择debug 版本,使用按钮,即edit\debug settings菜单进入在debug settings 对话框,对debug 版本进行参数设置。
14> 同简单模板步骤<3>。选择target\target settings 项,。在post-linker一栏中选择arm fromelf。
15> 程序需要用到标准c 库函数,需要按图2-9 进行连接地址的设置。标准c 中会使用malloc 及其相关的函数,需要使用系统的堆(heap)空间,可以通过scatter 文件来描述系统heap 段的位置。
针对44b0 开发平台,把程序的入口定位在0x0c080000,并定义scatter 文件为scat_在图2-9 中选择linktype 为scattered, 输入scatter 文件名scat_
注意:scat_的文件需要手动输入,内容和相关说明,见附注。
图 2-9 arm linker output选项设置。
然后切换到options 选项卡,如图2-10所示在image entry point 框中输入0x0c080000。也可以在图2-6 的command line 框中直接输入-entry 0x0c080000 –scatter scat_ 进行上述设置。
图 2-10 arm linker options选项卡。
16> 设置c 编译器。选择language settings\arm c compiler 项,在atpcs 选项卡中选择arm/thump interwork,或者在命令行中添加-apcs /interwork。则需按图2-11 所示。
图 2-11 arm c compiler选项卡。
17> 同简单模板步骤<6>。选择linker\arm fromelf 项,如图2-7。在output file name框中设置输出文件名为这就是要**到开发平台的嵌入式应用程序文件。
嵌入式系统实验指导书
嵌入式系统。实。验。指。导。书。1.1 熟悉linux 开发环境。一 实验目的。熟悉linux 开发环境,学会基于mini6410 的linux 开发环境的配置和使用。使用linux 的arm linux gcc 4.5.1 编译,使用基于nfs 方式的 调试,了解嵌入式开发的基本过程。二 实验内容...
嵌入式系统实验指导书
目录 1 第1章 el arm 830 实验系统的资源介绍 1 第2章基于arm系统资源的实验 30 实验一 ads1.2开发环境创建与简要介绍 31 实验二基于arm的汇编语言程序设计简介 39 实验三基于arm的c语言程序设计简介 44 实验四基于arm的硬件boot程序的基本设计 49 实验五...
嵌入式系统 实验指导书
大连民族学院。计算机技术与工程学院。嵌入式软件开发概论 实验指导书 1 1 学时。4 学时。2 实验目的。掌握嵌入式交叉编译原理 了解嵌入式交叉编译环境的结构及配置方法,熟悉linux下的nfs和samba服务的配置,掌握gcc编译命令的使用。3 实验内容。编写c语言源程序。利用交叉编译器进行交叉编...