《嵌入式+QT实验.pdf》由会员分享,可在线阅读,更多相关《嵌入式+QT实验.pdf(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验一实验一 嵌入式微处理器的开发环境嵌入式微处理器的开发环境实验过程实验过程按指导书安装后,创建工程文件,设置 ARM Linker 并输入实验代码,按“F5”运行,出现错误如下:仔细检查后发现,代码行“AREA识别指令,缩进后运行结果如下:Example1,CODE,READONLY”没有缩进,系统无法设置断点查看寄存器对应结果,运行结果正确思考思考1、工程模板的作用在于方便程序的编译、链接与调试2、选择【Project】中的【Remove object code】删除工程中的*obj 文件可以强行重新编译工程的所有文件实验二实验二 汇编指令实验汇编指令实验实验过程实验过程按实验指导书步骤
2、,创建工程文件并输入代码,按“F7”调试代码无报错,按“F5”运行代码,结果如下:设置断点所得结果均正确:循环入口设置断点后,地址寄存器数据变化正确:跳转断点运行正确:思考思考1、LDR 伪指令用于加载 32 位的立即数或一个地址值到指定寄存器。在汇编编译源程序时,LDR 伪指令被编译器替换成一条合适的指令。假设加载的常数未超出MOV 或 MVN 的范围,则使用 MOV 或 MVN 指令代替该 LDR 伪指令,否则汇编器将常量放入文字池,并使用一条程序相对偏移的 LDR 指令从文字池读出常量。LDR 伪指令和 LDR 指令不是一个同东西。指令 LDR 应用举例:uLDRR0,R1,#4;将内存
3、单元 R1+4 中的字读取到 R0 寄存器其中,R1 为基址,#4 为偏移地址,R0 为目标地址。注意,此时不更新R1。伪指令 LDR 应用举例:将 0 xFF0 读取到 R1 中LDR R1,=0 xFF0汇编后得到:MOV R1,0 xFF02、LDR/STR 的前索引偏移是指在数据传送之前,将偏移量加到Rn第一个操作数的寄存器中,其结果作为传送数据的存储地址。假设使用后缀!,则结果写回到 Rn 中,且Rn 的值不允许为 R15。例如:LDR Rd,Rn,#0 x04LDR R1,R0,-R2,LSL#2写前索引偏移指令,要把第一个操作数寄存器和偏移量用 括起来,第一个操作数作为基址,后面
4、的作为偏移量,将两者相加后得到的地址中的内容加载到目的寄存器中去。因此,常用来处理数组等结构,如:LDR R1,R0,-R2,LSL#2。3、选择【File】中的【Reload Current Image】重新加载映象文件实现复位程序实验三实验三 基于基于 ADSADS 的的 C C 语言程序实验语言程序实验实验过程实验过程按实验指导书步骤,创建工程文件并输入代码,按“F7”调试代码无报错,按“F5”运行代码,结果如下:运行至“B MAIN”处的断点,成功跳转到C 语言程序:全速运行程序,得到参数sum 的结果正确:思考思考1、是 C 程序的启动引导文件,没有文件,C 程序会跑飞2、实验程序中
5、的 MAIN函数名可以更改,MAIN 只是一个标记实验四实验四 C C 语言调用汇编语言程序语言调用汇编语言程序实验过程实验过程按实验指导书步骤,创建工程文件并输入代码,按“F7”调试代码无报错,按“F5”运行代码,结果如下:设置断点后成功跳转:全速运行,sum 结果正确:思考思考1、一开始由于 Image entry point 入口忘记设置,导致程序无法正确调试,后添加入口0 x40000000 后,程序得以顺利编译2、在程序中以指针形式传递参数的方法如下:char c_data=55;char c_data=66;void funtion(void*para1,void*para2)/*
6、函数定义*/return;funtion(&c_data,&c_data);QTQT 实验实验试验一:Hello worldHello world 程序的编写程序的编写实验二:用纯代码编写用纯代码编写 Hello worldHello world关于实验二,直接按教程做是不可以的。打开实验一的关于实验二,直接按教程做是不可以的。打开实验一的.pro.pro 文件,发现里面比实验二文件,发现里面比实验二的的.pro.pro 文件多了一件文件多了一件 QT+=widgetsQT+=widgets,因此要在新建的添加了这一句之后,才能在,因此要在新建的添加了这一句之后,才能在mainmain 函数函
7、数中加入中加入#include,#include,这样才能成功构建程序,余下的过程都需要添加相应的头文这样才能成功构建程序,余下的过程都需要添加相应的头文件才能正确运行。如下列图所示。件才能正确运行。如下列图所示。完成效果:完成效果:实验三:编写多窗口程序编写多窗口程序实现效果:1.2.3.4.试验四、编写登录对话框试验四、编写登录对话框建立好工程:实验结果:点击退出按钮:添加用户名密码判断功能。实验结果:密码正确密码错误在的 loginDlg 类构造函数里,设置 LineEdit 的回显模式,使输入密码时显示为小黑点。实验结果:如果输入如下列图中的用户名,在用户名前不小心加上了一些空格,导致程序按照错误的用户名对待。可以添加 trimmed()函数,其作用就是移除字符串开头和结尾的空白字符。实验结果:最后,如果输入错误了,重新回到登录对话框时,我们希望可以使用户名和密码框清空并且光标自动跳转到用户名输入框:试验五、添加菜单图标试验五、添加菜单图标1.2.实验六、布局管理器的使用实验六、布局管理器的使用1 1试验完成。试验完成。