目录
2.2 打开Block Design,不需要对硬件设计进行修改。
《lab5》
1.实验目标
通过完成本实验,能够:
- 在轮询模式下使用CPU的私有计时器。
- 使用SDK调试器设置断点并查看变量和内存内容。
2.实验步骤
2.1 打开Vivado项目:
-
- 打开之前创建的lab4项目,或者打开{labsolutions}目录中的lab4项目,并将其另存为lab5项目。
2.2 打开Block Design,不需要对硬件设计进行修改。
2.3 在SDK中创建一个软件项目:
- 关闭lab4、lab4_bsp和system_wrapper_hw_platform_2项目。
- 创建一个新的应用程序项目,命名为lab5。
- 导入lab5.c文件。
2.4 查看Scutimer API文档:
- 打开ps7_scutimer外设的文档。
- 查看可用的函数列表,了解如何使用私有计时器的API函数。
2.5 修复代码错误:
- 添加XScuTimer.h的包含语句。
- 根据API函数列表填充缺失的代码。
2.6 在硬件上验证操作:
- 下载比特流到FPGA板上。
- 在SDK中下载应用程序并执行。
- 根据开关设置观察LED的反应。
- 使用SDK调试器设置断点、查看变量和内存内容,逐步执行代码。
3.问题及解决方法
这一部分教程详细,通过仔细阅读后完成了教程,但是里面的代码具体怎么写出来的没有看懂。
4.调试
4.1 测试截图
根据教程的修复代码
图4.1-1
终端输出结果
图4.1-2
输入专用计数器加载寄存器的地址(0xF8F00600),然后单击“确定”。
图4.1-3
部分测试结果
图4.1-4
图4.1-5
5.总结
本次实验主要目标是学会在轮询模式下使用CPU的私有计时器,并学习使用SDK调试器设置断点并查看变量和内存内容。通过完成本实验,了解了如何使用PS7的私有计时(ScuTimer)API,并掌握了在SDK中创建和修复软件项目的方法。同时,我们也学会了在硬件上验证代码操作,使用SDK调试器设置断点、查看变量和内存内容,逐步执行代码。
在实现过程中,我们需要注意以下问题:
- 在SDK中创建软件项目时,需要关闭其他已经打开的项目,以免出现冲突。
- 在添加XScuTimer.h的包含语句时,需要注意头文件的路径是否正确。
- 在根据API函数列表填充缺失的代码时,需要根据具体的项目需求和设计要求进行修改,确保代码的正确性和可移植性。
- 在硬件上验证操作时,需要确保下载的比特流和应用程序正确无误,同时需要注意观察LED的反应是否符合设计要求。
- 在使用SDK调试器时,需要学会设置断点、查看变量和内存内容,以及逐步执行代码,以便于代码的调试和排错。
通过本次实验,可以学会使用PS7的私有计时器(ScuTimer)API,还可以掌握在SDK中创建和修复软件项目的方法。这些技能将为我们在嵌入式系统开发中的编程和调试能力提供重要的支持。
6.附录
附录.1参考资料