实验二 C语言程序设计
实 验 报 告
课程名称 嵌入式系统 实验名称 C语言程序设计
姓 名 王闯 学 号 200907040318 专业班级 软件0903
实验日期 年 月 日 成绩 指导教师 王彩玲
实验目的
学会使用Embest IDE编写简单的C语言程序并进行调试;
学会编写和使用命令脚本文件;
掌握通过memory/register/watch/variable窗口分析判断运行结果。
实验设备
硬件:PC机。
软件:Embest IDE 2003集成开发环境,Windows 98/2000/NT/XP。
实验内容
利用命令脚本初始化栈指针,并使用c语言完成延时函数。
实验原理
命令脚本文件
用户在集成环境与目标板连接时、软件调试过程中以及复位目标板后,有时需要集成环境自动完成一些特定的功能,比如复位目标板、清除看门狗、屏蔽中断寄存器、存储区映射等,这些特定的功能可以通过执行一组命令序列完成,保存一组命令序列的文本文件称为命令脚本文件(EmbestIDE使用.cs作为命令脚本文件扩展名)。
命令脚本文件中各行以半角格式的“;”号开始作为注释内容,分号前是一条命令。凡是可以在调试命令窗口使用的命令,都可以在脚本文件中使用,包括执行脚本文件命令“SCRIPT”。
命令脚本文件执行时按照命令在脚本文件中排列的先后顺序自动连续地执行。
命令脚本文件的执行方法
命令脚本文件有两种执行方法:
1、在命令输入窗口,输入:
script 脚本文件名
2、在项目设置对话框调试属性页指定连接后的行为(Action after connected),此时,可选择命令脚本文件(Command script),并在编辑框中设定命令脚本文件名,则在IDE与目标系统连接后首先自动执行指定的脚本文件。
常用命令介绍
GO – 执行程序
语法: go
说明: 从当前PC执行目标程序。
参数: 无
选项: 无
示例:Go
MEMWRITE – 存储区写
语法:memwrite [–e] 地址 数值
说明:向存储区指定地址写入数值。
参数:地址要写入数值的存储区地址
数值待写数值
选项:-e大印第安方式写入
示例:memwrite 0x1000 0x5A
向地址0x1000处写入数值0x5A
memwrite -e 0x2000000 0 等效于memwrite 0x2000000 0REFRESH – 刷新窗口
语法:refresh
说明:刷新所有窗口命令,调试命令执行后,各窗口相关内容并不更新,用户可以调用本命令刷新界面各窗口保持与实际内容一致。
参数:无
选项:无
示例:refresh
刷新界面显示的所有窗口
REGWRITE – 寄存器写
语法:regwrite 寄存器名称 寄存器值
说明:写寄存器
参数:寄存器名称待写入数值的寄存器名称
寄存器值待写入的数值
选项:无
示例:regwrite pc 0x3840
向PC寄存器写入数值0x3840
RESET – 复位目标设备
语法:reset
说明:复位目标设备
参数:无
选项:无
示例:reset
STOP – 停止执行程序
语法:stop
说明:停止目标板运行
参数:无
选项:无
示例:stop
链接脚本文件
所有的链接都是通过链接脚本来控制实现的。这些链接脚本文件使用链接命令语言编写。
链接脚本的最主要作用是描述我们编写的文件中这么多个部分应该如何的相应摆放在输出文件中,并控制存储区如何定位这些输出文件。同时,如果需要,我们还可以使用链接脚本文件实现其它功能。
大部分链接脚本文件都是很简单的。最简单的链接脚本只有一行命令:SECTIONS。我们使用SECTIONS命令来告诉存储区应该如何摆放我们的输出文件。
链接脚本文件中全部使用半角符号,文件编写格式必须从SECTIONS关键字开始,紧接着是开大括号,接着是所有需要输出的描述部分,最后用闭大括号收尾。
实验操作步骤
参考EmbestIDE使用方法创建新的工程(工程名为:C1);
为了方便练习,使用工程自带的工程文件,将其加入到工程里面。
参考前面内容进行标准的设置,其中需要注意的是在调试Debug对话框设置的时候,增加连接后自动执行脚本文件:
实验代码
①存储区寄存器设置
LDRr0, =0x3FF0000@ 系统配置寄存器地址 0x3FF00000
LDRr1, =0x83FFFF90 @ 设置寄存器值为0x83FFFF90
STRr1, [r0]