嵌入式系统实验指导书

发布 2022-10-21 09:58:28 阅读 2711

《嵌入式系统》课程组。

申屠浩鲍可进主编。

计算机科学与通信工程学院计算机工程系。

二〇〇八年七月。

目录。实验一、 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语言源程序。利用交叉编译器进行交叉编...